// GENERATED FILE - DO NOT EDIT.
// Generated by gen_builtin_symbols.py using data from builtin_variables.json and
// builtin_function_declarations.txt.
//
// Copyright 2020 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// SymbolTable_autogen.cpp:
//   Compile-time initialized built-ins.

#include "compiler/translator/SymbolTable.h"

#include "angle_gl.h"
#include "compiler/translator/ImmutableString.h"
#include "compiler/translator/StaticType.h"
#include "compiler/translator/Symbol.h"
#include "compiler/translator/SymbolTable.h"
#include "compiler/translator/tree_util/BuiltIn.h"

namespace sh
{
using Resources = ShBuiltInResources;
using TableBase = TSymbolTableBase;

struct SymbolIdChecker
{
    static_assert(TSymbolTable::kFirstUserDefinedSymbolId > 2339);
};

namespace BuiltInName
{

constexpr const ImmutableString _empty("");
constexpr const ImmutableString EmitVertex("EmitVertex");
constexpr const ImmutableString EmitVertexES3_2("EmitVertex");
constexpr const ImmutableString EndPrimitive("EndPrimitive");
constexpr const ImmutableString EndPrimitiveES3_2("EndPrimitive");
constexpr const ImmutableString abs("abs");
constexpr const ImmutableString acos("acos");
constexpr const ImmutableString acosh("acosh");
constexpr const ImmutableString all("all");
constexpr const ImmutableString angle_BaseInstance("angle_BaseInstance");
constexpr const ImmutableString angle_BaseVertex("angle_BaseVertex");
constexpr const ImmutableString any("any");
constexpr const ImmutableString asin("asin");
constexpr const ImmutableString asinh("asinh");
constexpr const ImmutableString atan("atan");
constexpr const ImmutableString atanh("atanh");
constexpr const ImmutableString atomicAdd("atomicAdd");
constexpr const ImmutableString atomicAnd("atomicAnd");
constexpr const ImmutableString atomicCompSwap("atomicCompSwap");
constexpr const ImmutableString atomicCounter("atomicCounter");
constexpr const ImmutableString atomicCounterDecrement("atomicCounterDecrement");
constexpr const ImmutableString atomicCounterIncrement("atomicCounterIncrement");
constexpr const ImmutableString atomicExchange("atomicExchange");
constexpr const ImmutableString atomicMax("atomicMax");
constexpr const ImmutableString atomicMin("atomicMin");
constexpr const ImmutableString atomicOr("atomicOr");
constexpr const ImmutableString atomicXor("atomicXor");
constexpr const ImmutableString barrier("barrier");
constexpr const ImmutableString barrierTCS("barrier");
constexpr const ImmutableString barrierTCSES3_2("barrier");
constexpr const ImmutableString beginFragmentShaderOrderingINTEL(
    "beginFragmentShaderOrderingINTEL");
constexpr const ImmutableString beginInvocationInterlockARB("beginInvocationInterlockARB");
constexpr const ImmutableString beginInvocationInterlockNV("beginInvocationInterlockNV");
constexpr const ImmutableString bitCount("bitCount");
constexpr const ImmutableString bitfieldExtract("bitfieldExtract");
constexpr const ImmutableString bitfieldInsert("bitfieldInsert");
constexpr const ImmutableString bitfieldReverse("bitfieldReverse");
constexpr const ImmutableString ceil("ceil");
constexpr const ImmutableString clamp("clamp");
constexpr const ImmutableString cos("cos");
constexpr const ImmutableString cosh("cosh");
constexpr const ImmutableString cross("cross");
constexpr const ImmutableString dFdx("dFdx");
constexpr const ImmutableString dFdxExt("dFdx");
constexpr const ImmutableString dFdy("dFdy");
constexpr const ImmutableString dFdyExt("dFdy");
constexpr const ImmutableString degrees("degrees");
constexpr const ImmutableString determinant("determinant");
constexpr const ImmutableString diff("diff");
constexpr const ImmutableString distance("distance");
constexpr const ImmutableString dot("dot");
constexpr const ImmutableString endInvocationInterlockARB("endInvocationInterlockARB");
constexpr const ImmutableString endInvocationInterlockNV("endInvocationInterlockNV");
constexpr const ImmutableString equal("equal");
constexpr const ImmutableString exp("exp");
constexpr const ImmutableString exp2("exp2");
constexpr const ImmutableString faceforward("faceforward");
constexpr const ImmutableString far("far");
constexpr const ImmutableString findLSB("findLSB");
constexpr const ImmutableString findMSB("findMSB");
constexpr const ImmutableString floatBitsToInt("floatBitsToInt");
constexpr const ImmutableString floatBitsToUint("floatBitsToUint");
constexpr const ImmutableString floor("floor");
constexpr const ImmutableString fma("fma");
constexpr const ImmutableString fmaExt("fma");
constexpr const ImmutableString fract("fract");
constexpr const ImmutableString frexp("frexp");
constexpr const ImmutableString fwidth("fwidth");
constexpr const ImmutableString fwidthExt("fwidth");
constexpr const ImmutableString gl_BaseInstance("gl_BaseInstance");
constexpr const ImmutableString gl_BaseVertex("gl_BaseVertex");
constexpr const ImmutableString gl_BoundingBox("gl_BoundingBox");
constexpr const ImmutableString gl_BoundingBoxEXT("gl_BoundingBoxEXT");
constexpr const ImmutableString gl_BoundingBoxOES("gl_BoundingBoxOES");
constexpr const ImmutableString gl_ClipDistance("gl_ClipDistance");
constexpr const ImmutableString gl_CullDistance("gl_CullDistance");
constexpr const ImmutableString gl_DepthRange("gl_DepthRange");
constexpr const ImmutableString gl_DepthRangeParameters("gl_DepthRangeParameters");
constexpr const ImmutableString gl_DrawID("gl_DrawID");
constexpr const ImmutableString gl_FragColor("gl_FragColor");
constexpr const ImmutableString gl_FragCoord("gl_FragCoord");
constexpr const ImmutableString gl_FragData("gl_FragData");
constexpr const ImmutableString gl_FragDepth("gl_FragDepth");
constexpr const ImmutableString gl_FragDepthEXT("gl_FragDepthEXT");
constexpr const ImmutableString gl_FrontFacing("gl_FrontFacing");
constexpr const ImmutableString gl_GlobalInvocationID("gl_GlobalInvocationID");
constexpr const ImmutableString gl_HelperInvocation("gl_HelperInvocation");
constexpr const ImmutableString gl_InstanceID("gl_InstanceID");
constexpr const ImmutableString gl_InstanceIndex("gl_InstanceIndex");
constexpr const ImmutableString gl_InvocationID("gl_InvocationID");
constexpr const ImmutableString gl_LastFragColor("gl_LastFragColor");
constexpr const ImmutableString gl_LastFragColorARM("gl_LastFragColorARM");
constexpr const ImmutableString gl_LastFragData("gl_LastFragData");
constexpr const ImmutableString gl_LastFragDepthARM("gl_LastFragDepthARM");
constexpr const ImmutableString gl_LastFragStencilARM("gl_LastFragStencilARM");
constexpr const ImmutableString gl_Layer("gl_Layer");
constexpr const ImmutableString gl_LocalInvocationID("gl_LocalInvocationID");
constexpr const ImmutableString gl_LocalInvocationIndex("gl_LocalInvocationIndex");
constexpr const ImmutableString gl_MaxAtomicCounterBindings("gl_MaxAtomicCounterBindings");
constexpr const ImmutableString gl_MaxAtomicCounterBufferSize("gl_MaxAtomicCounterBufferSize");
constexpr const ImmutableString gl_MaxClipDistances("gl_MaxClipDistances");
constexpr const ImmutableString gl_MaxCombinedAtomicCounterBuffers(
    "gl_MaxCombinedAtomicCounterBuffers");
constexpr const ImmutableString gl_MaxCombinedAtomicCounters("gl_MaxCombinedAtomicCounters");
constexpr const ImmutableString gl_MaxCombinedClipAndCullDistances(
    "gl_MaxCombinedClipAndCullDistances");
constexpr const ImmutableString gl_MaxCombinedImageUniforms("gl_MaxCombinedImageUniforms");
constexpr const ImmutableString gl_MaxCombinedShaderOutputResources(
    "gl_MaxCombinedShaderOutputResources");
constexpr const ImmutableString gl_MaxCombinedTextureImageUnits("gl_MaxCombinedTextureImageUnits");
constexpr const ImmutableString gl_MaxComputeAtomicCounterBuffers(
    "gl_MaxComputeAtomicCounterBuffers");
constexpr const ImmutableString gl_MaxComputeAtomicCounters("gl_MaxComputeAtomicCounters");
constexpr const ImmutableString gl_MaxComputeImageUniforms("gl_MaxComputeImageUniforms");
constexpr const ImmutableString gl_MaxComputeTextureImageUnits("gl_MaxComputeTextureImageUnits");
constexpr const ImmutableString gl_MaxComputeUniformComponents("gl_MaxComputeUniformComponents");
constexpr const ImmutableString gl_MaxComputeWorkGroupCount("gl_MaxComputeWorkGroupCount");
constexpr const ImmutableString gl_MaxComputeWorkGroupSize("gl_MaxComputeWorkGroupSize");
constexpr const ImmutableString gl_MaxCullDistances("gl_MaxCullDistances");
constexpr const ImmutableString gl_MaxDrawBuffers("gl_MaxDrawBuffers");
constexpr const ImmutableString gl_MaxDualSourceDrawBuffersEXT("gl_MaxDualSourceDrawBuffersEXT");
constexpr const ImmutableString gl_MaxFragmentAtomicCounterBuffers(
    "gl_MaxFragmentAtomicCounterBuffers");
constexpr const ImmutableString gl_MaxFragmentAtomicCounters("gl_MaxFragmentAtomicCounters");
constexpr const ImmutableString gl_MaxFragmentImageUniforms("gl_MaxFragmentImageUniforms");
constexpr const ImmutableString gl_MaxFragmentInputVectors("gl_MaxFragmentInputVectors");
constexpr const ImmutableString gl_MaxFragmentUniformVectors("gl_MaxFragmentUniformVectors");
constexpr const ImmutableString gl_MaxGeometryAtomicCounterBuffers(
    "gl_MaxGeometryAtomicCounterBuffers");
constexpr const ImmutableString gl_MaxGeometryAtomicCounters("gl_MaxGeometryAtomicCounters");
constexpr const ImmutableString gl_MaxGeometryImageUniforms("gl_MaxGeometryImageUniforms");
constexpr const ImmutableString gl_MaxGeometryInputComponents("gl_MaxGeometryInputComponents");
constexpr const ImmutableString gl_MaxGeometryOutputComponents("gl_MaxGeometryOutputComponents");
constexpr const ImmutableString gl_MaxGeometryOutputVertices("gl_MaxGeometryOutputVertices");
constexpr const ImmutableString gl_MaxGeometryTextureImageUnits("gl_MaxGeometryTextureImageUnits");
constexpr const ImmutableString gl_MaxGeometryTotalOutputComponents(
    "gl_MaxGeometryTotalOutputComponents");
constexpr const ImmutableString gl_MaxGeometryUniformComponents("gl_MaxGeometryUniformComponents");
constexpr const ImmutableString gl_MaxImageUnits("gl_MaxImageUnits");
constexpr const ImmutableString gl_MaxPatchVertices("gl_MaxPatchVertices");
constexpr const ImmutableString gl_MaxProgramTexelOffset("gl_MaxProgramTexelOffset");
constexpr const ImmutableString gl_MaxSamples("gl_MaxSamples");
constexpr const ImmutableString gl_MaxTessControlAtomicCounterBuffers(
    "gl_MaxTessControlAtomicCounterBuffers");
constexpr const ImmutableString gl_MaxTessControlAtomicCounters("gl_MaxTessControlAtomicCounters");
constexpr const ImmutableString gl_MaxTessControlImageUniforms("gl_MaxTessControlImageUniforms");
constexpr const ImmutableString gl_MaxTessControlInputComponents(
    "gl_MaxTessControlInputComponents");
constexpr const ImmutableString gl_MaxTessControlOutputComponents(
    "gl_MaxTessControlOutputComponents");
constexpr const ImmutableString gl_MaxTessControlTextureImageUnits(
    "gl_MaxTessControlTextureImageUnits");
constexpr const ImmutableString gl_MaxTessControlTotalOutputComponents(
    "gl_MaxTessControlTotalOutputComponents");
constexpr const ImmutableString gl_MaxTessControlUniformComponents(
    "gl_MaxTessControlUniformComponents");
constexpr const ImmutableString gl_MaxTessEvaluationAtomicCounterBuffers(
    "gl_MaxTessEvaluationAtomicCounterBuffers");
constexpr const ImmutableString gl_MaxTessEvaluationAtomicCounters(
    "gl_MaxTessEvaluationAtomicCounters");
constexpr const ImmutableString gl_MaxTessEvaluationImageUniforms(
    "gl_MaxTessEvaluationImageUniforms");
constexpr const ImmutableString gl_MaxTessEvaluationInputComponents(
    "gl_MaxTessEvaluationInputComponents");
constexpr const ImmutableString gl_MaxTessEvaluationOutputComponents(
    "gl_MaxTessEvaluationOutputComponents");
constexpr const ImmutableString gl_MaxTessEvaluationTextureImageUnits(
    "gl_MaxTessEvaluationTextureImageUnits");
constexpr const ImmutableString gl_MaxTessEvaluationUniformComponents(
    "gl_MaxTessEvaluationUniformComponents");
constexpr const ImmutableString gl_MaxTessGenLevel("gl_MaxTessGenLevel");
constexpr const ImmutableString gl_MaxTessPatchComponents("gl_MaxTessPatchComponents");
constexpr const ImmutableString gl_MaxTextureImageUnits("gl_MaxTextureImageUnits");
constexpr const ImmutableString gl_MaxVaryingVectors("gl_MaxVaryingVectors");
constexpr const ImmutableString gl_MaxVertexAtomicCounterBuffers(
    "gl_MaxVertexAtomicCounterBuffers");
constexpr const ImmutableString gl_MaxVertexAtomicCounters("gl_MaxVertexAtomicCounters");
constexpr const ImmutableString gl_MaxVertexAttribs("gl_MaxVertexAttribs");
constexpr const ImmutableString gl_MaxVertexImageUniforms("gl_MaxVertexImageUniforms");
constexpr const ImmutableString gl_MaxVertexOutputVectors("gl_MaxVertexOutputVectors");
constexpr const ImmutableString gl_MaxVertexTextureImageUnits("gl_MaxVertexTextureImageUnits");
constexpr const ImmutableString gl_MaxVertexUniformVectors("gl_MaxVertexUniformVectors");
constexpr const ImmutableString gl_MinProgramTexelOffset("gl_MinProgramTexelOffset");
constexpr const ImmutableString gl_NumSamples("gl_NumSamples");
constexpr const ImmutableString gl_NumWorkGroups("gl_NumWorkGroups");
constexpr const ImmutableString gl_PatchVerticesIn("gl_PatchVerticesIn");
constexpr const ImmutableString gl_PerVertex("gl_PerVertex");
constexpr const ImmutableString gl_PointCoord("gl_PointCoord");
constexpr const ImmutableString gl_PointSize("gl_PointSize");
constexpr const ImmutableString gl_Position("gl_Position");
constexpr const ImmutableString gl_PrimitiveID("gl_PrimitiveID");
constexpr const ImmutableString gl_PrimitiveIDIn("gl_PrimitiveIDIn");
constexpr const ImmutableString gl_SampleID("gl_SampleID");
constexpr const ImmutableString gl_SampleMask("gl_SampleMask");
constexpr const ImmutableString gl_SampleMaskIn("gl_SampleMaskIn");
constexpr const ImmutableString gl_SamplePosition("gl_SamplePosition");
constexpr const ImmutableString gl_SecondaryFragColorEXT("gl_SecondaryFragColorEXT");
constexpr const ImmutableString gl_SecondaryFragDataEXT("gl_SecondaryFragDataEXT");
constexpr const ImmutableString gl_TessCoord("gl_TessCoord");
constexpr const ImmutableString gl_TessLevelInner("gl_TessLevelInner");
constexpr const ImmutableString gl_TessLevelOuter("gl_TessLevelOuter");
constexpr const ImmutableString gl_VertexID("gl_VertexID");
constexpr const ImmutableString gl_VertexIndex("gl_VertexIndex");
constexpr const ImmutableString gl_ViewID_OVR("gl_ViewID_OVR");
constexpr const ImmutableString gl_WorkGroupID("gl_WorkGroupID");
constexpr const ImmutableString gl_WorkGroupSize("gl_WorkGroupSize");
constexpr const ImmutableString gl_in("gl_in");
constexpr const ImmutableString gl_out("gl_out");
constexpr const ImmutableString greaterThan("greaterThan");
constexpr const ImmutableString greaterThanEqual("greaterThanEqual");
constexpr const ImmutableString groupMemoryBarrier("groupMemoryBarrier");
constexpr const ImmutableString imageAtomicAdd("imageAtomicAdd");
constexpr const ImmutableString imageAtomicAddExt("imageAtomicAdd");
constexpr const ImmutableString imageAtomicAnd("imageAtomicAnd");
constexpr const ImmutableString imageAtomicAndExt("imageAtomicAnd");
constexpr const ImmutableString imageAtomicCompSwap("imageAtomicCompSwap");
constexpr const ImmutableString imageAtomicCompSwapExt("imageAtomicCompSwap");
constexpr const ImmutableString imageAtomicExchange("imageAtomicExchange");
constexpr const ImmutableString imageAtomicExchangeExt("imageAtomicExchange");
constexpr const ImmutableString imageAtomicMax("imageAtomicMax");
constexpr const ImmutableString imageAtomicMaxExt("imageAtomicMax");
constexpr const ImmutableString imageAtomicMin("imageAtomicMin");
constexpr const ImmutableString imageAtomicMinExt("imageAtomicMin");
constexpr const ImmutableString imageAtomicOr("imageAtomicOr");
constexpr const ImmutableString imageAtomicOrExt("imageAtomicOr");
constexpr const ImmutableString imageAtomicXor("imageAtomicXor");
constexpr const ImmutableString imageAtomicXorExt("imageAtomicXor");
constexpr const ImmutableString imageLoad("imageLoad");
constexpr const ImmutableString imageLoadExt("imageLoad");
constexpr const ImmutableString imageSize("imageSize");
constexpr const ImmutableString imageSizeExt("imageSize");
constexpr const ImmutableString imageStore("imageStore");
constexpr const ImmutableString imageStoreExt("imageStore");
constexpr const ImmutableString imulExtended("imulExtended");
constexpr const ImmutableString intBitsToFloat("intBitsToFloat");
constexpr const ImmutableString interpolateAtCenter("interpolateAtCenter");
constexpr const ImmutableString interpolateAtCentroid("interpolateAtCentroid");
constexpr const ImmutableString interpolateAtCentroidExt("interpolateAtCentroid");
constexpr const ImmutableString interpolateAtOffset("interpolateAtOffset");
constexpr const ImmutableString interpolateAtOffsetExt("interpolateAtOffset");
constexpr const ImmutableString interpolateAtSample("interpolateAtSample");
constexpr const ImmutableString interpolateAtSampleExt("interpolateAtSample");
constexpr const ImmutableString inverse("inverse");
constexpr const ImmutableString inversesqrt("inversesqrt");
constexpr const ImmutableString isinf("isinf");
constexpr const ImmutableString isnan("isnan");
constexpr const ImmutableString ldexp("ldexp");
constexpr const ImmutableString length("length");
constexpr const ImmutableString lessThan("lessThan");
constexpr const ImmutableString lessThanEqual("lessThanEqual");
constexpr const ImmutableString log("log");
constexpr const ImmutableString log2("log2");
constexpr const ImmutableString matrixCompMult("matrixCompMult");
constexpr const ImmutableString max("max");
constexpr const ImmutableString memoryBarrier("memoryBarrier");
constexpr const ImmutableString memoryBarrierAtomicCounter("memoryBarrierAtomicCounter");
constexpr const ImmutableString memoryBarrierBuffer("memoryBarrierBuffer");
constexpr const ImmutableString memoryBarrierImage("memoryBarrierImage");
constexpr const ImmutableString memoryBarrierShared("memoryBarrierShared");
constexpr const ImmutableString min("min");
constexpr const ImmutableString mix("mix");
constexpr const ImmutableString mod("mod");
constexpr const ImmutableString modf("modf");
constexpr const ImmutableString near("near");
constexpr const ImmutableString normalize("normalize");
constexpr const ImmutableString notEqual("notEqual");
constexpr const ImmutableString notFunc("not");
constexpr const ImmutableString numSamples("numSamples");
constexpr const ImmutableString outerProduct("outerProduct");
constexpr const ImmutableString packHalf2x16("packHalf2x16");
constexpr const ImmutableString packSnorm2x16("packSnorm2x16");
constexpr const ImmutableString packSnorm4x8("packSnorm4x8");
constexpr const ImmutableString packUnorm2x16("packUnorm2x16");
constexpr const ImmutableString packUnorm4x8("packUnorm4x8");
constexpr const ImmutableString pixelLocalLoadANGLE("pixelLocalLoadANGLE");
constexpr const ImmutableString pixelLocalStoreANGLE("pixelLocalStoreANGLE");
constexpr const ImmutableString pow("pow");
constexpr const ImmutableString radians("radians");
constexpr const ImmutableString reflect("reflect");
constexpr const ImmutableString refract("refract");
constexpr const ImmutableString rgb_2_yuv("rgb_2_yuv");
constexpr const ImmutableString round("round");
constexpr const ImmutableString roundEven("roundEven");
constexpr const ImmutableString samplePosition("samplePosition");
constexpr const ImmutableString saturate("saturate");
constexpr const ImmutableString shadow2DEXT("shadow2DEXT");
constexpr const ImmutableString shadow2DProjEXT("shadow2DProjEXT");
constexpr const ImmutableString sign("sign");
constexpr const ImmutableString sin("sin");
constexpr const ImmutableString sinh("sinh");
constexpr const ImmutableString smoothstep("smoothstep");
constexpr const ImmutableString sqrt("sqrt");
constexpr const ImmutableString step("step");
constexpr const ImmutableString subpassLoad("subpassLoad");
constexpr const ImmutableString tan("tan");
constexpr const ImmutableString tanh("tanh");
constexpr const ImmutableString texelFetch("texelFetch");
constexpr const ImmutableString texelFetchExt("texelFetch");
constexpr const ImmutableString texelFetchOffset("texelFetchOffset");
constexpr const ImmutableString texture("texture");
constexpr const ImmutableString texture2D("texture2D");
constexpr const ImmutableString texture2DGradEXT("texture2DGradEXT");
constexpr const ImmutableString texture2DLod("texture2DLod");
constexpr const ImmutableString texture2DLodEXT("texture2DLodEXT");
constexpr const ImmutableString texture2DProj("texture2DProj");
constexpr const ImmutableString texture2DProjGradEXT("texture2DProjGradEXT");
constexpr const ImmutableString texture2DProjLod("texture2DProjLod");
constexpr const ImmutableString texture2DProjLodEXT("texture2DProjLodEXT");
constexpr const ImmutableString texture2DRect("texture2DRect");
constexpr const ImmutableString texture2DRectProj("texture2DRectProj");
constexpr const ImmutableString texture3D("texture3D");
constexpr const ImmutableString texture3DLod("texture3DLod");
constexpr const ImmutableString texture3DProj("texture3DProj");
constexpr const ImmutableString texture3DProjLod("texture3DProjLod");
constexpr const ImmutableString textureCube("textureCube");
constexpr const ImmutableString textureCubeGradEXT("textureCubeGradEXT");
constexpr const ImmutableString textureCubeLod("textureCubeLod");
constexpr const ImmutableString textureCubeLodEXT("textureCubeLodEXT");
constexpr const ImmutableString textureExt("texture");
constexpr const ImmutableString textureGather("textureGather");
constexpr const ImmutableString textureGatherExt("textureGather");
constexpr const ImmutableString textureGatherOffset("textureGatherOffset");
constexpr const ImmutableString textureGatherOffsets("textureGatherOffsets");
constexpr const ImmutableString textureGatherOffsetsExt("textureGatherOffsets");
constexpr const ImmutableString textureGrad("textureGrad");
constexpr const ImmutableString textureGradExt("textureGrad");
constexpr const ImmutableString textureGradOffset("textureGradOffset");
constexpr const ImmutableString textureLod("textureLod");
constexpr const ImmutableString textureLodExt("textureLod");
constexpr const ImmutableString textureLodOffset("textureLodOffset");
constexpr const ImmutableString textureOffset("textureOffset");
constexpr const ImmutableString textureProj("textureProj");
constexpr const ImmutableString textureProjGrad("textureProjGrad");
constexpr const ImmutableString textureProjGradOffset("textureProjGradOffset");
constexpr const ImmutableString textureProjLod("textureProjLod");
constexpr const ImmutableString textureProjLodOffset("textureProjLodOffset");
constexpr const ImmutableString textureProjOffset("textureProjOffset");
constexpr const ImmutableString textureQueryLOD("textureQueryLOD");
constexpr const ImmutableString textureSize("textureSize");
constexpr const ImmutableString textureSizeExt("textureSize");
constexpr const ImmutableString textureVideoWEBGL("textureVideoWEBGL");
constexpr const ImmutableString transpose("transpose");
constexpr const ImmutableString trunc("trunc");
constexpr const ImmutableString uaddCarry("uaddCarry");
constexpr const ImmutableString uintBitsToFloat("uintBitsToFloat");
constexpr const ImmutableString umulExtended("umulExtended");
constexpr const ImmutableString unpackHalf2x16("unpackHalf2x16");
constexpr const ImmutableString unpackSnorm2x16("unpackSnorm2x16");
constexpr const ImmutableString unpackSnorm4x8("unpackSnorm4x8");
constexpr const ImmutableString unpackUnorm2x16("unpackUnorm2x16");
constexpr const ImmutableString unpackUnorm4x8("unpackUnorm4x8");
constexpr const ImmutableString usubBorrow("usubBorrow");
constexpr const ImmutableString yuv_2_rgb("yuv_2_rgb");

}  // namespace BuiltInName

// TODO(oetuaho): Would be nice to make this a class instead of a namespace so that we could friend
// this from TVariable. Now symbol constructors taking an id have to be public even though they're
// not supposed to be accessible from outside of here. http://anglebug.com/42261100
namespace BuiltInVariable
{

constexpr const unsigned int kArraySize4[1] = {4};

constexpr const TVariable kangle_BaseInstance(
    BuiltInId::angle_BaseInstance,
    BuiltInName::angle_BaseInstance,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::ANGLE_base_vertex_base_instance_shader_builtin}},
    StaticType::Get<EbtInt, EbpHigh, EvqUniform, 1, 1>());
constexpr const TVariable kangle_BaseVertex(
    BuiltInId::angle_BaseVertex,
    BuiltInName::angle_BaseVertex,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::ANGLE_base_vertex_base_instance_shader_builtin}},
    StaticType::Get<EbtInt, EbpHigh, EvqUniform, 1, 1>());
constexpr const TVariable kgl_BaseInstance(
    BuiltInId::gl_BaseInstance,
    BuiltInName::gl_BaseInstance,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::ANGLE_base_vertex_base_instance_shader_builtin}},
    StaticType::Get<EbtInt, EbpHigh, EvqUniform, 1, 1>());
constexpr const TVariable kgl_BaseVertex(
    BuiltInId::gl_BaseVertex,
    BuiltInName::gl_BaseVertex,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::ANGLE_base_vertex_base_instance_shader_builtin}},
    StaticType::Get<EbtInt, EbpHigh, EvqUniform, 1, 1>());
constexpr const TVariable kgl_DrawID(BuiltInId::gl_DrawID,
                                     BuiltInName::gl_DrawID,
                                     SymbolType::BuiltIn,
                                     std::array<TExtension, 1u>{{TExtension::ANGLE_multi_draw}},
                                     StaticType::Get<EbtInt, EbpHigh, EvqDrawID, 1, 1>());
constexpr const TVariable kgl_FragColor(BuiltInId::gl_FragColor,
                                        BuiltInName::gl_FragColor,
                                        SymbolType::BuiltIn,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        StaticType::Get<EbtFloat, EbpMedium, EvqFragColor, 4, 1>());
constexpr const TVariable kgl_FragCoord(BuiltInId::gl_FragCoord,
                                        BuiltInName::gl_FragCoord,
                                        SymbolType::BuiltIn,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        StaticType::Get<EbtFloat, EbpMedium, EvqFragCoord, 4, 1>());
constexpr const TVariable kgl_FragCoord300(
    BuiltInId::gl_FragCoord300,
    BuiltInName::gl_FragCoord,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtFloat, EbpHigh, EvqFragCoord, 4, 1>());
constexpr const TVariable kgl_FragDepth(BuiltInId::gl_FragDepth,
                                        BuiltInName::gl_FragDepth,
                                        SymbolType::BuiltIn,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        StaticType::Get<EbtFloat, EbpHigh, EvqFragDepth, 1, 1>());
constexpr const TVariable kgl_FrontFacing(
    BuiltInId::gl_FrontFacing,
    BuiltInName::gl_FrontFacing,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtBool, EbpUndefined, EvqFrontFacing, 1, 1>());
constexpr const TVariable kgl_GlobalInvocationID(
    BuiltInId::gl_GlobalInvocationID,
    BuiltInName::gl_GlobalInvocationID,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtUInt, EbpHigh, EvqGlobalInvocationID, 3, 1>());
constexpr const TVariable kgl_HelperInvocation(
    BuiltInId::gl_HelperInvocation,
    BuiltInName::gl_HelperInvocation,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtBool, EbpUndefined, EvqHelperInvocation, 1, 1>());
constexpr const TVariable kgl_InstanceID(BuiltInId::gl_InstanceID,
                                         BuiltInName::gl_InstanceID,
                                         SymbolType::BuiltIn,
                                         std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                         StaticType::Get<EbtInt, EbpHigh, EvqInstanceID, 1, 1>());
constexpr const TVariable kgl_InstanceIndex(
    BuiltInId::gl_InstanceIndex,
    BuiltInName::gl_InstanceIndex,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtInt, EbpHigh, EvqInstanceID, 1, 1>());
constexpr const TVariable kgl_InvocationID(
    BuiltInId::gl_InvocationID,
    BuiltInName::gl_InvocationID,
    SymbolType::BuiltIn,
    std::array<TExtension, 2u>{{TExtension::EXT_geometry_shader, TExtension::OES_geometry_shader}},
    StaticType::Get<EbtInt, EbpHigh, EvqInvocationID, 1, 1>());
constexpr const TVariable kgl_InvocationIDES3_2(
    BuiltInId::gl_InvocationIDES3_2,
    BuiltInName::gl_InvocationID,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtInt, EbpHigh, EvqInvocationID, 1, 1>());
constexpr const TVariable kgl_InvocationIDTCS(
    BuiltInId::gl_InvocationIDTCS,
    BuiltInName::gl_InvocationID,
    SymbolType::BuiltIn,
    std::array<TExtension, 2u>{
        {TExtension::EXT_tessellation_shader, TExtension::OES_tessellation_shader}},
    StaticType::Get<EbtInt, EbpHigh, EvqInvocationID, 1, 1>());
constexpr const TVariable kgl_InvocationIDTCSES3_2(
    BuiltInId::gl_InvocationIDTCSES3_2,
    BuiltInName::gl_InvocationID,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtInt, EbpHigh, EvqInvocationID, 1, 1>());
constexpr const TVariable kgl_LastFragColor(
    BuiltInId::gl_LastFragColor,
    BuiltInName::gl_LastFragColor,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::NV_shader_framebuffer_fetch}},
    StaticType::Get<EbtFloat, EbpMedium, EvqLastFragColor, 4, 1>());
constexpr const TVariable kgl_LastFragColorARM(
    BuiltInId::gl_LastFragColorARM,
    BuiltInName::gl_LastFragColorARM,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::ARM_shader_framebuffer_fetch}},
    StaticType::Get<EbtFloat, EbpMedium, EvqLastFragColor, 4, 1>());
constexpr const TVariable kgl_LastFragDepthARM(
    BuiltInId::gl_LastFragDepthARM,
    BuiltInName::gl_LastFragDepthARM,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::ARM_shader_framebuffer_fetch_depth_stencil}},
    StaticType::Get<EbtFloat, EbpHigh, EvqLastFragDepth, 1, 1>());
constexpr const TVariable kgl_LastFragStencilARM(
    BuiltInId::gl_LastFragStencilARM,
    BuiltInName::gl_LastFragStencilARM,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::ARM_shader_framebuffer_fetch_depth_stencil}},
    StaticType::Get<EbtInt, EbpLow, EvqLastFragStencil, 1, 1>());
constexpr const TVariable kgl_Layer(BuiltInId::gl_Layer,
                                    BuiltInName::gl_Layer,
                                    SymbolType::BuiltIn,
                                    std::array<TExtension, 2u>{{TExtension::EXT_geometry_shader,
                                                                TExtension::OES_geometry_shader}},
                                    StaticType::Get<EbtInt, EbpHigh, EvqLayerIn, 1, 1>());
constexpr const TVariable kgl_LayerES3_2(BuiltInId::gl_LayerES3_2,
                                         BuiltInName::gl_Layer,
                                         SymbolType::BuiltIn,
                                         std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                         StaticType::Get<EbtInt, EbpHigh, EvqLayerIn, 1, 1>());
constexpr const TVariable kgl_LayerGS(BuiltInId::gl_LayerGS,
                                      BuiltInName::gl_Layer,
                                      SymbolType::BuiltIn,
                                      std::array<TExtension, 2u>{{TExtension::EXT_geometry_shader,
                                                                  TExtension::OES_geometry_shader}},
                                      StaticType::Get<EbtInt, EbpHigh, EvqLayerOut, 1, 1>());
constexpr const TVariable kgl_LayerGSES3_2(BuiltInId::gl_LayerGSES3_2,
                                           BuiltInName::gl_Layer,
                                           SymbolType::BuiltIn,
                                           std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                           StaticType::Get<EbtInt, EbpHigh, EvqLayerOut, 1, 1>());
constexpr const TVariable kgl_LayerVS(BuiltInId::gl_LayerVS,
                                      BuiltInName::gl_Layer,
                                      SymbolType::BuiltIn,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      StaticType::Get<EbtInt, EbpHigh, EvqLayerOut, 1, 1>());
constexpr const TVariable kgl_LocalInvocationID(
    BuiltInId::gl_LocalInvocationID,
    BuiltInName::gl_LocalInvocationID,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtUInt, EbpHigh, EvqLocalInvocationID, 3, 1>());
constexpr const TVariable kgl_LocalInvocationIndex(
    BuiltInId::gl_LocalInvocationIndex,
    BuiltInName::gl_LocalInvocationIndex,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtUInt, EbpHigh, EvqLocalInvocationIndex, 1, 1>());
constexpr const TVariable kgl_NumSamples(BuiltInId::gl_NumSamples,
                                         BuiltInName::gl_NumSamples,
                                         SymbolType::BuiltIn,
                                         std::array<TExtension, 1u>{
                                             {TExtension::OES_sample_variables}},
                                         StaticType::Get<EbtInt, EbpLow, EvqUniform, 1, 1>());
constexpr const TVariable kgl_NumSamplesES3_2(BuiltInId::gl_NumSamplesES3_2,
                                              BuiltInName::gl_NumSamples,
                                              SymbolType::BuiltIn,
                                              std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                              StaticType::Get<EbtInt, EbpLow, EvqUniform, 1, 1>());
constexpr const TVariable kgl_NumWorkGroups(
    BuiltInId::gl_NumWorkGroups,
    BuiltInName::gl_NumWorkGroups,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtUInt, EbpHigh, EvqNumWorkGroups, 3, 1>());
constexpr const TVariable kgl_PatchVerticesInTCS(
    BuiltInId::gl_PatchVerticesInTCS,
    BuiltInName::gl_PatchVerticesIn,
    SymbolType::BuiltIn,
    std::array<TExtension, 2u>{
        {TExtension::EXT_tessellation_shader, TExtension::OES_tessellation_shader}},
    StaticType::Get<EbtInt, EbpHigh, EvqPatchVerticesIn, 1, 1>());
constexpr const TVariable kgl_PatchVerticesInTCSES3_2(
    BuiltInId::gl_PatchVerticesInTCSES3_2,
    BuiltInName::gl_PatchVerticesIn,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtInt, EbpHigh, EvqPatchVerticesIn, 1, 1>());
constexpr const TVariable kgl_PatchVerticesInTES(
    BuiltInId::gl_PatchVerticesInTES,
    BuiltInName::gl_PatchVerticesIn,
    SymbolType::BuiltIn,
    std::array<TExtension, 2u>{
        {TExtension::EXT_tessellation_shader, TExtension::OES_tessellation_shader}},
    StaticType::Get<EbtInt, EbpHigh, EvqPatchVerticesIn, 1, 1>());
constexpr const TVariable kgl_PatchVerticesInTESES3_2(
    BuiltInId::gl_PatchVerticesInTESES3_2,
    BuiltInName::gl_PatchVerticesIn,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtInt, EbpHigh, EvqPatchVerticesIn, 1, 1>());
constexpr const TVariable kgl_PointCoord(
    BuiltInId::gl_PointCoord,
    BuiltInName::gl_PointCoord,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtFloat, EbpMedium, EvqPointCoord, 2, 1>());
constexpr const TVariable kgl_PointSize(BuiltInId::gl_PointSize,
                                        BuiltInName::gl_PointSize,
                                        SymbolType::BuiltIn,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        StaticType::Get<EbtFloat, EbpMedium, EvqPointSize, 1, 1>());
constexpr const TVariable kgl_PointSize300(
    BuiltInId::gl_PointSize300,
    BuiltInName::gl_PointSize,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtFloat, EbpHigh, EvqPointSize, 1, 1>());
constexpr const TVariable kgl_Position(BuiltInId::gl_Position,
                                       BuiltInName::gl_Position,
                                       SymbolType::BuiltIn,
                                       std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                       StaticType::Get<EbtFloat, EbpHigh, EvqPosition, 4, 1>());
constexpr const TVariable kgl_PrimitiveID(
    BuiltInId::gl_PrimitiveID,
    BuiltInName::gl_PrimitiveID,
    SymbolType::BuiltIn,
    std::array<TExtension, 2u>{{TExtension::EXT_geometry_shader, TExtension::OES_geometry_shader}},
    StaticType::Get<EbtInt, EbpHigh, EvqPrimitiveID, 1, 1>());
constexpr const TVariable kgl_PrimitiveIDES3_2(
    BuiltInId::gl_PrimitiveIDES3_2,
    BuiltInName::gl_PrimitiveID,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtInt, EbpHigh, EvqPrimitiveID, 1, 1>());
constexpr const TVariable kgl_PrimitiveIDGS(
    BuiltInId::gl_PrimitiveIDGS,
    BuiltInName::gl_PrimitiveID,
    SymbolType::BuiltIn,
    std::array<TExtension, 2u>{{TExtension::EXT_geometry_shader, TExtension::OES_geometry_shader}},
    StaticType::Get<EbtInt, EbpHigh, EvqPrimitiveID, 1, 1>());
constexpr const TVariable kgl_PrimitiveIDGSES3_2(
    BuiltInId::gl_PrimitiveIDGSES3_2,
    BuiltInName::gl_PrimitiveID,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtInt, EbpHigh, EvqPrimitiveID, 1, 1>());
constexpr const TVariable kgl_PrimitiveIDIn(
    BuiltInId::gl_PrimitiveIDIn,
    BuiltInName::gl_PrimitiveIDIn,
    SymbolType::BuiltIn,
    std::array<TExtension, 2u>{{TExtension::EXT_geometry_shader, TExtension::OES_geometry_shader}},
    StaticType::Get<EbtInt, EbpHigh, EvqPrimitiveIDIn, 1, 1>());
constexpr const TVariable kgl_PrimitiveIDInES3_2(
    BuiltInId::gl_PrimitiveIDInES3_2,
    BuiltInName::gl_PrimitiveIDIn,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtInt, EbpHigh, EvqPrimitiveIDIn, 1, 1>());
constexpr const TVariable kgl_PrimitiveIDTCS(
    BuiltInId::gl_PrimitiveIDTCS,
    BuiltInName::gl_PrimitiveID,
    SymbolType::BuiltIn,
    std::array<TExtension, 2u>{
        {TExtension::EXT_tessellation_shader, TExtension::OES_tessellation_shader}},
    StaticType::Get<EbtInt, EbpHigh, EvqPrimitiveID, 1, 1>());
constexpr const TVariable kgl_PrimitiveIDTCSES3_2(
    BuiltInId::gl_PrimitiveIDTCSES3_2,
    BuiltInName::gl_PrimitiveID,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtInt, EbpHigh, EvqPrimitiveID, 1, 1>());
constexpr const TVariable kgl_PrimitiveIDTES(
    BuiltInId::gl_PrimitiveIDTES,
    BuiltInName::gl_PrimitiveID,
    SymbolType::BuiltIn,
    std::array<TExtension, 2u>{
        {TExtension::EXT_tessellation_shader, TExtension::OES_tessellation_shader}},
    StaticType::Get<EbtInt, EbpHigh, EvqPrimitiveID, 1, 1>());
constexpr const TVariable kgl_PrimitiveIDTESES3_2(
    BuiltInId::gl_PrimitiveIDTESES3_2,
    BuiltInName::gl_PrimitiveID,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtInt, EbpHigh, EvqPrimitiveID, 1, 1>());
constexpr const TVariable kgl_SampleID(BuiltInId::gl_SampleID,
                                       BuiltInName::gl_SampleID,
                                       SymbolType::BuiltIn,
                                       std::array<TExtension, 1u>{
                                           {TExtension::OES_sample_variables}},
                                       StaticType::Get<EbtInt, EbpLow, EvqSampleID, 1, 1>());
constexpr const TVariable kgl_SampleIDES3_2(BuiltInId::gl_SampleIDES3_2,
                                            BuiltInName::gl_SampleID,
                                            SymbolType::BuiltIn,
                                            std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                            StaticType::Get<EbtInt, EbpLow, EvqSampleID, 1, 1>());
constexpr const TVariable kgl_SamplePosition(
    BuiltInId::gl_SamplePosition,
    BuiltInName::gl_SamplePosition,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::OES_sample_variables}},
    StaticType::Get<EbtFloat, EbpMedium, EvqSamplePosition, 2, 1>());
constexpr const TVariable kgl_SamplePositionES3_2(
    BuiltInId::gl_SamplePositionES3_2,
    BuiltInName::gl_SamplePosition,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtFloat, EbpMedium, EvqSamplePosition, 2, 1>());
constexpr const TVariable kgl_SecondaryFragColorEXT(
    BuiltInId::gl_SecondaryFragColorEXT,
    BuiltInName::gl_SecondaryFragColorEXT,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::EXT_blend_func_extended}},
    StaticType::Get<EbtFloat, EbpMedium, EvqSecondaryFragColorEXT, 4, 1>());
constexpr const TVariable kgl_TessCoord(BuiltInId::gl_TessCoord,
                                        BuiltInName::gl_TessCoord,
                                        SymbolType::BuiltIn,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        StaticType::Get<EbtFloat, EbpHigh, EvqTessCoord, 3, 1>());
constexpr const TVariable kgl_VertexID(BuiltInId::gl_VertexID,
                                       BuiltInName::gl_VertexID,
                                       SymbolType::BuiltIn,
                                       std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                       StaticType::Get<EbtInt, EbpHigh, EvqVertexID, 1, 1>());
constexpr const TVariable kgl_VertexIndex(BuiltInId::gl_VertexIndex,
                                          BuiltInName::gl_VertexIndex,
                                          SymbolType::BuiltIn,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          StaticType::Get<EbtInt, EbpHigh, EvqVertexID, 1, 1>());
constexpr const TVariable kgl_ViewID_OVR(BuiltInId::gl_ViewID_OVR,
                                         BuiltInName::gl_ViewID_OVR,
                                         SymbolType::BuiltIn,
                                         std::array<TExtension, 1u>{{TExtension::OVR_multiview}},
                                         StaticType::Get<EbtUInt, EbpHigh, EvqViewIDOVR, 1, 1>());
constexpr const TVariable kgl_WorkGroupID(
    BuiltInId::gl_WorkGroupID,
    BuiltInName::gl_WorkGroupID,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtUInt, EbpHigh, EvqWorkGroupID, 3, 1>());
constexpr const TVariable kgl_WorkGroupSize(
    BuiltInId::gl_WorkGroupSize,
    BuiltInName::gl_WorkGroupSize,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtUInt, EbpHigh, EvqWorkGroupSize, 3, 1>());
constexpr const TVariable kpt00B(BuiltInId::pt00B,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00C(BuiltInId::pt00C,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00D(BuiltInId::pt00D,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00E(BuiltInId::pt00E,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00F(
    BuiltInId::pt00F,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtAtomicCounter, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00G(
    BuiltInId::pt00G,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtYuvCscStandardEXT, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00H(BuiltInId::pt00H,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtSampler2D, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00I(BuiltInId::pt00I,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtSampler3D, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00J(BuiltInId::pt00J,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtSamplerCube, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00K(
    BuiltInId::pt00K,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtSampler2DArray, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00L(
    BuiltInId::pt00L,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtSamplerExternalOES, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00M(
    BuiltInId::pt00M,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtSamplerExternal2DY2YEXT, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00N(
    BuiltInId::pt00N,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtSampler2DRect, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00O(BuiltInId::pt00O,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtSampler2DMS, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00P(
    BuiltInId::pt00P,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtSampler2DMSArray, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00Q(BuiltInId::pt00Q,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtISampler2D, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00R(BuiltInId::pt00R,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtISampler3D, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00S(BuiltInId::pt00S,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtISamplerCube, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00T(
    BuiltInId::pt00T,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtISampler2DArray, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00U(BuiltInId::pt00U,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtISampler2DMS, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00V(
    BuiltInId::pt00V,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtISampler2DMSArray, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00W(BuiltInId::pt00W,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtUSampler2D, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00X(BuiltInId::pt00X,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtUSampler3D, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00Y(BuiltInId::pt00Y,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtUSamplerCube, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00Z(
    BuiltInId::pt00Z,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtUSampler2DArray, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00a(BuiltInId::pt00a,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtUSampler2DMS, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00b(
    BuiltInId::pt00b,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtUSampler2DMSArray, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00c(
    BuiltInId::pt00c,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtSampler2DShadow, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00d(
    BuiltInId::pt00d,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtSamplerCubeShadow, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00e(
    BuiltInId::pt00e,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtSampler2DArrayShadow, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00f(
    BuiltInId::pt00f,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtSamplerBuffer, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00g(
    BuiltInId::pt00g,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtSamplerCubeArray, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00h(
    BuiltInId::pt00h,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtSamplerCubeArrayShadow, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00k(
    BuiltInId::pt00k,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtISamplerBuffer, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00l(
    BuiltInId::pt00l,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtISamplerCubeArray, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00n(
    BuiltInId::pt00n,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtUSamplerBuffer, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00o(
    BuiltInId::pt00o,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtUSamplerCubeArray, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00p(
    BuiltInId::pt00p,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtSamplerVideoWEBGL, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00q(BuiltInId::pt00q,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtImage2D, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00r(BuiltInId::pt00r,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtImage3D, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00s(BuiltInId::pt00s,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtImage2DArray, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00t(BuiltInId::pt00t,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtImageCube, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00u(BuiltInId::pt00u,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtImage2DMS, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00v(
    BuiltInId::pt00v,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtImage2DMSArray, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00w(
    BuiltInId::pt00w,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtImageCubeArray, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00x(BuiltInId::pt00x,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtImageRect, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00y(BuiltInId::pt00y,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtImageBuffer, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00z(BuiltInId::pt00z,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtIImage2D, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01A(BuiltInId::pt01A,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtIImage3D, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01B(
    BuiltInId::pt01B,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtIImage2DArray, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01C(BuiltInId::pt01C,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtIImageCube, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01D(BuiltInId::pt01D,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtIImage2DMS, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01E(
    BuiltInId::pt01E,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtIImage2DMSArray, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01F(
    BuiltInId::pt01F,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtIImageCubeArray, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01G(BuiltInId::pt01G,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtIImageRect, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01H(BuiltInId::pt01H,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtIImageBuffer, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01I(BuiltInId::pt01I,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtUImage2D, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01J(BuiltInId::pt01J,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtUImage3D, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01K(
    BuiltInId::pt01K,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtUImage2DArray, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01L(BuiltInId::pt01L,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtUImageCube, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01M(BuiltInId::pt01M,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtUImage2DMS, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01N(
    BuiltInId::pt01N,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtUImage2DMSArray, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01O(
    BuiltInId::pt01O,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtUImageCubeArray, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01P(BuiltInId::pt01P,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtUImageRect, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01Q(BuiltInId::pt01Q,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtUImageBuffer, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01R(
    BuiltInId::pt01R,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtPixelLocalANGLE, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01S(
    BuiltInId::pt01S,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtIPixelLocalANGLE, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01T(
    BuiltInId::pt01T,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtUPixelLocalANGLE, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01U(BuiltInId::pt01U,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtSubpassInput, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01V(
    BuiltInId::pt01V,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtISubpassInput, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01W(
    BuiltInId::pt01W,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::Get<EbtUSubpassInput, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt10B(BuiltInId::pt10B,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>());
constexpr const TVariable kpt10C(BuiltInId::pt10C,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>());
constexpr const TVariable kpt10Cx4(
    BuiltInId::pt10Cx4,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    StaticType::GetArray<EbtInt, EbpUndefined, EvqGlobal, 2, 1, kArraySize4, 1>());
constexpr const TVariable kpt10D(BuiltInId::pt10D,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>());
constexpr const TVariable kpt10E(BuiltInId::pt10E,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>());
constexpr const TVariable kpt20B(BuiltInId::pt20B,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>());
constexpr const TVariable kpt20C(BuiltInId::pt20C,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>());
constexpr const TVariable kpt20D(BuiltInId::pt20D,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>());
constexpr const TVariable kpt20E(BuiltInId::pt20E,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>());
constexpr const TVariable kpt30B(BuiltInId::pt30B,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>());
constexpr const TVariable kpt30C(BuiltInId::pt30C,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>());
constexpr const TVariable kpt30D(BuiltInId::pt30D,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>());
constexpr const TVariable kpt30E(BuiltInId::pt30E,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>());
constexpr const TVariable kpt50B(BuiltInId::pt50B,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 2>());
constexpr const TVariable kpt60B(BuiltInId::pt60B,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 2>());
constexpr const TVariable kpt70B(BuiltInId::pt70B,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 2>());
constexpr const TVariable kpt90B(BuiltInId::pt90B,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 3>());
constexpr const TVariable kptA0B(BuiltInId::ptA0B,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 3>());
constexpr const TVariable kptB0B(BuiltInId::ptB0B,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 3>());
constexpr const TVariable kptD0B(BuiltInId::ptD0B,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 4>());
constexpr const TVariable kptE0B(BuiltInId::ptE0B,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 4>());
constexpr const TVariable kptF0B(BuiltInId::ptF0B,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 4>());
constexpr const TVariable kpt_io_00C(BuiltInId::pt_io_00C,
                                     BuiltInName::_empty,
                                     SymbolType::BuiltIn,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     StaticType::Get<EbtInt, EbpUndefined, EvqParamInOut, 1, 1>());
constexpr const TVariable kpt_io_00D(BuiltInId::pt_io_00D,
                                     BuiltInName::_empty,
                                     SymbolType::BuiltIn,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     StaticType::Get<EbtUInt, EbpUndefined, EvqParamInOut, 1, 1>());
constexpr const TVariable kpt_o_00B(BuiltInId::pt_o_00B,
                                    BuiltInName::_empty,
                                    SymbolType::BuiltIn,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqParamOut, 1, 1>());
constexpr const TVariable kpt_o_00C(BuiltInId::pt_o_00C,
                                    BuiltInName::_empty,
                                    SymbolType::BuiltIn,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    StaticType::Get<EbtInt, EbpUndefined, EvqParamOut, 1, 1>());
constexpr const TVariable kpt_o_00D(BuiltInId::pt_o_00D,
                                    BuiltInName::_empty,
                                    SymbolType::BuiltIn,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    StaticType::Get<EbtUInt, EbpUndefined, EvqParamOut, 1, 1>());
constexpr const TVariable kpt_o_10B(BuiltInId::pt_o_10B,
                                    BuiltInName::_empty,
                                    SymbolType::BuiltIn,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqParamOut, 2, 1>());
constexpr const TVariable kpt_o_10C(BuiltInId::pt_o_10C,
                                    BuiltInName::_empty,
                                    SymbolType::BuiltIn,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    StaticType::Get<EbtInt, EbpUndefined, EvqParamOut, 2, 1>());
constexpr const TVariable kpt_o_10D(BuiltInId::pt_o_10D,
                                    BuiltInName::_empty,
                                    SymbolType::BuiltIn,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    StaticType::Get<EbtUInt, EbpUndefined, EvqParamOut, 2, 1>());
constexpr const TVariable kpt_o_20B(BuiltInId::pt_o_20B,
                                    BuiltInName::_empty,
                                    SymbolType::BuiltIn,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqParamOut, 3, 1>());
constexpr const TVariable kpt_o_20C(BuiltInId::pt_o_20C,
                                    BuiltInName::_empty,
                                    SymbolType::BuiltIn,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    StaticType::Get<EbtInt, EbpUndefined, EvqParamOut, 3, 1>());
constexpr const TVariable kpt_o_20D(BuiltInId::pt_o_20D,
                                    BuiltInName::_empty,
                                    SymbolType::BuiltIn,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    StaticType::Get<EbtUInt, EbpUndefined, EvqParamOut, 3, 1>());
constexpr const TVariable kpt_o_30B(BuiltInId::pt_o_30B,
                                    BuiltInName::_empty,
                                    SymbolType::BuiltIn,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqParamOut, 4, 1>());
constexpr const TVariable kpt_o_30C(BuiltInId::pt_o_30C,
                                    BuiltInName::_empty,
                                    SymbolType::BuiltIn,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    StaticType::Get<EbtInt, EbpUndefined, EvqParamOut, 4, 1>());
constexpr const TVariable kpt_o_30D(BuiltInId::pt_o_30D,
                                    BuiltInName::_empty,
                                    SymbolType::BuiltIn,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    StaticType::Get<EbtUInt, EbpUndefined, EvqParamOut, 4, 1>());

const TVariable *angle_BaseInstance()
{
    return &kangle_BaseInstance;
}

const TVariable *angle_BaseVertex()
{
    return &kangle_BaseVertex;
}

const TVariable *gl_BaseInstance()
{
    return &kgl_BaseInstance;
}

const TVariable *gl_BaseVertex()
{
    return &kgl_BaseVertex;
}

const TVariable *gl_DrawID()
{
    return &kgl_DrawID;
}

const TVariable *gl_FragColor()
{
    return &kgl_FragColor;
}

const TVariable *gl_FragCoord()
{
    return &kgl_FragCoord;
}

const TVariable *gl_FragCoord300()
{
    return &kgl_FragCoord300;
}

const TVariable *gl_FragDepth()
{
    return &kgl_FragDepth;
}

const TVariable *gl_FrontFacing()
{
    return &kgl_FrontFacing;
}

const TVariable *gl_GlobalInvocationID()
{
    return &kgl_GlobalInvocationID;
}

const TVariable *gl_HelperInvocation()
{
    return &kgl_HelperInvocation;
}

const TVariable *gl_InstanceID()
{
    return &kgl_InstanceID;
}

const TVariable *gl_InstanceIndex()
{
    return &kgl_InstanceIndex;
}

const TVariable *gl_InvocationID()
{
    return &kgl_InvocationID;
}

const TVariable *gl_InvocationIDES3_2()
{
    return &kgl_InvocationIDES3_2;
}

const TVariable *gl_InvocationIDTCS()
{
    return &kgl_InvocationIDTCS;
}

const TVariable *gl_InvocationIDTCSES3_2()
{
    return &kgl_InvocationIDTCSES3_2;
}

const TVariable *gl_LastFragColor()
{
    return &kgl_LastFragColor;
}

const TVariable *gl_LastFragColorARM()
{
    return &kgl_LastFragColorARM;
}

const TVariable *gl_LastFragDepthARM()
{
    return &kgl_LastFragDepthARM;
}

const TVariable *gl_LastFragStencilARM()
{
    return &kgl_LastFragStencilARM;
}

const TVariable *gl_Layer()
{
    return &kgl_Layer;
}

const TVariable *gl_LayerES3_2()
{
    return &kgl_LayerES3_2;
}

const TVariable *gl_LayerGS()
{
    return &kgl_LayerGS;
}

const TVariable *gl_LayerGSES3_2()
{
    return &kgl_LayerGSES3_2;
}

const TVariable *gl_LayerVS()
{
    return &kgl_LayerVS;
}

const TVariable *gl_LocalInvocationID()
{
    return &kgl_LocalInvocationID;
}

const TVariable *gl_LocalInvocationIndex()
{
    return &kgl_LocalInvocationIndex;
}

const TVariable *gl_NumSamples()
{
    return &kgl_NumSamples;
}

const TVariable *gl_NumSamplesES3_2()
{
    return &kgl_NumSamplesES3_2;
}

const TVariable *gl_NumWorkGroups()
{
    return &kgl_NumWorkGroups;
}

const TVariable *gl_PatchVerticesInTCS()
{
    return &kgl_PatchVerticesInTCS;
}

const TVariable *gl_PatchVerticesInTCSES3_2()
{
    return &kgl_PatchVerticesInTCSES3_2;
}

const TVariable *gl_PatchVerticesInTES()
{
    return &kgl_PatchVerticesInTES;
}

const TVariable *gl_PatchVerticesInTESES3_2()
{
    return &kgl_PatchVerticesInTESES3_2;
}

const TVariable *gl_PointCoord()
{
    return &kgl_PointCoord;
}

const TVariable *gl_PointSize()
{
    return &kgl_PointSize;
}

const TVariable *gl_PointSize300()
{
    return &kgl_PointSize300;
}

const TVariable *gl_Position()
{
    return &kgl_Position;
}

const TVariable *gl_PrimitiveID()
{
    return &kgl_PrimitiveID;
}

const TVariable *gl_PrimitiveIDES3_2()
{
    return &kgl_PrimitiveIDES3_2;
}

const TVariable *gl_PrimitiveIDGS()
{
    return &kgl_PrimitiveIDGS;
}

const TVariable *gl_PrimitiveIDGSES3_2()
{
    return &kgl_PrimitiveIDGSES3_2;
}

const TVariable *gl_PrimitiveIDIn()
{
    return &kgl_PrimitiveIDIn;
}

const TVariable *gl_PrimitiveIDInES3_2()
{
    return &kgl_PrimitiveIDInES3_2;
}

const TVariable *gl_PrimitiveIDTCS()
{
    return &kgl_PrimitiveIDTCS;
}

const TVariable *gl_PrimitiveIDTCSES3_2()
{
    return &kgl_PrimitiveIDTCSES3_2;
}

const TVariable *gl_PrimitiveIDTES()
{
    return &kgl_PrimitiveIDTES;
}

const TVariable *gl_PrimitiveIDTESES3_2()
{
    return &kgl_PrimitiveIDTESES3_2;
}

const TVariable *gl_SampleID()
{
    return &kgl_SampleID;
}

const TVariable *gl_SampleIDES3_2()
{
    return &kgl_SampleIDES3_2;
}

const TVariable *gl_SamplePosition()
{
    return &kgl_SamplePosition;
}

const TVariable *gl_SamplePositionES3_2()
{
    return &kgl_SamplePositionES3_2;
}

const TVariable *gl_SecondaryFragColorEXT()
{
    return &kgl_SecondaryFragColorEXT;
}

const TVariable *gl_TessCoord()
{
    return &kgl_TessCoord;
}

const TVariable *gl_VertexID()
{
    return &kgl_VertexID;
}

const TVariable *gl_VertexIndex()
{
    return &kgl_VertexIndex;
}

const TVariable *gl_ViewID_OVR()
{
    return &kgl_ViewID_OVR;
}

const TVariable *gl_WorkGroupID()
{
    return &kgl_WorkGroupID;
}

const TVariable *gl_WorkGroupSize()
{
    return &kgl_WorkGroupSize;
}

}  // namespace BuiltInVariable

namespace BuiltInParameters
{

constexpr const TVariable **empty        = nullptr;
constexpr const TVariable *p00B00B00B[3] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt00B,
                                            &BuiltInVariable::kpt00B};
constexpr const TVariable *p00B00B00E[3] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt00B,
                                            &BuiltInVariable::kpt00E};
constexpr const TVariable *p00B00B10B[3] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt00B,
                                            &BuiltInVariable::kpt10B};
constexpr const TVariable *p00B00B20B[3] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt00B,
                                            &BuiltInVariable::kpt20B};
constexpr const TVariable *p00B00B30B[3] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt00B,
                                            &BuiltInVariable::kpt30B};
constexpr const TVariable *p00B00C[2]    = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt00C};
constexpr const TVariable *p00B10B[2]    = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt10B};
constexpr const TVariable *p00B20B[2]    = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt20B};
constexpr const TVariable *p00B30B[2]    = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt30B};
constexpr const TVariable *p00B_o_00B[2] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt_o_00B};
constexpr const TVariable *p00B_o_00C[2] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt_o_00C};
constexpr const TVariable *p00C00C00C00C[4] = {&BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C,
                                               &BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C};
constexpr const TVariable *p00C00C00E[3]    = {&BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C,
                                               &BuiltInVariable::kpt00E};
constexpr const TVariable *p00C00C_o_00C_o_00C[4] = {
    &BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C, &BuiltInVariable::kpt_o_00C,
    &BuiltInVariable::kpt_o_00C};
constexpr const TVariable *p00D00C00C[3]    = {&BuiltInVariable::kpt00D, &BuiltInVariable::kpt00C,
                                               &BuiltInVariable::kpt00C};
constexpr const TVariable *p00D00D00C00C[4] = {&BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D,
                                               &BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C};
constexpr const TVariable *p00D00D00D[3]    = {&BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D,
                                               &BuiltInVariable::kpt00D};
constexpr const TVariable *p00D00D00E[3]    = {&BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D,
                                               &BuiltInVariable::kpt00E};
constexpr const TVariable *p00D00D_o_00D_o_00D[4] = {
    &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D, &BuiltInVariable::kpt_o_00D,
    &BuiltInVariable::kpt_o_00D};
constexpr const TVariable *p00E00E00E[3]    = {&BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E,
                                               &BuiltInVariable::kpt00E};
constexpr const TVariable *p00F[1]          = {&BuiltInVariable::kpt00F};
constexpr const TVariable *p00H00C[2]       = {&BuiltInVariable::kpt00H, &BuiltInVariable::kpt00C};
constexpr const TVariable *p00H10B00B10C[4] = {&BuiltInVariable::kpt00H, &BuiltInVariable::kpt10B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10C};
constexpr const TVariable *p00H10B00C[3]    = {&BuiltInVariable::kpt00H, &BuiltInVariable::kpt10B,
                                               &BuiltInVariable::kpt00C};
constexpr const TVariable *p00H10B10B10B10C[5] = {
    &BuiltInVariable::kpt00H, &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10C};
constexpr const TVariable *p00H10B10C00B[4]   = {&BuiltInVariable::kpt00H, &BuiltInVariable::kpt10B,
                                                 &BuiltInVariable::kpt10C, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00H10B10C00C[4]   = {&BuiltInVariable::kpt00H, &BuiltInVariable::kpt10B,
                                                 &BuiltInVariable::kpt10C, &BuiltInVariable::kpt00C};
constexpr const TVariable *p00H10B10Cx400C[4] = {&BuiltInVariable::kpt00H, &BuiltInVariable::kpt10B,
                                                 &BuiltInVariable::kpt10Cx4,
                                                 &BuiltInVariable::kpt00C};
constexpr const TVariable *p00H10C00C10C[4]   = {&BuiltInVariable::kpt00H, &BuiltInVariable::kpt10C,
                                                 &BuiltInVariable::kpt00C, &BuiltInVariable::kpt10C};
constexpr const TVariable *p00H20B00B10C[4]   = {&BuiltInVariable::kpt00H, &BuiltInVariable::kpt20B,
                                                 &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10C};
constexpr const TVariable *p00H20B10B10B10C[5] = {
    &BuiltInVariable::kpt00H, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10C};
constexpr const TVariable *p00H20B10C00B[4] = {&BuiltInVariable::kpt00H, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt10C, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00H30B00B10C[4] = {&BuiltInVariable::kpt00H, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10C};
constexpr const TVariable *p00H30B10B10B10C[5] = {
    &BuiltInVariable::kpt00H, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10C};
constexpr const TVariable *p00H30B10C00B[4] = {&BuiltInVariable::kpt00H, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt10C, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00I00C[2]       = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt00C};
constexpr const TVariable *p00I20B00B20C[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt20C};
constexpr const TVariable *p00I20B20B20B20C[5] = {
    &BuiltInVariable::kpt00I, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B,
    &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20C};
constexpr const TVariable *p00I20B20C00B[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt20C, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00I20C00C20C[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt00C, &BuiltInVariable::kpt20C};
constexpr const TVariable *p00I30B00B20C[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt20C};
constexpr const TVariable *p00I30B20B20B20C[5] = {
    &BuiltInVariable::kpt00I, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt20B,
    &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20C};
constexpr const TVariable *p00I30B20C00B[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt20C, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00J00C[2]       = {&BuiltInVariable::kpt00J, &BuiltInVariable::kpt00C};
constexpr const TVariable *p00J20B00B[3]    = {&BuiltInVariable::kpt00J, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt00B};
constexpr const TVariable *p00J20B00C[3]    = {&BuiltInVariable::kpt00J, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt00C};
constexpr const TVariable *p00J20B20B20B[4] = {&BuiltInVariable::kpt00J, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B};
constexpr const TVariable *p00K00C[2]       = {&BuiltInVariable::kpt00K, &BuiltInVariable::kpt00C};
constexpr const TVariable *p00K10B[2]       = {&BuiltInVariable::kpt00K, &BuiltInVariable::kpt10B};
constexpr const TVariable *p00K20B00B10C[4] = {&BuiltInVariable::kpt00K, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10C};
constexpr const TVariable *p00K20B00C[3]    = {&BuiltInVariable::kpt00K, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt00C};
constexpr const TVariable *p00K20B10B10B10C[5] = {
    &BuiltInVariable::kpt00K, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10C};
constexpr const TVariable *p00K20B10C00B[4]   = {&BuiltInVariable::kpt00K, &BuiltInVariable::kpt20B,
                                                 &BuiltInVariable::kpt10C, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00K20B10C00C[4]   = {&BuiltInVariable::kpt00K, &BuiltInVariable::kpt20B,
                                                 &BuiltInVariable::kpt10C, &BuiltInVariable::kpt00C};
constexpr const TVariable *p00K20B10Cx400C[4] = {&BuiltInVariable::kpt00K, &BuiltInVariable::kpt20B,
                                                 &BuiltInVariable::kpt10Cx4,
                                                 &BuiltInVariable::kpt00C};
constexpr const TVariable *p00K20C00C10C[4]   = {&BuiltInVariable::kpt00K, &BuiltInVariable::kpt20C,
                                                 &BuiltInVariable::kpt00C, &BuiltInVariable::kpt10C};
constexpr const TVariable *p00L00C[2]       = {&BuiltInVariable::kpt00L, &BuiltInVariable::kpt00C};
constexpr const TVariable *p00L10B00B[3]    = {&BuiltInVariable::kpt00L, &BuiltInVariable::kpt10B,
                                               &BuiltInVariable::kpt00B};
constexpr const TVariable *p00L10C00C[3]    = {&BuiltInVariable::kpt00L, &BuiltInVariable::kpt10C,
                                               &BuiltInVariable::kpt00C};
constexpr const TVariable *p00L20B00B[3]    = {&BuiltInVariable::kpt00L, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt00B};
constexpr const TVariable *p00L30B00B[3]    = {&BuiltInVariable::kpt00L, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt00B};
constexpr const TVariable *p00M00C[2]       = {&BuiltInVariable::kpt00M, &BuiltInVariable::kpt00C};
constexpr const TVariable *p00M10B00B[3]    = {&BuiltInVariable::kpt00M, &BuiltInVariable::kpt10B,
                                               &BuiltInVariable::kpt00B};
constexpr const TVariable *p00M10C00C[3]    = {&BuiltInVariable::kpt00M, &BuiltInVariable::kpt10C,
                                               &BuiltInVariable::kpt00C};
constexpr const TVariable *p00M20B00B[3]    = {&BuiltInVariable::kpt00M, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt00B};
constexpr const TVariable *p00M30B00B[3]    = {&BuiltInVariable::kpt00M, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt00B};
constexpr const TVariable *p00N10B[2]       = {&BuiltInVariable::kpt00N, &BuiltInVariable::kpt10B};
constexpr const TVariable *p00N20B[2]       = {&BuiltInVariable::kpt00N, &BuiltInVariable::kpt20B};
constexpr const TVariable *p00N30B[2]       = {&BuiltInVariable::kpt00N, &BuiltInVariable::kpt30B};
constexpr const TVariable *p00O10C00C[3]    = {&BuiltInVariable::kpt00O, &BuiltInVariable::kpt10C,
                                               &BuiltInVariable::kpt00C};
constexpr const TVariable *p00P20C00C[3]    = {&BuiltInVariable::kpt00P, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt00C};
constexpr const TVariable *p00Q00C[2]       = {&BuiltInVariable::kpt00Q, &BuiltInVariable::kpt00C};
constexpr const TVariable *p00Q10B00B10C[4] = {&BuiltInVariable::kpt00Q, &BuiltInVariable::kpt10B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10C};
constexpr const TVariable *p00Q10B00C[3]    = {&BuiltInVariable::kpt00Q, &BuiltInVariable::kpt10B,
                                               &BuiltInVariable::kpt00C};
constexpr const TVariable *p00Q10B10B10B10C[5] = {
    &BuiltInVariable::kpt00Q, &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10C};
constexpr const TVariable *p00Q10B10C00B[4]   = {&BuiltInVariable::kpt00Q, &BuiltInVariable::kpt10B,
                                                 &BuiltInVariable::kpt10C, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00Q10B10C00C[4]   = {&BuiltInVariable::kpt00Q, &BuiltInVariable::kpt10B,
                                                 &BuiltInVariable::kpt10C, &BuiltInVariable::kpt00C};
constexpr const TVariable *p00Q10B10Cx400C[4] = {&BuiltInVariable::kpt00Q, &BuiltInVariable::kpt10B,
                                                 &BuiltInVariable::kpt10Cx4,
                                                 &BuiltInVariable::kpt00C};
constexpr const TVariable *p00Q10C00C10C[4]   = {&BuiltInVariable::kpt00Q, &BuiltInVariable::kpt10C,
                                                 &BuiltInVariable::kpt00C, &BuiltInVariable::kpt10C};
constexpr const TVariable *p00Q20B00B10C[4]   = {&BuiltInVariable::kpt00Q, &BuiltInVariable::kpt20B,
                                                 &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10C};
constexpr const TVariable *p00Q20B10B10B10C[5] = {
    &BuiltInVariable::kpt00Q, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10C};
constexpr const TVariable *p00Q20B10C00B[4] = {&BuiltInVariable::kpt00Q, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt10C, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00Q30B00B10C[4] = {&BuiltInVariable::kpt00Q, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10C};
constexpr const TVariable *p00Q30B10B10B10C[5] = {
    &BuiltInVariable::kpt00Q, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10C};
constexpr const TVariable *p00Q30B10C00B[4] = {&BuiltInVariable::kpt00Q, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt10C, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00R00C[2]       = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt00C};
constexpr const TVariable *p00R20B00B20C[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt20C};
constexpr const TVariable *p00R20B20B20B20C[5] = {
    &BuiltInVariable::kpt00R, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B,
    &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20C};
constexpr const TVariable *p00R20B20C00B[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt20C, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00R20C00C20C[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt00C, &BuiltInVariable::kpt20C};
constexpr const TVariable *p00R30B00B20C[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt20C};
constexpr const TVariable *p00R30B20B20B20C[5] = {
    &BuiltInVariable::kpt00R, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt20B,
    &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20C};
constexpr const TVariable *p00R30B20C00B[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt20C, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00S00C[2]       = {&BuiltInVariable::kpt00S, &BuiltInVariable::kpt00C};
constexpr const TVariable *p00S20B00B[3]    = {&BuiltInVariable::kpt00S, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt00B};
constexpr const TVariable *p00S20B00C[3]    = {&BuiltInVariable::kpt00S, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt00C};
constexpr const TVariable *p00S20B20B20B[4] = {&BuiltInVariable::kpt00S, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B};
constexpr const TVariable *p00T00C[2]       = {&BuiltInVariable::kpt00T, &BuiltInVariable::kpt00C};
constexpr const TVariable *p00T10B[2]       = {&BuiltInVariable::kpt00T, &BuiltInVariable::kpt10B};
constexpr const TVariable *p00T20B00B10C[4] = {&BuiltInVariable::kpt00T, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10C};
constexpr const TVariable *p00T20B00C[3]    = {&BuiltInVariable::kpt00T, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt00C};
constexpr const TVariable *p00T20B10B10B10C[5] = {
    &BuiltInVariable::kpt00T, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10C};
constexpr const TVariable *p00T20B10C00B[4]   = {&BuiltInVariable::kpt00T, &BuiltInVariable::kpt20B,
                                                 &BuiltInVariable::kpt10C, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00T20B10C00C[4]   = {&BuiltInVariable::kpt00T, &BuiltInVariable::kpt20B,
                                                 &BuiltInVariable::kpt10C, &BuiltInVariable::kpt00C};
constexpr const TVariable *p00T20B10Cx400C[4] = {&BuiltInVariable::kpt00T, &BuiltInVariable::kpt20B,
                                                 &BuiltInVariable::kpt10Cx4,
                                                 &BuiltInVariable::kpt00C};
constexpr const TVariable *p00T20C00C10C[4]   = {&BuiltInVariable::kpt00T, &BuiltInVariable::kpt20C,
                                                 &BuiltInVariable::kpt00C, &BuiltInVariable::kpt10C};
constexpr const TVariable *p00U10C00C[3]      = {&BuiltInVariable::kpt00U, &BuiltInVariable::kpt10C,
                                                 &BuiltInVariable::kpt00C};
constexpr const TVariable *p00V20C00C[3]      = {&BuiltInVariable::kpt00V, &BuiltInVariable::kpt20C,
                                                 &BuiltInVariable::kpt00C};
constexpr const TVariable *p00W00C[2]       = {&BuiltInVariable::kpt00W, &BuiltInVariable::kpt00C};
constexpr const TVariable *p00W10B00B10C[4] = {&BuiltInVariable::kpt00W, &BuiltInVariable::kpt10B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10C};
constexpr const TVariable *p00W10B00C[3]    = {&BuiltInVariable::kpt00W, &BuiltInVariable::kpt10B,
                                               &BuiltInVariable::kpt00C};
constexpr const TVariable *p00W10B10B10B10C[5] = {
    &BuiltInVariable::kpt00W, &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10C};
constexpr const TVariable *p00W10B10C00B[4]   = {&BuiltInVariable::kpt00W, &BuiltInVariable::kpt10B,
                                                 &BuiltInVariable::kpt10C, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00W10B10C00C[4]   = {&BuiltInVariable::kpt00W, &BuiltInVariable::kpt10B,
                                                 &BuiltInVariable::kpt10C, &BuiltInVariable::kpt00C};
constexpr const TVariable *p00W10B10Cx400C[4] = {&BuiltInVariable::kpt00W, &BuiltInVariable::kpt10B,
                                                 &BuiltInVariable::kpt10Cx4,
                                                 &BuiltInVariable::kpt00C};
constexpr const TVariable *p00W10C00C10C[4]   = {&BuiltInVariable::kpt00W, &BuiltInVariable::kpt10C,
                                                 &BuiltInVariable::kpt00C, &BuiltInVariable::kpt10C};
constexpr const TVariable *p00W20B00B10C[4]   = {&BuiltInVariable::kpt00W, &BuiltInVariable::kpt20B,
                                                 &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10C};
constexpr const TVariable *p00W20B10B10B10C[5] = {
    &BuiltInVariable::kpt00W, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10C};
constexpr const TVariable *p00W20B10C00B[4] = {&BuiltInVariable::kpt00W, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt10C, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00W30B00B10C[4] = {&BuiltInVariable::kpt00W, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10C};
constexpr const TVariable *p00W30B10B10B10C[5] = {
    &BuiltInVariable::kpt00W, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10C};
constexpr const TVariable *p00W30B10C00B[4] = {&BuiltInVariable::kpt00W, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt10C, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00X00C[2]       = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt00C};
constexpr const TVariable *p00X20B00B20C[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt20C};
constexpr const TVariable *p00X20B20B20B20C[5] = {
    &BuiltInVariable::kpt00X, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B,
    &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20C};
constexpr const TVariable *p00X20B20C00B[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt20C, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00X20C00C20C[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt00C, &BuiltInVariable::kpt20C};
constexpr const TVariable *p00X30B00B20C[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt20C};
constexpr const TVariable *p00X30B20B20B20C[5] = {
    &BuiltInVariable::kpt00X, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt20B,
    &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20C};
constexpr const TVariable *p00X30B20C00B[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt20C, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00Y00C[2]       = {&BuiltInVariable::kpt00Y, &BuiltInVariable::kpt00C};
constexpr const TVariable *p00Y20B00B[3]    = {&BuiltInVariable::kpt00Y, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt00B};
constexpr const TVariable *p00Y20B00C[3]    = {&BuiltInVariable::kpt00Y, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt00C};
constexpr const TVariable *p00Y20B20B20B[4] = {&BuiltInVariable::kpt00Y, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B};
constexpr const TVariable *p00Z00C[2]       = {&BuiltInVariable::kpt00Z, &BuiltInVariable::kpt00C};
constexpr const TVariable *p00Z10B[2]       = {&BuiltInVariable::kpt00Z, &BuiltInVariable::kpt10B};
constexpr const TVariable *p00Z20B00B10C[4] = {&BuiltInVariable::kpt00Z, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10C};
constexpr const TVariable *p00Z20B00C[3]    = {&BuiltInVariable::kpt00Z, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt00C};
constexpr const TVariable *p00Z20B10B10B10C[5] = {
    &BuiltInVariable::kpt00Z, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10C};
constexpr const TVariable *p00Z20B10C00B[4]   = {&BuiltInVariable::kpt00Z, &BuiltInVariable::kpt20B,
                                                 &BuiltInVariable::kpt10C, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00Z20B10C00C[4]   = {&BuiltInVariable::kpt00Z, &BuiltInVariable::kpt20B,
                                                 &BuiltInVariable::kpt10C, &BuiltInVariable::kpt00C};
constexpr const TVariable *p00Z20B10Cx400C[4] = {&BuiltInVariable::kpt00Z, &BuiltInVariable::kpt20B,
                                                 &BuiltInVariable::kpt10Cx4,
                                                 &BuiltInVariable::kpt00C};
constexpr const TVariable *p00Z20C00C10C[4]   = {&BuiltInVariable::kpt00Z, &BuiltInVariable::kpt20C,
                                                 &BuiltInVariable::kpt00C, &BuiltInVariable::kpt10C};
constexpr const TVariable *p00a10C00C[3]      = {&BuiltInVariable::kpt00a, &BuiltInVariable::kpt10C,
                                                 &BuiltInVariable::kpt00C};
constexpr const TVariable *p00b20C00C[3]      = {&BuiltInVariable::kpt00b, &BuiltInVariable::kpt20C,
                                                 &BuiltInVariable::kpt00C};
constexpr const TVariable *p00c00C[2] = {&BuiltInVariable::kpt00c, &BuiltInVariable::kpt00C};
constexpr const TVariable *p00c10B00B10Cx4[4] = {&BuiltInVariable::kpt00c, &BuiltInVariable::kpt10B,
                                                 &BuiltInVariable::kpt00B,
                                                 &BuiltInVariable::kpt10Cx4};
constexpr const TVariable *p00c20B00B10C[4]   = {&BuiltInVariable::kpt00c, &BuiltInVariable::kpt20B,
                                                 &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10C};
constexpr const TVariable *p00c20B10B10B10C[5] = {
    &BuiltInVariable::kpt00c, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10C};
constexpr const TVariable *p00c20B10C00B[4] = {&BuiltInVariable::kpt00c, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt10C, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00c30B00B10C[4] = {&BuiltInVariable::kpt00c, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10C};
constexpr const TVariable *p00c30B10B10B10C[5] = {
    &BuiltInVariable::kpt00c, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10C};
constexpr const TVariable *p00c30B10C00B[4] = {&BuiltInVariable::kpt00c, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt10C, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00d00C[2]       = {&BuiltInVariable::kpt00d, &BuiltInVariable::kpt00C};
constexpr const TVariable *p00d20B00B[3]    = {&BuiltInVariable::kpt00d, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt00B};
constexpr const TVariable *p00d30B00B[3]    = {&BuiltInVariable::kpt00d, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt00B};
constexpr const TVariable *p00d30B20B20B[4] = {&BuiltInVariable::kpt00d, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B};
constexpr const TVariable *p00e00C[2]       = {&BuiltInVariable::kpt00e, &BuiltInVariable::kpt00C};
constexpr const TVariable *p00e10B[2]       = {&BuiltInVariable::kpt00e, &BuiltInVariable::kpt10B};
constexpr const TVariable *p00e20B00B10Cx4[4] = {&BuiltInVariable::kpt00e, &BuiltInVariable::kpt20B,
                                                 &BuiltInVariable::kpt00B,
                                                 &BuiltInVariable::kpt10Cx4};
constexpr const TVariable *p00e30B00B10C[4]   = {&BuiltInVariable::kpt00e, &BuiltInVariable::kpt30B,
                                                 &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10C};
constexpr const TVariable *p00e30B10B10B10C[5] = {
    &BuiltInVariable::kpt00e, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10C};
constexpr const TVariable *p00e30B10C00B[4] = {&BuiltInVariable::kpt00e, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt10C, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00f00C[2]       = {&BuiltInVariable::kpt00f, &BuiltInVariable::kpt00C};
constexpr const TVariable *p00g00C[2]       = {&BuiltInVariable::kpt00g, &BuiltInVariable::kpt00C};
constexpr const TVariable *p00g20B[2]       = {&BuiltInVariable::kpt00g, &BuiltInVariable::kpt20B};
constexpr const TVariable *p00g30B00B[3]    = {&BuiltInVariable::kpt00g, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt00B};
constexpr const TVariable *p00g30B00C[3]    = {&BuiltInVariable::kpt00g, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt00C};
constexpr const TVariable *p00g30B20B20B[4] = {&BuiltInVariable::kpt00g, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B};
constexpr const TVariable *p00h00C[2]       = {&BuiltInVariable::kpt00h, &BuiltInVariable::kpt00C};
constexpr const TVariable *p00h20B[2]       = {&BuiltInVariable::kpt00h, &BuiltInVariable::kpt20B};
constexpr const TVariable *p00h30B00B00B[4] = {&BuiltInVariable::kpt00h, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00k00C[2]       = {&BuiltInVariable::kpt00k, &BuiltInVariable::kpt00C};
constexpr const TVariable *p00l00C[2]       = {&BuiltInVariable::kpt00l, &BuiltInVariable::kpt00C};
constexpr const TVariable *p00l20B[2]       = {&BuiltInVariable::kpt00l, &BuiltInVariable::kpt20B};
constexpr const TVariable *p00l30B00B[3]    = {&BuiltInVariable::kpt00l, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt00B};
constexpr const TVariable *p00l30B00C[3]    = {&BuiltInVariable::kpt00l, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt00C};
constexpr const TVariable *p00l30B20B20B[4] = {&BuiltInVariable::kpt00l, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B};
constexpr const TVariable *p00n00C[2]       = {&BuiltInVariable::kpt00n, &BuiltInVariable::kpt00C};
constexpr const TVariable *p00o00C[2]       = {&BuiltInVariable::kpt00o, &BuiltInVariable::kpt00C};
constexpr const TVariable *p00o20B[2]       = {&BuiltInVariable::kpt00o, &BuiltInVariable::kpt20B};
constexpr const TVariable *p00o30B00B[3]    = {&BuiltInVariable::kpt00o, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt00B};
constexpr const TVariable *p00o30B00C[3]    = {&BuiltInVariable::kpt00o, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt00C};
constexpr const TVariable *p00o30B20B20B[4] = {&BuiltInVariable::kpt00o, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B};
constexpr const TVariable *p00p10B[2]       = {&BuiltInVariable::kpt00p, &BuiltInVariable::kpt10B};
constexpr const TVariable *p00q10C00B[3]    = {&BuiltInVariable::kpt00q, &BuiltInVariable::kpt10C,
                                               &BuiltInVariable::kpt00B};
constexpr const TVariable *p00q10C00C00C[4] = {&BuiltInVariable::kpt00q, &BuiltInVariable::kpt10C,
                                               &BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C};
constexpr const TVariable *p00q10C00D00D[4] = {&BuiltInVariable::kpt00q, &BuiltInVariable::kpt10C,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00q10C30B[3]    = {&BuiltInVariable::kpt00q, &BuiltInVariable::kpt10C,
                                               &BuiltInVariable::kpt30B};
constexpr const TVariable *p00r20C00B[3]    = {&BuiltInVariable::kpt00r, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt00B};
constexpr const TVariable *p00r20C00C00C[4] = {&BuiltInVariable::kpt00r, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C};
constexpr const TVariable *p00r20C00D00D[4] = {&BuiltInVariable::kpt00r, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00r20C30B[3]    = {&BuiltInVariable::kpt00r, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt30B};
constexpr const TVariable *p00s20C00B[3]    = {&BuiltInVariable::kpt00s, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt00B};
constexpr const TVariable *p00s20C00C00C[4] = {&BuiltInVariable::kpt00s, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C};
constexpr const TVariable *p00s20C00D00D[4] = {&BuiltInVariable::kpt00s, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00s20C30B[3]    = {&BuiltInVariable::kpt00s, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt30B};
constexpr const TVariable *p00t20C00B[3]    = {&BuiltInVariable::kpt00t, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt00B};
constexpr const TVariable *p00t20C00C00C[4] = {&BuiltInVariable::kpt00t, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C};
constexpr const TVariable *p00t20C00D00D[4] = {&BuiltInVariable::kpt00t, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00t20C30B[3]    = {&BuiltInVariable::kpt00t, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt30B};
constexpr const TVariable *p00u10C00C00B[4] = {&BuiltInVariable::kpt00u, &BuiltInVariable::kpt10C,
                                               &BuiltInVariable::kpt00C, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00u10C00C00C00C[5] = {
    &BuiltInVariable::kpt00u, &BuiltInVariable::kpt10C, &BuiltInVariable::kpt00C,
    &BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C};
constexpr const TVariable *p00u10C00C00D00D[5] = {
    &BuiltInVariable::kpt00u, &BuiltInVariable::kpt10C, &BuiltInVariable::kpt00C,
    &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00v20C00C00B[4] = {&BuiltInVariable::kpt00v, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt00C, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00v20C00C00C00C[5] = {
    &BuiltInVariable::kpt00v, &BuiltInVariable::kpt20C, &BuiltInVariable::kpt00C,
    &BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C};
constexpr const TVariable *p00v20C00C00D00D[5] = {
    &BuiltInVariable::kpt00v, &BuiltInVariable::kpt20C, &BuiltInVariable::kpt00C,
    &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00w20C00B[3]    = {&BuiltInVariable::kpt00w, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt00B};
constexpr const TVariable *p00w20C00C00C[4] = {&BuiltInVariable::kpt00w, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C};
constexpr const TVariable *p00w20C00D00D[4] = {&BuiltInVariable::kpt00w, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00w20C30B[3]    = {&BuiltInVariable::kpt00w, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt30B};
constexpr const TVariable *p00x10C00B[3]    = {&BuiltInVariable::kpt00x, &BuiltInVariable::kpt10C,
                                               &BuiltInVariable::kpt00B};
constexpr const TVariable *p00x10C00C00C[4] = {&BuiltInVariable::kpt00x, &BuiltInVariable::kpt10C,
                                               &BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C};
constexpr const TVariable *p00x10C00D00D[4] = {&BuiltInVariable::kpt00x, &BuiltInVariable::kpt10C,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00y00C00B[3]    = {&BuiltInVariable::kpt00y, &BuiltInVariable::kpt00C,
                                               &BuiltInVariable::kpt00B};
constexpr const TVariable *p00y00C00C00C[4] = {&BuiltInVariable::kpt00y, &BuiltInVariable::kpt00C,
                                               &BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C};
constexpr const TVariable *p00y00C00D00D[4] = {&BuiltInVariable::kpt00y, &BuiltInVariable::kpt00C,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00y00C30B[3]    = {&BuiltInVariable::kpt00y, &BuiltInVariable::kpt00C,
                                               &BuiltInVariable::kpt30B};
constexpr const TVariable *p00z10C00B[3]    = {&BuiltInVariable::kpt00z, &BuiltInVariable::kpt10C,
                                               &BuiltInVariable::kpt00B};
constexpr const TVariable *p00z10C00C00C[4] = {&BuiltInVariable::kpt00z, &BuiltInVariable::kpt10C,
                                               &BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C};
constexpr const TVariable *p00z10C00D00D[4] = {&BuiltInVariable::kpt00z, &BuiltInVariable::kpt10C,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00z10C30C[3]    = {&BuiltInVariable::kpt00z, &BuiltInVariable::kpt10C,
                                               &BuiltInVariable::kpt30C};
constexpr const TVariable *p01A20C00B[3]    = {&BuiltInVariable::kpt01A, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt00B};
constexpr const TVariable *p01A20C00C00C[4] = {&BuiltInVariable::kpt01A, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C};
constexpr const TVariable *p01A20C00D00D[4] = {&BuiltInVariable::kpt01A, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p01A20C30C[3]    = {&BuiltInVariable::kpt01A, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt30C};
constexpr const TVariable *p01B20C00B[3]    = {&BuiltInVariable::kpt01B, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt00B};
constexpr const TVariable *p01B20C00C00C[4] = {&BuiltInVariable::kpt01B, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C};
constexpr const TVariable *p01B20C00D00D[4] = {&BuiltInVariable::kpt01B, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p01B20C30C[3]    = {&BuiltInVariable::kpt01B, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt30C};
constexpr const TVariable *p01C20C00B[3]    = {&BuiltInVariable::kpt01C, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt00B};
constexpr const TVariable *p01C20C00C00C[4] = {&BuiltInVariable::kpt01C, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C};
constexpr const TVariable *p01C20C00D00D[4] = {&BuiltInVariable::kpt01C, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p01C20C30C[3]    = {&BuiltInVariable::kpt01C, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt30C};
constexpr const TVariable *p01D10C00C00B[4] = {&BuiltInVariable::kpt01D, &BuiltInVariable::kpt10C,
                                               &BuiltInVariable::kpt00C, &BuiltInVariable::kpt00B};
constexpr const TVariable *p01D10C00C00C00C[5] = {
    &BuiltInVariable::kpt01D, &BuiltInVariable::kpt10C, &BuiltInVariable::kpt00C,
    &BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C};
constexpr const TVariable *p01D10C00C00D00D[5] = {
    &BuiltInVariable::kpt01D, &BuiltInVariable::kpt10C, &BuiltInVariable::kpt00C,
    &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p01E20C00C00B[4] = {&BuiltInVariable::kpt01E, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt00C, &BuiltInVariable::kpt00B};
constexpr const TVariable *p01E20C00C00C00C[5] = {
    &BuiltInVariable::kpt01E, &BuiltInVariable::kpt20C, &BuiltInVariable::kpt00C,
    &BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C};
constexpr const TVariable *p01E20C00C00D00D[5] = {
    &BuiltInVariable::kpt01E, &BuiltInVariable::kpt20C, &BuiltInVariable::kpt00C,
    &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p01F20C00B[3]    = {&BuiltInVariable::kpt01F, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt00B};
constexpr const TVariable *p01F20C00C00C[4] = {&BuiltInVariable::kpt01F, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C};
constexpr const TVariable *p01F20C00D00D[4] = {&BuiltInVariable::kpt01F, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p01F20C30C[3]    = {&BuiltInVariable::kpt01F, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt30C};
constexpr const TVariable *p01G10C00B[3]    = {&BuiltInVariable::kpt01G, &BuiltInVariable::kpt10C,
                                               &BuiltInVariable::kpt00B};
constexpr const TVariable *p01G10C00C00C[4] = {&BuiltInVariable::kpt01G, &BuiltInVariable::kpt10C,
                                               &BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C};
constexpr const TVariable *p01G10C00D00D[4] = {&BuiltInVariable::kpt01G, &BuiltInVariable::kpt10C,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p01H00C00B[3]    = {&BuiltInVariable::kpt01H, &BuiltInVariable::kpt00C,
                                               &BuiltInVariable::kpt00B};
constexpr const TVariable *p01H00C00C00C[4] = {&BuiltInVariable::kpt01H, &BuiltInVariable::kpt00C,
                                               &BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C};
constexpr const TVariable *p01H00C00D00D[4] = {&BuiltInVariable::kpt01H, &BuiltInVariable::kpt00C,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p01H00C30C[3]    = {&BuiltInVariable::kpt01H, &BuiltInVariable::kpt00C,
                                               &BuiltInVariable::kpt30C};
constexpr const TVariable *p01I10C00B[3]    = {&BuiltInVariable::kpt01I, &BuiltInVariable::kpt10C,
                                               &BuiltInVariable::kpt00B};
constexpr const TVariable *p01I10C00C00C[4] = {&BuiltInVariable::kpt01I, &BuiltInVariable::kpt10C,
                                               &BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C};
constexpr const TVariable *p01I10C00D00D[4] = {&BuiltInVariable::kpt01I, &BuiltInVariable::kpt10C,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p01I10C30D[3]    = {&BuiltInVariable::kpt01I, &BuiltInVariable::kpt10C,
                                               &BuiltInVariable::kpt30D};
constexpr const TVariable *p01J20C00B[3]    = {&BuiltInVariable::kpt01J, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt00B};
constexpr const TVariable *p01J20C00C00C[4] = {&BuiltInVariable::kpt01J, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C};
constexpr const TVariable *p01J20C00D00D[4] = {&BuiltInVariable::kpt01J, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p01J20C30D[3]    = {&BuiltInVariable::kpt01J, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt30D};
constexpr const TVariable *p01K20C00B[3]    = {&BuiltInVariable::kpt01K, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt00B};
constexpr const TVariable *p01K20C00C00C[4] = {&BuiltInVariable::kpt01K, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C};
constexpr const TVariable *p01K20C00D00D[4] = {&BuiltInVariable::kpt01K, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p01K20C30D[3]    = {&BuiltInVariable::kpt01K, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt30D};
constexpr const TVariable *p01L20C00B[3]    = {&BuiltInVariable::kpt01L, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt00B};
constexpr const TVariable *p01L20C00C00C[4] = {&BuiltInVariable::kpt01L, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C};
constexpr const TVariable *p01L20C00D00D[4] = {&BuiltInVariable::kpt01L, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p01L20C30D[3]    = {&BuiltInVariable::kpt01L, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt30D};
constexpr const TVariable *p01M10C00C00B[4] = {&BuiltInVariable::kpt01M, &BuiltInVariable::kpt10C,
                                               &BuiltInVariable::kpt00C, &BuiltInVariable::kpt00B};
constexpr const TVariable *p01M10C00C00C00C[5] = {
    &BuiltInVariable::kpt01M, &BuiltInVariable::kpt10C, &BuiltInVariable::kpt00C,
    &BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C};
constexpr const TVariable *p01M10C00C00D00D[5] = {
    &BuiltInVariable::kpt01M, &BuiltInVariable::kpt10C, &BuiltInVariable::kpt00C,
    &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p01N20C00C00B[4] = {&BuiltInVariable::kpt01N, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt00C, &BuiltInVariable::kpt00B};
constexpr const TVariable *p01N20C00C00C00C[5] = {
    &BuiltInVariable::kpt01N, &BuiltInVariable::kpt20C, &BuiltInVariable::kpt00C,
    &BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C};
constexpr const TVariable *p01N20C00C00D00D[5] = {
    &BuiltInVariable::kpt01N, &BuiltInVariable::kpt20C, &BuiltInVariable::kpt00C,
    &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p01O20C00B[3]    = {&BuiltInVariable::kpt01O, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt00B};
constexpr const TVariable *p01O20C00C00C[4] = {&BuiltInVariable::kpt01O, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C};
constexpr const TVariable *p01O20C00D00D[4] = {&BuiltInVariable::kpt01O, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p01O20C30D[3]    = {&BuiltInVariable::kpt01O, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt30D};
constexpr const TVariable *p01P10C00B[3]    = {&BuiltInVariable::kpt01P, &BuiltInVariable::kpt10C,
                                               &BuiltInVariable::kpt00B};
constexpr const TVariable *p01P10C00C00C[4] = {&BuiltInVariable::kpt01P, &BuiltInVariable::kpt10C,
                                               &BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C};
constexpr const TVariable *p01P10C00D00D[4] = {&BuiltInVariable::kpt01P, &BuiltInVariable::kpt10C,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p01Q00C00B[3]    = {&BuiltInVariable::kpt01Q, &BuiltInVariable::kpt00C,
                                               &BuiltInVariable::kpt00B};
constexpr const TVariable *p01Q00C00C00C[4] = {&BuiltInVariable::kpt01Q, &BuiltInVariable::kpt00C,
                                               &BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C};
constexpr const TVariable *p01Q00C00D00D[4] = {&BuiltInVariable::kpt01Q, &BuiltInVariable::kpt00C,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p01Q00C30D[3]    = {&BuiltInVariable::kpt01Q, &BuiltInVariable::kpt00C,
                                               &BuiltInVariable::kpt30D};
constexpr const TVariable *p01R30B[2]       = {&BuiltInVariable::kpt01R, &BuiltInVariable::kpt30B};
constexpr const TVariable *p01S30C[2]       = {&BuiltInVariable::kpt01S, &BuiltInVariable::kpt30C};
constexpr const TVariable *p01T30D[2]       = {&BuiltInVariable::kpt01T, &BuiltInVariable::kpt30D};
constexpr const TVariable *p01U[1]          = {&BuiltInVariable::kpt01U};
constexpr const TVariable *p01V[1]          = {&BuiltInVariable::kpt01V};
constexpr const TVariable *p01W[1]          = {&BuiltInVariable::kpt01W};
constexpr const TVariable *p10B00B00B[3]    = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt00B,
                                               &BuiltInVariable::kpt00B};
constexpr const TVariable *p10B00C[2]       = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt00C};
constexpr const TVariable *p10B10B00B[3]    = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt10B,
                                               &BuiltInVariable::kpt00B};
constexpr const TVariable *p10B10B10B[3]    = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt10B,
                                               &BuiltInVariable::kpt10B};
constexpr const TVariable *p10B10B10E[3]    = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt10B,
                                               &BuiltInVariable::kpt10E};
constexpr const TVariable *p10B10C[2]       = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt10C};
constexpr const TVariable *p10B20B[2]       = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt20B};
constexpr const TVariable *p10B30B[2]       = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt30B};
constexpr const TVariable *p10B_o_10B[2] = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt_o_10B};
constexpr const TVariable *p10B_o_10C[2] = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt_o_10C};
constexpr const TVariable *p10C00C00C[3] = {&BuiltInVariable::kpt10C, &BuiltInVariable::kpt00C,
                                            &BuiltInVariable::kpt00C};
constexpr const TVariable *p10C10C00C00C[4] = {&BuiltInVariable::kpt10C, &BuiltInVariable::kpt10C,
                                               &BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C};
constexpr const TVariable *p10C10C10C[3]    = {&BuiltInVariable::kpt10C, &BuiltInVariable::kpt10C,
                                               &BuiltInVariable::kpt10C};
constexpr const TVariable *p10C10C10E[3]    = {&BuiltInVariable::kpt10C, &BuiltInVariable::kpt10C,
                                               &BuiltInVariable::kpt10E};
constexpr const TVariable *p10C10C_o_10C_o_10C[4] = {
    &BuiltInVariable::kpt10C, &BuiltInVariable::kpt10C, &BuiltInVariable::kpt_o_10C,
    &BuiltInVariable::kpt_o_10C};
constexpr const TVariable *p10D00C00C[3]    = {&BuiltInVariable::kpt10D, &BuiltInVariable::kpt00C,
                                               &BuiltInVariable::kpt00C};
constexpr const TVariable *p10D00D00D[3]    = {&BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D,
                                               &BuiltInVariable::kpt00D};
constexpr const TVariable *p10D10D00C00C[4] = {&BuiltInVariable::kpt10D, &BuiltInVariable::kpt10D,
                                               &BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C};
constexpr const TVariable *p10D10D10D[3]    = {&BuiltInVariable::kpt10D, &BuiltInVariable::kpt10D,
                                               &BuiltInVariable::kpt10D};
constexpr const TVariable *p10D10D10E[3]    = {&BuiltInVariable::kpt10D, &BuiltInVariable::kpt10D,
                                               &BuiltInVariable::kpt10E};
constexpr const TVariable *p10D10D_o_10D_o_10D[4] = {
    &BuiltInVariable::kpt10D, &BuiltInVariable::kpt10D, &BuiltInVariable::kpt_o_10D,
    &BuiltInVariable::kpt_o_10D};
constexpr const TVariable *p10E10E10E[3] = {&BuiltInVariable::kpt10E, &BuiltInVariable::kpt10E,
                                            &BuiltInVariable::kpt10E};
constexpr const TVariable *p20B00B00B[3] = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt00B,
                                            &BuiltInVariable::kpt00B};
constexpr const TVariable *p20B00C[2]    = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt00C};
constexpr const TVariable *p20B00G[2]    = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt00G};
constexpr const TVariable *p20B10B[2]    = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B};
constexpr const TVariable *p20B20B00B[3] = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B,
                                            &BuiltInVariable::kpt00B};
constexpr const TVariable *p20B20B20B[3] = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B,
                                            &BuiltInVariable::kpt20B};
constexpr const TVariable *p20B20B20E[3] = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B,
                                            &BuiltInVariable::kpt20E};
constexpr const TVariable *p20B20C[2]    = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt20C};
constexpr const TVariable *p20B30B[2]    = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt30B};
constexpr const TVariable *p20B_o_20B[2] = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt_o_20B};
constexpr const TVariable *p20B_o_20C[2] = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt_o_20C};
constexpr const TVariable *p20C00C00C[3] = {&BuiltInVariable::kpt20C, &BuiltInVariable::kpt00C,
                                            &BuiltInVariable::kpt00C};
constexpr const TVariable *p20C20C00C00C[4] = {&BuiltInVariable::kpt20C, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C};
constexpr const TVariable *p20C20C20C[3]    = {&BuiltInVariable::kpt20C, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt20C};
constexpr const TVariable *p20C20C20E[3]    = {&BuiltInVariable::kpt20C, &BuiltInVariable::kpt20C,
                                               &BuiltInVariable::kpt20E};
constexpr const TVariable *p20C20C_o_20C_o_20C[4] = {
    &BuiltInVariable::kpt20C, &BuiltInVariable::kpt20C, &BuiltInVariable::kpt_o_20C,
    &BuiltInVariable::kpt_o_20C};
constexpr const TVariable *p20D00C00C[3]    = {&BuiltInVariable::kpt20D, &BuiltInVariable::kpt00C,
                                               &BuiltInVariable::kpt00C};
constexpr const TVariable *p20D00D00D[3]    = {&BuiltInVariable::kpt20D, &BuiltInVariable::kpt00D,
                                               &BuiltInVariable::kpt00D};
constexpr const TVariable *p20D20D00C00C[4] = {&BuiltInVariable::kpt20D, &BuiltInVariable::kpt20D,
                                               &BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C};
constexpr const TVariable *p20D20D20D[3]    = {&BuiltInVariable::kpt20D, &BuiltInVariable::kpt20D,
                                               &BuiltInVariable::kpt20D};
constexpr const TVariable *p20D20D20E[3]    = {&BuiltInVariable::kpt20D, &BuiltInVariable::kpt20D,
                                               &BuiltInVariable::kpt20E};
constexpr const TVariable *p20D20D_o_20D_o_20D[4] = {
    &BuiltInVariable::kpt20D, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt_o_20D,
    &BuiltInVariable::kpt_o_20D};
constexpr const TVariable *p20E20E20E[3] = {&BuiltInVariable::kpt20E, &BuiltInVariable::kpt20E,
                                            &BuiltInVariable::kpt20E};
constexpr const TVariable *p30B00B00B[3] = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt00B,
                                            &BuiltInVariable::kpt00B};
constexpr const TVariable *p30B00C[2]    = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt00C};
constexpr const TVariable *p30B10B[2]    = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt10B};
constexpr const TVariable *p30B20B[2]    = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt20B};
constexpr const TVariable *p30B30B00B[3] = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt30B,
                                            &BuiltInVariable::kpt00B};
constexpr const TVariable *p30B30B30B[3] = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt30B,
                                            &BuiltInVariable::kpt30B};
constexpr const TVariable *p30B30B30E[3] = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt30B,
                                            &BuiltInVariable::kpt30E};
constexpr const TVariable *p30B30C[2]    = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt30C};
constexpr const TVariable *p30B_o_30B[2] = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt_o_30B};
constexpr const TVariable *p30B_o_30C[2] = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt_o_30C};
constexpr const TVariable *p30C00C00C[3] = {&BuiltInVariable::kpt30C, &BuiltInVariable::kpt00C,
                                            &BuiltInVariable::kpt00C};
constexpr const TVariable *p30C30C00C00C[4] = {&BuiltInVariable::kpt30C, &BuiltInVariable::kpt30C,
                                               &BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C};
constexpr const TVariable *p30C30C30C[3]    = {&BuiltInVariable::kpt30C, &BuiltInVariable::kpt30C,
                                               &BuiltInVariable::kpt30C};
constexpr const TVariable *p30C30C30E[3]    = {&BuiltInVariable::kpt30C, &BuiltInVariable::kpt30C,
                                               &BuiltInVariable::kpt30E};
constexpr const TVariable *p30C30C_o_30C_o_30C[4] = {
    &BuiltInVariable::kpt30C, &BuiltInVariable::kpt30C, &BuiltInVariable::kpt_o_30C,
    &BuiltInVariable::kpt_o_30C};
constexpr const TVariable *p30D00C00C[3]    = {&BuiltInVariable::kpt30D, &BuiltInVariable::kpt00C,
                                               &BuiltInVariable::kpt00C};
constexpr const TVariable *p30D00D00D[3]    = {&BuiltInVariable::kpt30D, &BuiltInVariable::kpt00D,
                                               &BuiltInVariable::kpt00D};
constexpr const TVariable *p30D30D00C00C[4] = {&BuiltInVariable::kpt30D, &BuiltInVariable::kpt30D,
                                               &BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C};
constexpr const TVariable *p30D30D30D[3]    = {&BuiltInVariable::kpt30D, &BuiltInVariable::kpt30D,
                                               &BuiltInVariable::kpt30D};
constexpr const TVariable *p30D30D30E[3]    = {&BuiltInVariable::kpt30D, &BuiltInVariable::kpt30D,
                                               &BuiltInVariable::kpt30E};
constexpr const TVariable *p30D30D_o_30D_o_30D[4] = {
    &BuiltInVariable::kpt30D, &BuiltInVariable::kpt30D, &BuiltInVariable::kpt_o_30D,
    &BuiltInVariable::kpt_o_30D};
constexpr const TVariable *p30E30E30E[3]     = {&BuiltInVariable::kpt30E, &BuiltInVariable::kpt30E,
                                                &BuiltInVariable::kpt30E};
constexpr const TVariable *p50B50B[2]        = {&BuiltInVariable::kpt50B, &BuiltInVariable::kpt50B};
constexpr const TVariable *p60B60B[2]        = {&BuiltInVariable::kpt60B, &BuiltInVariable::kpt60B};
constexpr const TVariable *p70B70B[2]        = {&BuiltInVariable::kpt70B, &BuiltInVariable::kpt70B};
constexpr const TVariable *p90B90B[2]        = {&BuiltInVariable::kpt90B, &BuiltInVariable::kpt90B};
constexpr const TVariable *pA0BA0B[2]        = {&BuiltInVariable::kptA0B, &BuiltInVariable::kptA0B};
constexpr const TVariable *pB0BB0B[2]        = {&BuiltInVariable::kptB0B, &BuiltInVariable::kptB0B};
constexpr const TVariable *pD0BD0B[2]        = {&BuiltInVariable::kptD0B, &BuiltInVariable::kptD0B};
constexpr const TVariable *pE0BE0B[2]        = {&BuiltInVariable::kptE0B, &BuiltInVariable::kptE0B};
constexpr const TVariable *pF0BF0B[2]        = {&BuiltInVariable::kptF0B, &BuiltInVariable::kptF0B};
constexpr const TVariable *p_io_00C00C00C[3] = {&BuiltInVariable::kpt_io_00C,
                                                &BuiltInVariable::kpt00C, &BuiltInVariable::kpt00C};
constexpr const TVariable *p_io_00D00D00D[3] = {&BuiltInVariable::kpt_io_00D,
                                                &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};

}  // namespace BuiltInParameters

// TODO(oetuaho): Would be nice to make this a class instead of a namespace so that we could friend
// this from TFunction. Now symbol constructors taking an id have to be public even though they're
// not supposed to be accessible from outside of here. http://anglebug.com/42261100
namespace Func
{

constexpr const TFunction radians_00B(BuiltInId::radians_Float1,
                                      BuiltInName::radians,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      BuiltInParameters::p00B00B00B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                      EOpRadians,
                                      true);
constexpr const TFunction radians_10B(BuiltInId::radians_Float2,
                                      BuiltInName::radians,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      BuiltInParameters::p10B00B00B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                      EOpRadians,
                                      true);
constexpr const TFunction radians_20B(BuiltInId::radians_Float3,
                                      BuiltInName::radians,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      BuiltInParameters::p20B00B00B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                      EOpRadians,
                                      true);
constexpr const TFunction radians_30B(BuiltInId::radians_Float4,
                                      BuiltInName::radians,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      BuiltInParameters::p30B00B00B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                      EOpRadians,
                                      true);
constexpr const TFunction degrees_00B(BuiltInId::degrees_Float1,
                                      BuiltInName::degrees,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      BuiltInParameters::p00B00B00B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                      EOpDegrees,
                                      true);
constexpr const TFunction degrees_10B(BuiltInId::degrees_Float2,
                                      BuiltInName::degrees,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      BuiltInParameters::p10B00B00B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                      EOpDegrees,
                                      true);
constexpr const TFunction degrees_20B(BuiltInId::degrees_Float3,
                                      BuiltInName::degrees,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      BuiltInParameters::p20B00B00B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                      EOpDegrees,
                                      true);
constexpr const TFunction degrees_30B(BuiltInId::degrees_Float4,
                                      BuiltInName::degrees,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      BuiltInParameters::p30B00B00B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                      EOpDegrees,
                                      true);
constexpr const TFunction sin_00B(BuiltInId::sin_Float1,
                                  BuiltInName::sin,
                                  std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                  BuiltInParameters::p00B00B00B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                  EOpSin,
                                  true);
constexpr const TFunction sin_10B(BuiltInId::sin_Float2,
                                  BuiltInName::sin,
                                  std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                  BuiltInParameters::p10B00B00B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                  EOpSin,
                                  true);
constexpr const TFunction sin_20B(BuiltInId::sin_Float3,
                                  BuiltInName::sin,
                                  std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                  BuiltInParameters::p20B00B00B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                  EOpSin,
                                  true);
constexpr const TFunction sin_30B(BuiltInId::sin_Float4,
                                  BuiltInName::sin,
                                  std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                  BuiltInParameters::p30B00B00B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                  EOpSin,
                                  true);
constexpr const TFunction cos_00B(BuiltInId::cos_Float1,
                                  BuiltInName::cos,
                                  std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                  BuiltInParameters::p00B00B00B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                  EOpCos,
                                  true);
constexpr const TFunction cos_10B(BuiltInId::cos_Float2,
                                  BuiltInName::cos,
                                  std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                  BuiltInParameters::p10B00B00B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                  EOpCos,
                                  true);
constexpr const TFunction cos_20B(BuiltInId::cos_Float3,
                                  BuiltInName::cos,
                                  std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                  BuiltInParameters::p20B00B00B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                  EOpCos,
                                  true);
constexpr const TFunction cos_30B(BuiltInId::cos_Float4,
                                  BuiltInName::cos,
                                  std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                  BuiltInParameters::p30B00B00B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                  EOpCos,
                                  true);
constexpr const TFunction tan_00B(BuiltInId::tan_Float1,
                                  BuiltInName::tan,
                                  std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                  BuiltInParameters::p00B00B00B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                  EOpTan,
                                  true);
constexpr const TFunction tan_10B(BuiltInId::tan_Float2,
                                  BuiltInName::tan,
                                  std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                  BuiltInParameters::p10B00B00B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                  EOpTan,
                                  true);
constexpr const TFunction tan_20B(BuiltInId::tan_Float3,
                                  BuiltInName::tan,
                                  std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                  BuiltInParameters::p20B00B00B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                  EOpTan,
                                  true);
constexpr const TFunction tan_30B(BuiltInId::tan_Float4,
                                  BuiltInName::tan,
                                  std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                  BuiltInParameters::p30B00B00B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                  EOpTan,
                                  true);
constexpr const TFunction asin_00B(BuiltInId::asin_Float1,
                                   BuiltInName::asin,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p00B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpAsin,
                                   true);
constexpr const TFunction asin_10B(BuiltInId::asin_Float2,
                                   BuiltInName::asin,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p10B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpAsin,
                                   true);
constexpr const TFunction asin_20B(BuiltInId::asin_Float3,
                                   BuiltInName::asin,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p20B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpAsin,
                                   true);
constexpr const TFunction asin_30B(BuiltInId::asin_Float4,
                                   BuiltInName::asin,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p30B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpAsin,
                                   true);
constexpr const TFunction acos_00B(BuiltInId::acos_Float1,
                                   BuiltInName::acos,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p00B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpAcos,
                                   true);
constexpr const TFunction acos_10B(BuiltInId::acos_Float2,
                                   BuiltInName::acos,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p10B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpAcos,
                                   true);
constexpr const TFunction acos_20B(BuiltInId::acos_Float3,
                                   BuiltInName::acos,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p20B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpAcos,
                                   true);
constexpr const TFunction acos_30B(BuiltInId::acos_Float4,
                                   BuiltInName::acos,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p30B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpAcos,
                                   true);
constexpr const TFunction atan_00B00B(BuiltInId::atan_Float1_Float1,
                                      BuiltInName::atan,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      BuiltInParameters::p00B00B00B,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                      EOpAtan,
                                      true);
constexpr const TFunction atan_10B10B(BuiltInId::atan_Float2_Float2,
                                      BuiltInName::atan,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      BuiltInParameters::p10B10B00B,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                      EOpAtan,
                                      true);
constexpr const TFunction atan_20B20B(BuiltInId::atan_Float3_Float3,
                                      BuiltInName::atan,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      BuiltInParameters::p20B20B00B,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                      EOpAtan,
                                      true);
constexpr const TFunction atan_30B30B(BuiltInId::atan_Float4_Float4,
                                      BuiltInName::atan,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      BuiltInParameters::p30B30B00B,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                      EOpAtan,
                                      true);
constexpr const TFunction atan_00B(BuiltInId::atan_Float1,
                                   BuiltInName::atan,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p00B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpAtan,
                                   true);
constexpr const TFunction atan_10B(BuiltInId::atan_Float2,
                                   BuiltInName::atan,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p10B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpAtan,
                                   true);
constexpr const TFunction atan_20B(BuiltInId::atan_Float3,
                                   BuiltInName::atan,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p20B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpAtan,
                                   true);
constexpr const TFunction atan_30B(BuiltInId::atan_Float4,
                                   BuiltInName::atan,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p30B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpAtan,
                                   true);
constexpr const TFunction sinh_00B(BuiltInId::sinh_Float1,
                                   BuiltInName::sinh,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p00B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpSinh,
                                   true);
constexpr const TFunction sinh_10B(BuiltInId::sinh_Float2,
                                   BuiltInName::sinh,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p10B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpSinh,
                                   true);
constexpr const TFunction sinh_20B(BuiltInId::sinh_Float3,
                                   BuiltInName::sinh,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p20B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpSinh,
                                   true);
constexpr const TFunction sinh_30B(BuiltInId::sinh_Float4,
                                   BuiltInName::sinh,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p30B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpSinh,
                                   true);
constexpr const TFunction cosh_00B(BuiltInId::cosh_Float1,
                                   BuiltInName::cosh,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p00B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpCosh,
                                   true);
constexpr const TFunction cosh_10B(BuiltInId::cosh_Float2,
                                   BuiltInName::cosh,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p10B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpCosh,
                                   true);
constexpr const TFunction cosh_20B(BuiltInId::cosh_Float3,
                                   BuiltInName::cosh,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p20B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpCosh,
                                   true);
constexpr const TFunction cosh_30B(BuiltInId::cosh_Float4,
                                   BuiltInName::cosh,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p30B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpCosh,
                                   true);
constexpr const TFunction tanh_00B(BuiltInId::tanh_Float1,
                                   BuiltInName::tanh,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p00B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpTanh,
                                   true);
constexpr const TFunction tanh_10B(BuiltInId::tanh_Float2,
                                   BuiltInName::tanh,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p10B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpTanh,
                                   true);
constexpr const TFunction tanh_20B(BuiltInId::tanh_Float3,
                                   BuiltInName::tanh,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p20B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpTanh,
                                   true);
constexpr const TFunction tanh_30B(BuiltInId::tanh_Float4,
                                   BuiltInName::tanh,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p30B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpTanh,
                                   true);
constexpr const TFunction asinh_00B(BuiltInId::asinh_Float1,
                                    BuiltInName::asinh,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    BuiltInParameters::p00B00B00B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                    EOpAsinh,
                                    true);
constexpr const TFunction asinh_10B(BuiltInId::asinh_Float2,
                                    BuiltInName::asinh,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    BuiltInParameters::p10B00B00B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                    EOpAsinh,
                                    true);
constexpr const TFunction asinh_20B(BuiltInId::asinh_Float3,
                                    BuiltInName::asinh,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    BuiltInParameters::p20B00B00B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                    EOpAsinh,
                                    true);
constexpr const TFunction asinh_30B(BuiltInId::asinh_Float4,
                                    BuiltInName::asinh,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    BuiltInParameters::p30B00B00B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                    EOpAsinh,
                                    true);
constexpr const TFunction acosh_00B(BuiltInId::acosh_Float1,
                                    BuiltInName::acosh,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    BuiltInParameters::p00B00B00B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                    EOpAcosh,
                                    true);
constexpr const TFunction acosh_10B(BuiltInId::acosh_Float2,
                                    BuiltInName::acosh,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    BuiltInParameters::p10B00B00B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                    EOpAcosh,
                                    true);
constexpr const TFunction acosh_20B(BuiltInId::acosh_Float3,
                                    BuiltInName::acosh,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    BuiltInParameters::p20B00B00B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                    EOpAcosh,
                                    true);
constexpr const TFunction acosh_30B(BuiltInId::acosh_Float4,
                                    BuiltInName::acosh,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    BuiltInParameters::p30B00B00B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                    EOpAcosh,
                                    true);
constexpr const TFunction atanh_00B(BuiltInId::atanh_Float1,
                                    BuiltInName::atanh,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    BuiltInParameters::p00B00B00B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                    EOpAtanh,
                                    true);
constexpr const TFunction atanh_10B(BuiltInId::atanh_Float2,
                                    BuiltInName::atanh,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    BuiltInParameters::p10B00B00B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                    EOpAtanh,
                                    true);
constexpr const TFunction atanh_20B(BuiltInId::atanh_Float3,
                                    BuiltInName::atanh,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    BuiltInParameters::p20B00B00B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                    EOpAtanh,
                                    true);
constexpr const TFunction atanh_30B(BuiltInId::atanh_Float4,
                                    BuiltInName::atanh,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    BuiltInParameters::p30B00B00B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                    EOpAtanh,
                                    true);
constexpr const TFunction pow_00B00B(BuiltInId::pow_Float1_Float1,
                                     BuiltInName::pow,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p00B00B00B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpPow,
                                     true);
constexpr const TFunction pow_10B10B(BuiltInId::pow_Float2_Float2,
                                     BuiltInName::pow,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p10B10B00B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                     EOpPow,
                                     true);
constexpr const TFunction pow_20B20B(BuiltInId::pow_Float3_Float3,
                                     BuiltInName::pow,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p20B20B00B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                     EOpPow,
                                     true);
constexpr const TFunction pow_30B30B(BuiltInId::pow_Float4_Float4,
                                     BuiltInName::pow,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p30B30B00B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpPow,
                                     true);
constexpr const TFunction exp_00B(BuiltInId::exp_Float1,
                                  BuiltInName::exp,
                                  std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                  BuiltInParameters::p00B00B00B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                  EOpExp,
                                  true);
constexpr const TFunction exp_10B(BuiltInId::exp_Float2,
                                  BuiltInName::exp,
                                  std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                  BuiltInParameters::p10B00B00B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                  EOpExp,
                                  true);
constexpr const TFunction exp_20B(BuiltInId::exp_Float3,
                                  BuiltInName::exp,
                                  std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                  BuiltInParameters::p20B00B00B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                  EOpExp,
                                  true);
constexpr const TFunction exp_30B(BuiltInId::exp_Float4,
                                  BuiltInName::exp,
                                  std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                  BuiltInParameters::p30B00B00B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                  EOpExp,
                                  true);
constexpr const TFunction log_00B(BuiltInId::log_Float1,
                                  BuiltInName::log,
                                  std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                  BuiltInParameters::p00B00B00B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                  EOpLog,
                                  true);
constexpr const TFunction log_10B(BuiltInId::log_Float2,
                                  BuiltInName::log,
                                  std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                  BuiltInParameters::p10B00B00B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                  EOpLog,
                                  true);
constexpr const TFunction log_20B(BuiltInId::log_Float3,
                                  BuiltInName::log,
                                  std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                  BuiltInParameters::p20B00B00B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                  EOpLog,
                                  true);
constexpr const TFunction log_30B(BuiltInId::log_Float4,
                                  BuiltInName::log,
                                  std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                  BuiltInParameters::p30B00B00B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                  EOpLog,
                                  true);
constexpr const TFunction exp2_00B(BuiltInId::exp2_Float1,
                                   BuiltInName::exp2,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p00B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpExp2,
                                   true);
constexpr const TFunction exp2_10B(BuiltInId::exp2_Float2,
                                   BuiltInName::exp2,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p10B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpExp2,
                                   true);
constexpr const TFunction exp2_20B(BuiltInId::exp2_Float3,
                                   BuiltInName::exp2,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p20B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpExp2,
                                   true);
constexpr const TFunction exp2_30B(BuiltInId::exp2_Float4,
                                   BuiltInName::exp2,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p30B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpExp2,
                                   true);
constexpr const TFunction log2_00B(BuiltInId::log2_Float1,
                                   BuiltInName::log2,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p00B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpLog2,
                                   true);
constexpr const TFunction log2_10B(BuiltInId::log2_Float2,
                                   BuiltInName::log2,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p10B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpLog2,
                                   true);
constexpr const TFunction log2_20B(BuiltInId::log2_Float3,
                                   BuiltInName::log2,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p20B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpLog2,
                                   true);
constexpr const TFunction log2_30B(BuiltInId::log2_Float4,
                                   BuiltInName::log2,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p30B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpLog2,
                                   true);
constexpr const TFunction sqrt_00B(BuiltInId::sqrt_Float1,
                                   BuiltInName::sqrt,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p00B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpSqrt,
                                   true);
constexpr const TFunction sqrt_10B(BuiltInId::sqrt_Float2,
                                   BuiltInName::sqrt,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p10B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpSqrt,
                                   true);
constexpr const TFunction sqrt_20B(BuiltInId::sqrt_Float3,
                                   BuiltInName::sqrt,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p20B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpSqrt,
                                   true);
constexpr const TFunction sqrt_30B(BuiltInId::sqrt_Float4,
                                   BuiltInName::sqrt,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p30B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpSqrt,
                                   true);
constexpr const TFunction inversesqrt_00B(
    BuiltInId::inversesqrt_Float1,
    BuiltInName::inversesqrt,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00B00B00B,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpInversesqrt,
    true);
constexpr const TFunction inversesqrt_10B(
    BuiltInId::inversesqrt_Float2,
    BuiltInName::inversesqrt,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p10B00B00B,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpInversesqrt,
    true);
constexpr const TFunction inversesqrt_20B(
    BuiltInId::inversesqrt_Float3,
    BuiltInName::inversesqrt,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p20B00B00B,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpInversesqrt,
    true);
constexpr const TFunction inversesqrt_30B(
    BuiltInId::inversesqrt_Float4,
    BuiltInName::inversesqrt,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p30B00B00B,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpInversesqrt,
    true);
constexpr const TFunction abs_00B(BuiltInId::abs_Float1,
                                  BuiltInName::abs,
                                  std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                  BuiltInParameters::p00B00B00B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                  EOpAbs,
                                  true);
constexpr const TFunction abs_10B(BuiltInId::abs_Float2,
                                  BuiltInName::abs,
                                  std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                  BuiltInParameters::p10B00B00B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                  EOpAbs,
                                  true);
constexpr const TFunction abs_20B(BuiltInId::abs_Float3,
                                  BuiltInName::abs,
                                  std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                  BuiltInParameters::p20B00B00B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                  EOpAbs,
                                  true);
constexpr const TFunction abs_30B(BuiltInId::abs_Float4,
                                  BuiltInName::abs,
                                  std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                  BuiltInParameters::p30B00B00B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                  EOpAbs,
                                  true);
constexpr const TFunction abs_00C(BuiltInId::abs_Int1,
                                  BuiltInName::abs,
                                  std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                  BuiltInParameters::p00C00C00C00C,
                                  1,
                                  StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                  EOpAbs,
                                  true);
constexpr const TFunction abs_10C(BuiltInId::abs_Int2,
                                  BuiltInName::abs,
                                  std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                  BuiltInParameters::p10C00C00C,
                                  1,
                                  StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                  EOpAbs,
                                  true);
constexpr const TFunction abs_20C(BuiltInId::abs_Int3,
                                  BuiltInName::abs,
                                  std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                  BuiltInParameters::p20C00C00C,
                                  1,
                                  StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                  EOpAbs,
                                  true);
constexpr const TFunction abs_30C(BuiltInId::abs_Int4,
                                  BuiltInName::abs,
                                  std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                  BuiltInParameters::p30C00C00C,
                                  1,
                                  StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                  EOpAbs,
                                  true);
constexpr const TFunction sign_00B(BuiltInId::sign_Float1,
                                   BuiltInName::sign,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p00B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpSign,
                                   true);
constexpr const TFunction sign_10B(BuiltInId::sign_Float2,
                                   BuiltInName::sign,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p10B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpSign,
                                   true);
constexpr const TFunction sign_20B(BuiltInId::sign_Float3,
                                   BuiltInName::sign,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p20B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpSign,
                                   true);
constexpr const TFunction sign_30B(BuiltInId::sign_Float4,
                                   BuiltInName::sign,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p30B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpSign,
                                   true);
constexpr const TFunction sign_00C(BuiltInId::sign_Int1,
                                   BuiltInName::sign,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p00C00C00C00C,
                                   1,
                                   StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpSign,
                                   true);
constexpr const TFunction sign_10C(BuiltInId::sign_Int2,
                                   BuiltInName::sign,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p10C00C00C,
                                   1,
                                   StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpSign,
                                   true);
constexpr const TFunction sign_20C(BuiltInId::sign_Int3,
                                   BuiltInName::sign,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p20C00C00C,
                                   1,
                                   StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpSign,
                                   true);
constexpr const TFunction sign_30C(BuiltInId::sign_Int4,
                                   BuiltInName::sign,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p30C00C00C,
                                   1,
                                   StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpSign,
                                   true);
constexpr const TFunction floor_00B(BuiltInId::floor_Float1,
                                    BuiltInName::floor,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    BuiltInParameters::p00B00B00B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                    EOpFloor,
                                    true);
constexpr const TFunction floor_10B(BuiltInId::floor_Float2,
                                    BuiltInName::floor,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    BuiltInParameters::p10B00B00B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                    EOpFloor,
                                    true);
constexpr const TFunction floor_20B(BuiltInId::floor_Float3,
                                    BuiltInName::floor,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    BuiltInParameters::p20B00B00B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                    EOpFloor,
                                    true);
constexpr const TFunction floor_30B(BuiltInId::floor_Float4,
                                    BuiltInName::floor,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    BuiltInParameters::p30B00B00B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                    EOpFloor,
                                    true);
constexpr const TFunction trunc_00B(BuiltInId::trunc_Float1,
                                    BuiltInName::trunc,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    BuiltInParameters::p00B00B00B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                    EOpTrunc,
                                    true);
constexpr const TFunction trunc_10B(BuiltInId::trunc_Float2,
                                    BuiltInName::trunc,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    BuiltInParameters::p10B00B00B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                    EOpTrunc,
                                    true);
constexpr const TFunction trunc_20B(BuiltInId::trunc_Float3,
                                    BuiltInName::trunc,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    BuiltInParameters::p20B00B00B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                    EOpTrunc,
                                    true);
constexpr const TFunction trunc_30B(BuiltInId::trunc_Float4,
                                    BuiltInName::trunc,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    BuiltInParameters::p30B00B00B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                    EOpTrunc,
                                    true);
constexpr const TFunction round_00B(BuiltInId::round_Float1,
                                    BuiltInName::round,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    BuiltInParameters::p00B00B00B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                    EOpRound,
                                    true);
constexpr const TFunction round_10B(BuiltInId::round_Float2,
                                    BuiltInName::round,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    BuiltInParameters::p10B00B00B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                    EOpRound,
                                    true);
constexpr const TFunction round_20B(BuiltInId::round_Float3,
                                    BuiltInName::round,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    BuiltInParameters::p20B00B00B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                    EOpRound,
                                    true);
constexpr const TFunction round_30B(BuiltInId::round_Float4,
                                    BuiltInName::round,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    BuiltInParameters::p30B00B00B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                    EOpRound,
                                    true);
constexpr const TFunction roundEven_00B(BuiltInId::roundEven_Float1,
                                        BuiltInName::roundEven,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p00B00B00B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                        EOpRoundEven,
                                        true);
constexpr const TFunction roundEven_10B(BuiltInId::roundEven_Float2,
                                        BuiltInName::roundEven,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p10B00B00B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpRoundEven,
                                        true);
constexpr const TFunction roundEven_20B(BuiltInId::roundEven_Float3,
                                        BuiltInName::roundEven,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p20B00B00B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpRoundEven,
                                        true);
constexpr const TFunction roundEven_30B(BuiltInId::roundEven_Float4,
                                        BuiltInName::roundEven,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p30B00B00B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                        EOpRoundEven,
                                        true);
constexpr const TFunction ceil_00B(BuiltInId::ceil_Float1,
                                   BuiltInName::ceil,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p00B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpCeil,
                                   true);
constexpr const TFunction ceil_10B(BuiltInId::ceil_Float2,
                                   BuiltInName::ceil,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p10B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpCeil,
                                   true);
constexpr const TFunction ceil_20B(BuiltInId::ceil_Float3,
                                   BuiltInName::ceil,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p20B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpCeil,
                                   true);
constexpr const TFunction ceil_30B(BuiltInId::ceil_Float4,
                                   BuiltInName::ceil,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p30B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpCeil,
                                   true);
constexpr const TFunction fract_00B(BuiltInId::fract_Float1,
                                    BuiltInName::fract,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    BuiltInParameters::p00B00B00B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                    EOpFract,
                                    true);
constexpr const TFunction fract_10B(BuiltInId::fract_Float2,
                                    BuiltInName::fract,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    BuiltInParameters::p10B00B00B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                    EOpFract,
                                    true);
constexpr const TFunction fract_20B(BuiltInId::fract_Float3,
                                    BuiltInName::fract,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    BuiltInParameters::p20B00B00B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                    EOpFract,
                                    true);
constexpr const TFunction fract_30B(BuiltInId::fract_Float4,
                                    BuiltInName::fract,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    BuiltInParameters::p30B00B00B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                    EOpFract,
                                    true);
constexpr const TFunction mod_00B00B(BuiltInId::mod_Float1_Float1,
                                     BuiltInName::mod,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p00B00B00B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpMod,
                                     true);
constexpr const TFunction mod_10B00B(BuiltInId::mod_Float2_Float1,
                                     BuiltInName::mod,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p10B00B00B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                     EOpMod,
                                     true);
constexpr const TFunction mod_20B00B(BuiltInId::mod_Float3_Float1,
                                     BuiltInName::mod,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p20B00B00B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                     EOpMod,
                                     true);
constexpr const TFunction mod_30B00B(BuiltInId::mod_Float4_Float1,
                                     BuiltInName::mod,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p30B00B00B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpMod,
                                     true);
constexpr const TFunction mod_10B10B(BuiltInId::mod_Float2_Float2,
                                     BuiltInName::mod,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p10B10B00B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                     EOpMod,
                                     true);
constexpr const TFunction mod_20B20B(BuiltInId::mod_Float3_Float3,
                                     BuiltInName::mod,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p20B20B00B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                     EOpMod,
                                     true);
constexpr const TFunction mod_30B30B(BuiltInId::mod_Float4_Float4,
                                     BuiltInName::mod,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p30B30B00B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpMod,
                                     true);
constexpr const TFunction min_00B00B(BuiltInId::min_Float1_Float1,
                                     BuiltInName::min,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p00B00B00B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_10B00B(BuiltInId::min_Float2_Float1,
                                     BuiltInName::min,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p10B00B00B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_20B00B(BuiltInId::min_Float3_Float1,
                                     BuiltInName::min,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p20B00B00B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_30B00B(BuiltInId::min_Float4_Float1,
                                     BuiltInName::min,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p30B00B00B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_10B10B(BuiltInId::min_Float2_Float2,
                                     BuiltInName::min,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p10B10B00B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_20B20B(BuiltInId::min_Float3_Float3,
                                     BuiltInName::min,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p20B20B00B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_30B30B(BuiltInId::min_Float4_Float4,
                                     BuiltInName::min,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p30B30B00B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_00C00C(BuiltInId::min_Int1_Int1,
                                     BuiltInName::min,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p00C00C00C00C,
                                     2,
                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_10C10C(BuiltInId::min_Int2_Int2,
                                     BuiltInName::min,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p10C10C00C00C,
                                     2,
                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_20C20C(BuiltInId::min_Int3_Int3,
                                     BuiltInName::min,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p20C20C00C00C,
                                     2,
                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_30C30C(BuiltInId::min_Int4_Int4,
                                     BuiltInName::min,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p30C30C00C00C,
                                     2,
                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_10C00C(BuiltInId::min_Int2_Int1,
                                     BuiltInName::min,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p10C00C00C,
                                     2,
                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_20C00C(BuiltInId::min_Int3_Int1,
                                     BuiltInName::min,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p20C00C00C,
                                     2,
                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_30C00C(BuiltInId::min_Int4_Int1,
                                     BuiltInName::min,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p30C00C00C,
                                     2,
                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_00D00D(BuiltInId::min_UInt1_UInt1,
                                     BuiltInName::min,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p00D00D00C00C,
                                     2,
                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_10D10D(BuiltInId::min_UInt2_UInt2,
                                     BuiltInName::min,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p10D10D00C00C,
                                     2,
                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_20D20D(BuiltInId::min_UInt3_UInt3,
                                     BuiltInName::min,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p20D20D00C00C,
                                     2,
                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_30D30D(BuiltInId::min_UInt4_UInt4,
                                     BuiltInName::min,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p30D30D00C00C,
                                     2,
                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_10D00D(BuiltInId::min_UInt2_UInt1,
                                     BuiltInName::min,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p10D00D00D,
                                     2,
                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_20D00D(BuiltInId::min_UInt3_UInt1,
                                     BuiltInName::min,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p20D00D00D,
                                     2,
                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_30D00D(BuiltInId::min_UInt4_UInt1,
                                     BuiltInName::min,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p30D00D00D,
                                     2,
                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction max_00B00B(BuiltInId::max_Float1_Float1,
                                     BuiltInName::max,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p00B00B00B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpMax,
                                     true);
constexpr const TFunction max_10B00B(BuiltInId::max_Float2_Float1,
                                     BuiltInName::max,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p10B00B00B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                     EOpMax,
                                     true);
constexpr const TFunction max_20B00B(BuiltInId::max_Float3_Float1,
                                     BuiltInName::max,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p20B00B00B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                     EOpMax,
                                     true);
constexpr const TFunction max_30B00B(BuiltInId::max_Float4_Float1,
                                     BuiltInName::max,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p30B00B00B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpMax,
                                     true);
constexpr const TFunction max_10B10B(BuiltInId::max_Float2_Float2,
                                     BuiltInName::max,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p10B10B00B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                     EOpMax,
                                     true);
constexpr const TFunction max_20B20B(BuiltInId::max_Float3_Float3,
                                     BuiltInName::max,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p20B20B00B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                     EOpMax,
                                     true);
constexpr const TFunction max_30B30B(BuiltInId::max_Float4_Float4,
                                     BuiltInName::max,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p30B30B00B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpMax,
                                     true);
constexpr const TFunction max_00C00C(BuiltInId::max_Int1_Int1,
                                     BuiltInName::max,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p00C00C00C00C,
                                     2,
                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpMax,
                                     true);
constexpr const TFunction max_10C10C(BuiltInId::max_Int2_Int2,
                                     BuiltInName::max,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p10C10C00C00C,
                                     2,
                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                     EOpMax,
                                     true);
constexpr const TFunction max_20C20C(BuiltInId::max_Int3_Int3,
                                     BuiltInName::max,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p20C20C00C00C,
                                     2,
                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                     EOpMax,
                                     true);
constexpr const TFunction max_30C30C(BuiltInId::max_Int4_Int4,
                                     BuiltInName::max,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p30C30C00C00C,
                                     2,
                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpMax,
                                     true);
constexpr const TFunction max_10C00C(BuiltInId::max_Int2_Int1,
                                     BuiltInName::max,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p10C00C00C,
                                     2,
                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                     EOpMax,
                                     true);
constexpr const TFunction max_20C00C(BuiltInId::max_Int3_Int1,
                                     BuiltInName::max,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p20C00C00C,
                                     2,
                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                     EOpMax,
                                     true);
constexpr const TFunction max_30C00C(BuiltInId::max_Int4_Int1,
                                     BuiltInName::max,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p30C00C00C,
                                     2,
                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpMax,
                                     true);
constexpr const TFunction max_00D00D(BuiltInId::max_UInt1_UInt1,
                                     BuiltInName::max,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p00D00D00C00C,
                                     2,
                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpMax,
                                     true);
constexpr const TFunction max_10D10D(BuiltInId::max_UInt2_UInt2,
                                     BuiltInName::max,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p10D10D00C00C,
                                     2,
                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                     EOpMax,
                                     true);
constexpr const TFunction max_20D20D(BuiltInId::max_UInt3_UInt3,
                                     BuiltInName::max,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p20D20D00C00C,
                                     2,
                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                     EOpMax,
                                     true);
constexpr const TFunction max_30D30D(BuiltInId::max_UInt4_UInt4,
                                     BuiltInName::max,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p30D30D00C00C,
                                     2,
                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpMax,
                                     true);
constexpr const TFunction max_10D00D(BuiltInId::max_UInt2_UInt1,
                                     BuiltInName::max,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p10D00D00D,
                                     2,
                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                     EOpMax,
                                     true);
constexpr const TFunction max_20D00D(BuiltInId::max_UInt3_UInt1,
                                     BuiltInName::max,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p20D00D00D,
                                     2,
                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                     EOpMax,
                                     true);
constexpr const TFunction max_30D00D(BuiltInId::max_UInt4_UInt1,
                                     BuiltInName::max,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p30D00D00D,
                                     2,
                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpMax,
                                     true);
constexpr const TFunction clamp_00B00B00B(
    BuiltInId::clamp_Float1_Float1_Float1,
    BuiltInName::clamp,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00B00B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpClamp,
    true);
constexpr const TFunction clamp_10B00B00B(
    BuiltInId::clamp_Float2_Float1_Float1,
    BuiltInName::clamp,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p10B00B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpClamp,
    true);
constexpr const TFunction clamp_20B00B00B(
    BuiltInId::clamp_Float3_Float1_Float1,
    BuiltInName::clamp,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p20B00B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpClamp,
    true);
constexpr const TFunction clamp_30B00B00B(
    BuiltInId::clamp_Float4_Float1_Float1,
    BuiltInName::clamp,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p30B00B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpClamp,
    true);
constexpr const TFunction clamp_10B10B10B(
    BuiltInId::clamp_Float2_Float2_Float2,
    BuiltInName::clamp,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p10B10B10B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpClamp,
    true);
constexpr const TFunction clamp_20B20B20B(
    BuiltInId::clamp_Float3_Float3_Float3,
    BuiltInName::clamp,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p20B20B20B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpClamp,
    true);
constexpr const TFunction clamp_30B30B30B(
    BuiltInId::clamp_Float4_Float4_Float4,
    BuiltInName::clamp,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p30B30B30B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpClamp,
    true);
constexpr const TFunction clamp_00C00C00C(BuiltInId::clamp_Int1_Int1_Int1,
                                          BuiltInName::clamp,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p00C00C00C00C,
                                          3,
                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                          EOpClamp,
                                          true);
constexpr const TFunction clamp_10C00C00C(BuiltInId::clamp_Int2_Int1_Int1,
                                          BuiltInName::clamp,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p10C00C00C,
                                          3,
                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                          EOpClamp,
                                          true);
constexpr const TFunction clamp_20C00C00C(BuiltInId::clamp_Int3_Int1_Int1,
                                          BuiltInName::clamp,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p20C00C00C,
                                          3,
                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                          EOpClamp,
                                          true);
constexpr const TFunction clamp_30C00C00C(BuiltInId::clamp_Int4_Int1_Int1,
                                          BuiltInName::clamp,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p30C00C00C,
                                          3,
                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                          EOpClamp,
                                          true);
constexpr const TFunction clamp_10C10C10C(BuiltInId::clamp_Int2_Int2_Int2,
                                          BuiltInName::clamp,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p10C10C10C,
                                          3,
                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                          EOpClamp,
                                          true);
constexpr const TFunction clamp_20C20C20C(BuiltInId::clamp_Int3_Int3_Int3,
                                          BuiltInName::clamp,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p20C20C20C,
                                          3,
                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                          EOpClamp,
                                          true);
constexpr const TFunction clamp_30C30C30C(BuiltInId::clamp_Int4_Int4_Int4,
                                          BuiltInName::clamp,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p30C30C30C,
                                          3,
                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                          EOpClamp,
                                          true);
constexpr const TFunction clamp_00D00D00D(BuiltInId::clamp_UInt1_UInt1_UInt1,
                                          BuiltInName::clamp,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p00D00D00D,
                                          3,
                                          StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                          EOpClamp,
                                          true);
constexpr const TFunction clamp_10D00D00D(BuiltInId::clamp_UInt2_UInt1_UInt1,
                                          BuiltInName::clamp,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p10D00D00D,
                                          3,
                                          StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                          EOpClamp,
                                          true);
constexpr const TFunction clamp_20D00D00D(BuiltInId::clamp_UInt3_UInt1_UInt1,
                                          BuiltInName::clamp,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p20D00D00D,
                                          3,
                                          StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                          EOpClamp,
                                          true);
constexpr const TFunction clamp_30D00D00D(BuiltInId::clamp_UInt4_UInt1_UInt1,
                                          BuiltInName::clamp,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p30D00D00D,
                                          3,
                                          StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                          EOpClamp,
                                          true);
constexpr const TFunction clamp_10D10D10D(BuiltInId::clamp_UInt2_UInt2_UInt2,
                                          BuiltInName::clamp,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p10D10D10D,
                                          3,
                                          StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                          EOpClamp,
                                          true);
constexpr const TFunction clamp_20D20D20D(BuiltInId::clamp_UInt3_UInt3_UInt3,
                                          BuiltInName::clamp,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p20D20D20D,
                                          3,
                                          StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                          EOpClamp,
                                          true);
constexpr const TFunction clamp_30D30D30D(BuiltInId::clamp_UInt4_UInt4_UInt4,
                                          BuiltInName::clamp,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p30D30D30D,
                                          3,
                                          StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                          EOpClamp,
                                          true);
constexpr const TFunction mix_00B00B00B(BuiltInId::mix_Float1_Float1_Float1,
                                        BuiltInName::mix,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p00B00B00B,
                                        3,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                        EOpMix,
                                        true);
constexpr const TFunction mix_10B10B00B(BuiltInId::mix_Float2_Float2_Float1,
                                        BuiltInName::mix,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p10B10B00B,
                                        3,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpMix,
                                        true);
constexpr const TFunction mix_20B20B00B(BuiltInId::mix_Float3_Float3_Float1,
                                        BuiltInName::mix,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p20B20B00B,
                                        3,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpMix,
                                        true);
constexpr const TFunction mix_30B30B00B(BuiltInId::mix_Float4_Float4_Float1,
                                        BuiltInName::mix,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p30B30B00B,
                                        3,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                        EOpMix,
                                        true);
constexpr const TFunction mix_10B10B10B(BuiltInId::mix_Float2_Float2_Float2,
                                        BuiltInName::mix,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p10B10B10B,
                                        3,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpMix,
                                        true);
constexpr const TFunction mix_20B20B20B(BuiltInId::mix_Float3_Float3_Float3,
                                        BuiltInName::mix,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p20B20B20B,
                                        3,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpMix,
                                        true);
constexpr const TFunction mix_30B30B30B(BuiltInId::mix_Float4_Float4_Float4,
                                        BuiltInName::mix,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p30B30B30B,
                                        3,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                        EOpMix,
                                        true);
constexpr const TFunction mix_00B00B00E(BuiltInId::mix_Float1_Float1_Bool1,
                                        BuiltInName::mix,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p00B00B00E,
                                        3,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                        EOpMix,
                                        true);
constexpr const TFunction mix_10B10B10E(BuiltInId::mix_Float2_Float2_Bool2,
                                        BuiltInName::mix,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p10B10B10E,
                                        3,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpMix,
                                        true);
constexpr const TFunction mix_20B20B20E(BuiltInId::mix_Float3_Float3_Bool3,
                                        BuiltInName::mix,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p20B20B20E,
                                        3,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpMix,
                                        true);
constexpr const TFunction mix_30B30B30E(BuiltInId::mix_Float4_Float4_Bool4,
                                        BuiltInName::mix,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p30B30B30E,
                                        3,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                        EOpMix,
                                        true);
constexpr const TFunction mix_00C00C00E(BuiltInId::mix_Int1_Int1_Bool1,
                                        BuiltInName::mix,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p00C00C00E,
                                        3,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                        EOpMix,
                                        true);
constexpr const TFunction mix_10C10C10E(BuiltInId::mix_Int2_Int2_Bool2,
                                        BuiltInName::mix,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p10C10C10E,
                                        3,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpMix,
                                        true);
constexpr const TFunction mix_20C20C20E(BuiltInId::mix_Int3_Int3_Bool3,
                                        BuiltInName::mix,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p20C20C20E,
                                        3,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpMix,
                                        true);
constexpr const TFunction mix_30C30C30E(BuiltInId::mix_Int4_Int4_Bool4,
                                        BuiltInName::mix,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p30C30C30E,
                                        3,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                        EOpMix,
                                        true);
constexpr const TFunction mix_00D00D00E(BuiltInId::mix_UInt1_UInt1_Bool1,
                                        BuiltInName::mix,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p00D00D00E,
                                        3,
                                        StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                        EOpMix,
                                        true);
constexpr const TFunction mix_10D10D10E(BuiltInId::mix_UInt2_UInt2_Bool2,
                                        BuiltInName::mix,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p10D10D10E,
                                        3,
                                        StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpMix,
                                        true);
constexpr const TFunction mix_20D20D20E(BuiltInId::mix_UInt3_UInt3_Bool3,
                                        BuiltInName::mix,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p20D20D20E,
                                        3,
                                        StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpMix,
                                        true);
constexpr const TFunction mix_30D30D30E(BuiltInId::mix_UInt4_UInt4_Bool4,
                                        BuiltInName::mix,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p30D30D30E,
                                        3,
                                        StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                        EOpMix,
                                        true);
constexpr const TFunction mix_00E00E00E(BuiltInId::mix_Bool1_Bool1_Bool1,
                                        BuiltInName::mix,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p00E00E00E,
                                        3,
                                        StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
                                        EOpMix,
                                        true);
constexpr const TFunction mix_10E10E10E(BuiltInId::mix_Bool2_Bool2_Bool2,
                                        BuiltInName::mix,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p10E10E10E,
                                        3,
                                        StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpMix,
                                        true);
constexpr const TFunction mix_20E20E20E(BuiltInId::mix_Bool3_Bool3_Bool3,
                                        BuiltInName::mix,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p20E20E20E,
                                        3,
                                        StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpMix,
                                        true);
constexpr const TFunction mix_30E30E30E(BuiltInId::mix_Bool4_Bool4_Bool4,
                                        BuiltInName::mix,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p30E30E30E,
                                        3,
                                        StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                        EOpMix,
                                        true);
constexpr const TFunction step_00B00B(BuiltInId::step_Float1_Float1,
                                      BuiltInName::step,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      BuiltInParameters::p00B00B00B,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                      EOpStep,
                                      true);
constexpr const TFunction step_10B10B(BuiltInId::step_Float2_Float2,
                                      BuiltInName::step,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      BuiltInParameters::p10B10B00B,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                      EOpStep,
                                      true);
constexpr const TFunction step_20B20B(BuiltInId::step_Float3_Float3,
                                      BuiltInName::step,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      BuiltInParameters::p20B20B00B,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                      EOpStep,
                                      true);
constexpr const TFunction step_30B30B(BuiltInId::step_Float4_Float4,
                                      BuiltInName::step,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      BuiltInParameters::p30B30B00B,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                      EOpStep,
                                      true);
constexpr const TFunction step_00B10B(BuiltInId::step_Float1_Float2,
                                      BuiltInName::step,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      BuiltInParameters::p00B10B,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                      EOpStep,
                                      true);
constexpr const TFunction step_00B20B(BuiltInId::step_Float1_Float3,
                                      BuiltInName::step,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      BuiltInParameters::p00B20B,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                      EOpStep,
                                      true);
constexpr const TFunction step_00B30B(BuiltInId::step_Float1_Float4,
                                      BuiltInName::step,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      BuiltInParameters::p00B30B,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                      EOpStep,
                                      true);
constexpr const TFunction smoothstep_00B00B00B(
    BuiltInId::smoothstep_Float1_Float1_Float1,
    BuiltInName::smoothstep,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00B00B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpSmoothstep,
    true);
constexpr const TFunction smoothstep_10B10B10B(
    BuiltInId::smoothstep_Float2_Float2_Float2,
    BuiltInName::smoothstep,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p10B10B10B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpSmoothstep,
    true);
constexpr const TFunction smoothstep_20B20B20B(
    BuiltInId::smoothstep_Float3_Float3_Float3,
    BuiltInName::smoothstep,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p20B20B20B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpSmoothstep,
    true);
constexpr const TFunction smoothstep_30B30B30B(
    BuiltInId::smoothstep_Float4_Float4_Float4,
    BuiltInName::smoothstep,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p30B30B30B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpSmoothstep,
    true);
constexpr const TFunction smoothstep_00B00B10B(
    BuiltInId::smoothstep_Float1_Float1_Float2,
    BuiltInName::smoothstep,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00B00B10B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpSmoothstep,
    true);
constexpr const TFunction smoothstep_00B00B20B(
    BuiltInId::smoothstep_Float1_Float1_Float3,
    BuiltInName::smoothstep,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00B00B20B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpSmoothstep,
    true);
constexpr const TFunction smoothstep_00B00B30B(
    BuiltInId::smoothstep_Float1_Float1_Float4,
    BuiltInName::smoothstep,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00B00B30B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpSmoothstep,
    true);
constexpr const TFunction modf_00B00B(BuiltInId::modf_Float1_Float1,
                                      BuiltInName::modf,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      BuiltInParameters::p00B_o_00B,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                      EOpModf,
                                      false);
constexpr const TFunction modf_10B10B(BuiltInId::modf_Float2_Float2,
                                      BuiltInName::modf,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      BuiltInParameters::p10B_o_10B,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                      EOpModf,
                                      false);
constexpr const TFunction modf_20B20B(BuiltInId::modf_Float3_Float3,
                                      BuiltInName::modf,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      BuiltInParameters::p20B_o_20B,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                      EOpModf,
                                      false);
constexpr const TFunction modf_30B30B(BuiltInId::modf_Float4_Float4,
                                      BuiltInName::modf,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      BuiltInParameters::p30B_o_30B,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                      EOpModf,
                                      false);
constexpr const TFunction isnan_00B(BuiltInId::isnan_Float1,
                                    BuiltInName::isnan,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    BuiltInParameters::p00B00B00B,
                                    1,
                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
                                    EOpIsnan,
                                    true);
constexpr const TFunction isnan_10B(BuiltInId::isnan_Float2,
                                    BuiltInName::isnan,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    BuiltInParameters::p10B00B00B,
                                    1,
                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                    EOpIsnan,
                                    true);
constexpr const TFunction isnan_20B(BuiltInId::isnan_Float3,
                                    BuiltInName::isnan,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    BuiltInParameters::p20B00B00B,
                                    1,
                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                    EOpIsnan,
                                    true);
constexpr const TFunction isnan_30B(BuiltInId::isnan_Float4,
                                    BuiltInName::isnan,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    BuiltInParameters::p30B00B00B,
                                    1,
                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                    EOpIsnan,
                                    true);
constexpr const TFunction isinf_00B(BuiltInId::isinf_Float1,
                                    BuiltInName::isinf,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    BuiltInParameters::p00B00B00B,
                                    1,
                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
                                    EOpIsinf,
                                    true);
constexpr const TFunction isinf_10B(BuiltInId::isinf_Float2,
                                    BuiltInName::isinf,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    BuiltInParameters::p10B00B00B,
                                    1,
                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                    EOpIsinf,
                                    true);
constexpr const TFunction isinf_20B(BuiltInId::isinf_Float3,
                                    BuiltInName::isinf,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    BuiltInParameters::p20B00B00B,
                                    1,
                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                    EOpIsinf,
                                    true);
constexpr const TFunction isinf_30B(BuiltInId::isinf_Float4,
                                    BuiltInName::isinf,
                                    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                    BuiltInParameters::p30B00B00B,
                                    1,
                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                    EOpIsinf,
                                    true);
constexpr const TFunction floatBitsToInt_00B(
    BuiltInId::floatBitsToInt_Float1,
    BuiltInName::floatBitsToInt,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00B00B00B,
    1,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpFloatBitsToInt,
    true);
constexpr const TFunction floatBitsToInt_10B(
    BuiltInId::floatBitsToInt_Float2,
    BuiltInName::floatBitsToInt,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p10B00B00B,
    1,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpFloatBitsToInt,
    true);
constexpr const TFunction floatBitsToInt_20B(
    BuiltInId::floatBitsToInt_Float3,
    BuiltInName::floatBitsToInt,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p20B00B00B,
    1,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpFloatBitsToInt,
    true);
constexpr const TFunction floatBitsToInt_30B(
    BuiltInId::floatBitsToInt_Float4,
    BuiltInName::floatBitsToInt,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p30B00B00B,
    1,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpFloatBitsToInt,
    true);
constexpr const TFunction floatBitsToUint_00B(
    BuiltInId::floatBitsToUint_Float1,
    BuiltInName::floatBitsToUint,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00B00B00B,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpFloatBitsToUint,
    true);
constexpr const TFunction floatBitsToUint_10B(
    BuiltInId::floatBitsToUint_Float2,
    BuiltInName::floatBitsToUint,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p10B00B00B,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpFloatBitsToUint,
    true);
constexpr const TFunction floatBitsToUint_20B(
    BuiltInId::floatBitsToUint_Float3,
    BuiltInName::floatBitsToUint,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p20B00B00B,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpFloatBitsToUint,
    true);
constexpr const TFunction floatBitsToUint_30B(
    BuiltInId::floatBitsToUint_Float4,
    BuiltInName::floatBitsToUint,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p30B00B00B,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpFloatBitsToUint,
    true);
constexpr const TFunction intBitsToFloat_00C(
    BuiltInId::intBitsToFloat_Int1,
    BuiltInName::intBitsToFloat,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00C00C00C00C,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpIntBitsToFloat,
    true);
constexpr const TFunction intBitsToFloat_10C(
    BuiltInId::intBitsToFloat_Int2,
    BuiltInName::intBitsToFloat,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p10C00C00C,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpIntBitsToFloat,
    true);
constexpr const TFunction intBitsToFloat_20C(
    BuiltInId::intBitsToFloat_Int3,
    BuiltInName::intBitsToFloat,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p20C00C00C,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpIntBitsToFloat,
    true);
constexpr const TFunction intBitsToFloat_30C(
    BuiltInId::intBitsToFloat_Int4,
    BuiltInName::intBitsToFloat,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p30C00C00C,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpIntBitsToFloat,
    true);
constexpr const TFunction uintBitsToFloat_00D(
    BuiltInId::uintBitsToFloat_UInt1,
    BuiltInName::uintBitsToFloat,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00D00C00C,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpUintBitsToFloat,
    true);
constexpr const TFunction uintBitsToFloat_10D(
    BuiltInId::uintBitsToFloat_UInt2,
    BuiltInName::uintBitsToFloat,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p10D00C00C,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpUintBitsToFloat,
    true);
constexpr const TFunction uintBitsToFloat_20D(
    BuiltInId::uintBitsToFloat_UInt3,
    BuiltInName::uintBitsToFloat,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p20D00C00C,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpUintBitsToFloat,
    true);
constexpr const TFunction uintBitsToFloat_30D(
    BuiltInId::uintBitsToFloat_UInt4,
    BuiltInName::uintBitsToFloat,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p30D00C00C,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpUintBitsToFloat,
    true);
constexpr const TFunction fma_00B00B00B(BuiltInId::fma_Float1_Float1_Float1,
                                        BuiltInName::fma,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p00B00B00B,
                                        3,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                        EOpFma,
                                        true);
constexpr const TFunction fma_10B10B10B(BuiltInId::fma_Float2_Float2_Float2,
                                        BuiltInName::fma,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p10B10B10B,
                                        3,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpFma,
                                        true);
constexpr const TFunction fma_20B20B20B(BuiltInId::fma_Float3_Float3_Float3,
                                        BuiltInName::fma,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p20B20B20B,
                                        3,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpFma,
                                        true);
constexpr const TFunction fma_30B30B30B(BuiltInId::fma_Float4_Float4_Float4,
                                        BuiltInName::fma,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p30B30B30B,
                                        3,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                        EOpFma,
                                        true);
constexpr const TFunction fmaExt_00B00B00B(
    BuiltInId::fmaExt_Float1_Float1_Float1,
    BuiltInName::fmaExt,
    std::array<TExtension, 2u>{{TExtension::EXT_gpu_shader5, TExtension::OES_gpu_shader5}},
    BuiltInParameters::p00B00B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpFma,
    true);
constexpr const TFunction fmaExt_10B10B10B(
    BuiltInId::fmaExt_Float2_Float2_Float2,
    BuiltInName::fmaExt,
    std::array<TExtension, 2u>{{TExtension::EXT_gpu_shader5, TExtension::OES_gpu_shader5}},
    BuiltInParameters::p10B10B10B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpFma,
    true);
constexpr const TFunction fmaExt_20B20B20B(
    BuiltInId::fmaExt_Float3_Float3_Float3,
    BuiltInName::fmaExt,
    std::array<TExtension, 2u>{{TExtension::EXT_gpu_shader5, TExtension::OES_gpu_shader5}},
    BuiltInParameters::p20B20B20B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpFma,
    true);
constexpr const TFunction fmaExt_30B30B30B(
    BuiltInId::fmaExt_Float4_Float4_Float4,
    BuiltInName::fmaExt,
    std::array<TExtension, 2u>{{TExtension::EXT_gpu_shader5, TExtension::OES_gpu_shader5}},
    BuiltInParameters::p30B30B30B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpFma,
    true);
constexpr const TFunction frexp_00B00C(BuiltInId::frexp_Float1_Int1,
                                       BuiltInName::frexp,
                                       std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                       BuiltInParameters::p00B_o_00C,
                                       2,
                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                       EOpFrexp,
                                       false);
constexpr const TFunction frexp_10B10C(BuiltInId::frexp_Float2_Int2,
                                       BuiltInName::frexp,
                                       std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                       BuiltInParameters::p10B_o_10C,
                                       2,
                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                       EOpFrexp,
                                       false);
constexpr const TFunction frexp_20B20C(BuiltInId::frexp_Float3_Int3,
                                       BuiltInName::frexp,
                                       std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                       BuiltInParameters::p20B_o_20C,
                                       2,
                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                       EOpFrexp,
                                       false);
constexpr const TFunction frexp_30B30C(BuiltInId::frexp_Float4_Int4,
                                       BuiltInName::frexp,
                                       std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                       BuiltInParameters::p30B_o_30C,
                                       2,
                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                       EOpFrexp,
                                       false);
constexpr const TFunction ldexp_00B00C(BuiltInId::ldexp_Float1_Int1,
                                       BuiltInName::ldexp,
                                       std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                       BuiltInParameters::p00B00C,
                                       2,
                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                       EOpLdexp,
                                       true);
constexpr const TFunction ldexp_10B10C(BuiltInId::ldexp_Float2_Int2,
                                       BuiltInName::ldexp,
                                       std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                       BuiltInParameters::p10B10C,
                                       2,
                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                       EOpLdexp,
                                       true);
constexpr const TFunction ldexp_20B20C(BuiltInId::ldexp_Float3_Int3,
                                       BuiltInName::ldexp,
                                       std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                       BuiltInParameters::p20B20C,
                                       2,
                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                       EOpLdexp,
                                       true);
constexpr const TFunction ldexp_30B30C(BuiltInId::ldexp_Float4_Int4,
                                       BuiltInName::ldexp,
                                       std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                       BuiltInParameters::p30B30C,
                                       2,
                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                       EOpLdexp,
                                       true);
constexpr const TFunction packSnorm2x16_10B(
    BuiltInId::packSnorm2x16_Float2,
    BuiltInName::packSnorm2x16,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p10B00B00B,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpPackSnorm2x16,
    true);
constexpr const TFunction packHalf2x16_10B(
    BuiltInId::packHalf2x16_Float2,
    BuiltInName::packHalf2x16,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p10B00B00B,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpPackHalf2x16,
    true);
constexpr const TFunction unpackSnorm2x16_00D(
    BuiltInId::unpackSnorm2x16_UInt1,
    BuiltInName::unpackSnorm2x16,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00D00C00C,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpUnpackSnorm2x16,
    true);
constexpr const TFunction unpackHalf2x16_00D(
    BuiltInId::unpackHalf2x16_UInt1,
    BuiltInName::unpackHalf2x16,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00D00C00C,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpUnpackHalf2x16,
    true);
constexpr const TFunction packUnorm2x16_10B(
    BuiltInId::packUnorm2x16_Float2,
    BuiltInName::packUnorm2x16,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p10B00B00B,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpPackUnorm2x16,
    true);
constexpr const TFunction unpackUnorm2x16_00D(
    BuiltInId::unpackUnorm2x16_UInt1,
    BuiltInName::unpackUnorm2x16,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00D00C00C,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpUnpackUnorm2x16,
    true);
constexpr const TFunction packUnorm4x8_30B(
    BuiltInId::packUnorm4x8_Float4,
    BuiltInName::packUnorm4x8,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p30B00B00B,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpPackUnorm4x8,
    true);
constexpr const TFunction packSnorm4x8_30B(
    BuiltInId::packSnorm4x8_Float4,
    BuiltInName::packSnorm4x8,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p30B00B00B,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpPackSnorm4x8,
    true);
constexpr const TFunction unpackUnorm4x8_00D(
    BuiltInId::unpackUnorm4x8_UInt1,
    BuiltInName::unpackUnorm4x8,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00D00C00C,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpUnpackUnorm4x8,
    true);
constexpr const TFunction unpackSnorm4x8_00D(
    BuiltInId::unpackSnorm4x8_UInt1,
    BuiltInName::unpackSnorm4x8,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00D00C00C,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpUnpackSnorm4x8,
    true);
constexpr const TFunction length_00B(BuiltInId::length_Float1,
                                     BuiltInName::length,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p00B00B00B,
                                     1,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpLength,
                                     true);
constexpr const TFunction length_10B(BuiltInId::length_Float2,
                                     BuiltInName::length,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p10B00B00B,
                                     1,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpLength,
                                     true);
constexpr const TFunction length_20B(BuiltInId::length_Float3,
                                     BuiltInName::length,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p20B00B00B,
                                     1,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpLength,
                                     true);
constexpr const TFunction length_30B(BuiltInId::length_Float4,
                                     BuiltInName::length,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p30B00B00B,
                                     1,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpLength,
                                     true);
constexpr const TFunction distance_00B00B(
    BuiltInId::distance_Float1_Float1,
    BuiltInName::distance,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00B00B00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpDistance,
    true);
constexpr const TFunction distance_10B10B(
    BuiltInId::distance_Float2_Float2,
    BuiltInName::distance,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p10B10B00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpDistance,
    true);
constexpr const TFunction distance_20B20B(
    BuiltInId::distance_Float3_Float3,
    BuiltInName::distance,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p20B20B00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpDistance,
    true);
constexpr const TFunction distance_30B30B(
    BuiltInId::distance_Float4_Float4,
    BuiltInName::distance,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p30B30B00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpDistance,
    true);
constexpr const TFunction dot_00B00B(BuiltInId::dot_Float1_Float1,
                                     BuiltInName::dot,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p00B00B00B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpDot,
                                     true);
constexpr const TFunction dot_10B10B(BuiltInId::dot_Float2_Float2,
                                     BuiltInName::dot,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p10B10B00B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpDot,
                                     true);
constexpr const TFunction dot_20B20B(BuiltInId::dot_Float3_Float3,
                                     BuiltInName::dot,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p20B20B00B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpDot,
                                     true);
constexpr const TFunction dot_30B30B(BuiltInId::dot_Float4_Float4,
                                     BuiltInName::dot,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p30B30B00B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpDot,
                                     true);
constexpr const TFunction cross_20B20B(BuiltInId::cross_Float3_Float3,
                                       BuiltInName::cross,
                                       std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                       BuiltInParameters::p20B20B00B,
                                       2,
                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                       EOpCross,
                                       true);
constexpr const TFunction normalize_00B(BuiltInId::normalize_Float1,
                                        BuiltInName::normalize,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p00B00B00B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                        EOpNormalize,
                                        true);
constexpr const TFunction normalize_10B(BuiltInId::normalize_Float2,
                                        BuiltInName::normalize,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p10B00B00B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpNormalize,
                                        true);
constexpr const TFunction normalize_20B(BuiltInId::normalize_Float3,
                                        BuiltInName::normalize,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p20B00B00B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpNormalize,
                                        true);
constexpr const TFunction normalize_30B(BuiltInId::normalize_Float4,
                                        BuiltInName::normalize,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p30B00B00B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                        EOpNormalize,
                                        true);
constexpr const TFunction faceforward_00B00B00B(
    BuiltInId::faceforward_Float1_Float1_Float1,
    BuiltInName::faceforward,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00B00B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpFaceforward,
    true);
constexpr const TFunction faceforward_10B10B10B(
    BuiltInId::faceforward_Float2_Float2_Float2,
    BuiltInName::faceforward,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p10B10B10B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpFaceforward,
    true);
constexpr const TFunction faceforward_20B20B20B(
    BuiltInId::faceforward_Float3_Float3_Float3,
    BuiltInName::faceforward,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p20B20B20B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpFaceforward,
    true);
constexpr const TFunction faceforward_30B30B30B(
    BuiltInId::faceforward_Float4_Float4_Float4,
    BuiltInName::faceforward,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p30B30B30B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpFaceforward,
    true);
constexpr const TFunction reflect_00B00B(BuiltInId::reflect_Float1_Float1,
                                         BuiltInName::reflect,
                                         std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                         BuiltInParameters::p00B00B00B,
                                         2,
                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                         EOpReflect,
                                         true);
constexpr const TFunction reflect_10B10B(BuiltInId::reflect_Float2_Float2,
                                         BuiltInName::reflect,
                                         std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                         BuiltInParameters::p10B10B00B,
                                         2,
                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                         EOpReflect,
                                         true);
constexpr const TFunction reflect_20B20B(BuiltInId::reflect_Float3_Float3,
                                         BuiltInName::reflect,
                                         std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                         BuiltInParameters::p20B20B00B,
                                         2,
                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                         EOpReflect,
                                         true);
constexpr const TFunction reflect_30B30B(BuiltInId::reflect_Float4_Float4,
                                         BuiltInName::reflect,
                                         std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                         BuiltInParameters::p30B30B00B,
                                         2,
                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                         EOpReflect,
                                         true);
constexpr const TFunction refract_00B00B00B(
    BuiltInId::refract_Float1_Float1_Float1,
    BuiltInName::refract,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00B00B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpRefract,
    true);
constexpr const TFunction refract_10B10B00B(
    BuiltInId::refract_Float2_Float2_Float1,
    BuiltInName::refract,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p10B10B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpRefract,
    true);
constexpr const TFunction refract_20B20B00B(
    BuiltInId::refract_Float3_Float3_Float1,
    BuiltInName::refract,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p20B20B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpRefract,
    true);
constexpr const TFunction refract_30B30B00B(
    BuiltInId::refract_Float4_Float4_Float1,
    BuiltInName::refract,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p30B30B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpRefract,
    true);
constexpr const TFunction matrixCompMult_50B50B(
    BuiltInId::matrixCompMult_Float2x2_Float2x2,
    BuiltInName::matrixCompMult,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p50B50B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 2>(),
    EOpMatrixCompMult,
    true);
constexpr const TFunction matrixCompMult_A0BA0B(
    BuiltInId::matrixCompMult_Float3x3_Float3x3,
    BuiltInName::matrixCompMult,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::pA0BA0B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 3>(),
    EOpMatrixCompMult,
    true);
constexpr const TFunction matrixCompMult_F0BF0B(
    BuiltInId::matrixCompMult_Float4x4_Float4x4,
    BuiltInName::matrixCompMult,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::pF0BF0B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 4>(),
    EOpMatrixCompMult,
    true);
constexpr const TFunction matrixCompMult_90B90B(
    BuiltInId::matrixCompMult_Float2x3_Float2x3,
    BuiltInName::matrixCompMult,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p90B90B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 3>(),
    EOpMatrixCompMult,
    true);
constexpr const TFunction matrixCompMult_60B60B(
    BuiltInId::matrixCompMult_Float3x2_Float3x2,
    BuiltInName::matrixCompMult,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p60B60B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 2>(),
    EOpMatrixCompMult,
    true);
constexpr const TFunction matrixCompMult_D0BD0B(
    BuiltInId::matrixCompMult_Float2x4_Float2x4,
    BuiltInName::matrixCompMult,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::pD0BD0B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 4>(),
    EOpMatrixCompMult,
    true);
constexpr const TFunction matrixCompMult_70B70B(
    BuiltInId::matrixCompMult_Float4x2_Float4x2,
    BuiltInName::matrixCompMult,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p70B70B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 2>(),
    EOpMatrixCompMult,
    true);
constexpr const TFunction matrixCompMult_E0BE0B(
    BuiltInId::matrixCompMult_Float3x4_Float3x4,
    BuiltInName::matrixCompMult,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::pE0BE0B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 4>(),
    EOpMatrixCompMult,
    true);
constexpr const TFunction matrixCompMult_B0BB0B(
    BuiltInId::matrixCompMult_Float4x3_Float4x3,
    BuiltInName::matrixCompMult,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::pB0BB0B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 3>(),
    EOpMatrixCompMult,
    true);
constexpr const TFunction outerProduct_10B10B(
    BuiltInId::outerProduct_Float2_Float2,
    BuiltInName::outerProduct,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p10B10B00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 2>(),
    EOpOuterProduct,
    true);
constexpr const TFunction outerProduct_20B20B(
    BuiltInId::outerProduct_Float3_Float3,
    BuiltInName::outerProduct,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p20B20B00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 3>(),
    EOpOuterProduct,
    true);
constexpr const TFunction outerProduct_30B30B(
    BuiltInId::outerProduct_Float4_Float4,
    BuiltInName::outerProduct,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p30B30B00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 4>(),
    EOpOuterProduct,
    true);
constexpr const TFunction outerProduct_20B10B(
    BuiltInId::outerProduct_Float3_Float2,
    BuiltInName::outerProduct,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p20B10B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 3>(),
    EOpOuterProduct,
    true);
constexpr const TFunction outerProduct_10B20B(
    BuiltInId::outerProduct_Float2_Float3,
    BuiltInName::outerProduct,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p10B20B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 2>(),
    EOpOuterProduct,
    true);
constexpr const TFunction outerProduct_30B10B(
    BuiltInId::outerProduct_Float4_Float2,
    BuiltInName::outerProduct,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p30B10B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 4>(),
    EOpOuterProduct,
    true);
constexpr const TFunction outerProduct_10B30B(
    BuiltInId::outerProduct_Float2_Float4,
    BuiltInName::outerProduct,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p10B30B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 2>(),
    EOpOuterProduct,
    true);
constexpr const TFunction outerProduct_30B20B(
    BuiltInId::outerProduct_Float4_Float3,
    BuiltInName::outerProduct,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p30B20B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 4>(),
    EOpOuterProduct,
    true);
constexpr const TFunction outerProduct_20B30B(
    BuiltInId::outerProduct_Float3_Float4,
    BuiltInName::outerProduct,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p20B30B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 3>(),
    EOpOuterProduct,
    true);
constexpr const TFunction transpose_50B(BuiltInId::transpose_Float2x2,
                                        BuiltInName::transpose,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p50B50B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 2>(),
                                        EOpTranspose,
                                        true);
constexpr const TFunction transpose_A0B(BuiltInId::transpose_Float3x3,
                                        BuiltInName::transpose,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::pA0BA0B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 3>(),
                                        EOpTranspose,
                                        true);
constexpr const TFunction transpose_F0B(BuiltInId::transpose_Float4x4,
                                        BuiltInName::transpose,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::pF0BF0B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 4>(),
                                        EOpTranspose,
                                        true);
constexpr const TFunction transpose_60B(BuiltInId::transpose_Float3x2,
                                        BuiltInName::transpose,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p60B60B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 3>(),
                                        EOpTranspose,
                                        true);
constexpr const TFunction transpose_90B(BuiltInId::transpose_Float2x3,
                                        BuiltInName::transpose,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p90B90B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 2>(),
                                        EOpTranspose,
                                        true);
constexpr const TFunction transpose_70B(BuiltInId::transpose_Float4x2,
                                        BuiltInName::transpose,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p70B70B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 4>(),
                                        EOpTranspose,
                                        true);
constexpr const TFunction transpose_D0B(BuiltInId::transpose_Float2x4,
                                        BuiltInName::transpose,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::pD0BD0B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 2>(),
                                        EOpTranspose,
                                        true);
constexpr const TFunction transpose_B0B(BuiltInId::transpose_Float4x3,
                                        BuiltInName::transpose,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::pB0BB0B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 4>(),
                                        EOpTranspose,
                                        true);
constexpr const TFunction transpose_E0B(BuiltInId::transpose_Float3x4,
                                        BuiltInName::transpose,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::pE0BE0B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 3>(),
                                        EOpTranspose,
                                        true);
constexpr const TFunction determinant_50B(
    BuiltInId::determinant_Float2x2,
    BuiltInName::determinant,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p50B50B,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpDeterminant,
    true);
constexpr const TFunction determinant_A0B(
    BuiltInId::determinant_Float3x3,
    BuiltInName::determinant,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::pA0BA0B,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpDeterminant,
    true);
constexpr const TFunction determinant_F0B(
    BuiltInId::determinant_Float4x4,
    BuiltInName::determinant,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::pF0BF0B,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpDeterminant,
    true);
constexpr const TFunction inverse_50B(BuiltInId::inverse_Float2x2,
                                      BuiltInName::inverse,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      BuiltInParameters::p50B50B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 2>(),
                                      EOpInverse,
                                      true);
constexpr const TFunction inverse_A0B(BuiltInId::inverse_Float3x3,
                                      BuiltInName::inverse,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      BuiltInParameters::pA0BA0B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 3>(),
                                      EOpInverse,
                                      true);
constexpr const TFunction inverse_F0B(BuiltInId::inverse_Float4x4,
                                      BuiltInName::inverse,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      BuiltInParameters::pF0BF0B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 4>(),
                                      EOpInverse,
                                      true);
constexpr const TFunction lessThan_10B10B(BuiltInId::lessThan_Float2_Float2,
                                          BuiltInName::lessThan,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p10B10B00B,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                          EOpLessThanComponentWise,
                                          true);
constexpr const TFunction lessThan_20B20B(BuiltInId::lessThan_Float3_Float3,
                                          BuiltInName::lessThan,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p20B20B00B,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                          EOpLessThanComponentWise,
                                          true);
constexpr const TFunction lessThan_30B30B(BuiltInId::lessThan_Float4_Float4,
                                          BuiltInName::lessThan,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p30B30B00B,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                          EOpLessThanComponentWise,
                                          true);
constexpr const TFunction lessThan_10C10C(BuiltInId::lessThan_Int2_Int2,
                                          BuiltInName::lessThan,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p10C10C00C00C,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                          EOpLessThanComponentWise,
                                          true);
constexpr const TFunction lessThan_20C20C(BuiltInId::lessThan_Int3_Int3,
                                          BuiltInName::lessThan,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p20C20C00C00C,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                          EOpLessThanComponentWise,
                                          true);
constexpr const TFunction lessThan_30C30C(BuiltInId::lessThan_Int4_Int4,
                                          BuiltInName::lessThan,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p30C30C00C00C,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                          EOpLessThanComponentWise,
                                          true);
constexpr const TFunction lessThan_10D10D(BuiltInId::lessThan_UInt2_UInt2,
                                          BuiltInName::lessThan,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p10D10D00C00C,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                          EOpLessThanComponentWise,
                                          true);
constexpr const TFunction lessThan_20D20D(BuiltInId::lessThan_UInt3_UInt3,
                                          BuiltInName::lessThan,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p20D20D00C00C,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                          EOpLessThanComponentWise,
                                          true);
constexpr const TFunction lessThan_30D30D(BuiltInId::lessThan_UInt4_UInt4,
                                          BuiltInName::lessThan,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p30D30D00C00C,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                          EOpLessThanComponentWise,
                                          true);
constexpr const TFunction lessThanEqual_10B10B(
    BuiltInId::lessThanEqual_Float2_Float2,
    BuiltInName::lessThanEqual,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p10B10B00B,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpLessThanEqualComponentWise,
    true);
constexpr const TFunction lessThanEqual_20B20B(
    BuiltInId::lessThanEqual_Float3_Float3,
    BuiltInName::lessThanEqual,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p20B20B00B,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpLessThanEqualComponentWise,
    true);
constexpr const TFunction lessThanEqual_30B30B(
    BuiltInId::lessThanEqual_Float4_Float4,
    BuiltInName::lessThanEqual,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p30B30B00B,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpLessThanEqualComponentWise,
    true);
constexpr const TFunction lessThanEqual_10C10C(
    BuiltInId::lessThanEqual_Int2_Int2,
    BuiltInName::lessThanEqual,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p10C10C00C00C,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpLessThanEqualComponentWise,
    true);
constexpr const TFunction lessThanEqual_20C20C(
    BuiltInId::lessThanEqual_Int3_Int3,
    BuiltInName::lessThanEqual,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p20C20C00C00C,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpLessThanEqualComponentWise,
    true);
constexpr const TFunction lessThanEqual_30C30C(
    BuiltInId::lessThanEqual_Int4_Int4,
    BuiltInName::lessThanEqual,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p30C30C00C00C,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpLessThanEqualComponentWise,
    true);
constexpr const TFunction lessThanEqual_10D10D(
    BuiltInId::lessThanEqual_UInt2_UInt2,
    BuiltInName::lessThanEqual,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p10D10D00C00C,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpLessThanEqualComponentWise,
    true);
constexpr const TFunction lessThanEqual_20D20D(
    BuiltInId::lessThanEqual_UInt3_UInt3,
    BuiltInName::lessThanEqual,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p20D20D00C00C,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpLessThanEqualComponentWise,
    true);
constexpr const TFunction lessThanEqual_30D30D(
    BuiltInId::lessThanEqual_UInt4_UInt4,
    BuiltInName::lessThanEqual,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p30D30D00C00C,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpLessThanEqualComponentWise,
    true);
constexpr const TFunction greaterThan_10B10B(
    BuiltInId::greaterThan_Float2_Float2,
    BuiltInName::greaterThan,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p10B10B00B,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpGreaterThanComponentWise,
    true);
constexpr const TFunction greaterThan_20B20B(
    BuiltInId::greaterThan_Float3_Float3,
    BuiltInName::greaterThan,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p20B20B00B,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpGreaterThanComponentWise,
    true);
constexpr const TFunction greaterThan_30B30B(
    BuiltInId::greaterThan_Float4_Float4,
    BuiltInName::greaterThan,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p30B30B00B,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpGreaterThanComponentWise,
    true);
constexpr const TFunction greaterThan_10C10C(
    BuiltInId::greaterThan_Int2_Int2,
    BuiltInName::greaterThan,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p10C10C00C00C,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpGreaterThanComponentWise,
    true);
constexpr const TFunction greaterThan_20C20C(
    BuiltInId::greaterThan_Int3_Int3,
    BuiltInName::greaterThan,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p20C20C00C00C,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpGreaterThanComponentWise,
    true);
constexpr const TFunction greaterThan_30C30C(
    BuiltInId::greaterThan_Int4_Int4,
    BuiltInName::greaterThan,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p30C30C00C00C,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpGreaterThanComponentWise,
    true);
constexpr const TFunction greaterThan_10D10D(
    BuiltInId::greaterThan_UInt2_UInt2,
    BuiltInName::greaterThan,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p10D10D00C00C,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpGreaterThanComponentWise,
    true);
constexpr const TFunction greaterThan_20D20D(
    BuiltInId::greaterThan_UInt3_UInt3,
    BuiltInName::greaterThan,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p20D20D00C00C,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpGreaterThanComponentWise,
    true);
constexpr const TFunction greaterThan_30D30D(
    BuiltInId::greaterThan_UInt4_UInt4,
    BuiltInName::greaterThan,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p30D30D00C00C,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpGreaterThanComponentWise,
    true);
constexpr const TFunction greaterThanEqual_10B10B(
    BuiltInId::greaterThanEqual_Float2_Float2,
    BuiltInName::greaterThanEqual,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p10B10B00B,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpGreaterThanEqualComponentWise,
    true);
constexpr const TFunction greaterThanEqual_20B20B(
    BuiltInId::greaterThanEqual_Float3_Float3,
    BuiltInName::greaterThanEqual,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p20B20B00B,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpGreaterThanEqualComponentWise,
    true);
constexpr const TFunction greaterThanEqual_30B30B(
    BuiltInId::greaterThanEqual_Float4_Float4,
    BuiltInName::greaterThanEqual,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p30B30B00B,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpGreaterThanEqualComponentWise,
    true);
constexpr const TFunction greaterThanEqual_10C10C(
    BuiltInId::greaterThanEqual_Int2_Int2,
    BuiltInName::greaterThanEqual,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p10C10C00C00C,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpGreaterThanEqualComponentWise,
    true);
constexpr const TFunction greaterThanEqual_20C20C(
    BuiltInId::greaterThanEqual_Int3_Int3,
    BuiltInName::greaterThanEqual,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p20C20C00C00C,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpGreaterThanEqualComponentWise,
    true);
constexpr const TFunction greaterThanEqual_30C30C(
    BuiltInId::greaterThanEqual_Int4_Int4,
    BuiltInName::greaterThanEqual,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p30C30C00C00C,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpGreaterThanEqualComponentWise,
    true);
constexpr const TFunction greaterThanEqual_10D10D(
    BuiltInId::greaterThanEqual_UInt2_UInt2,
    BuiltInName::greaterThanEqual,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p10D10D00C00C,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpGreaterThanEqualComponentWise,
    true);
constexpr const TFunction greaterThanEqual_20D20D(
    BuiltInId::greaterThanEqual_UInt3_UInt3,
    BuiltInName::greaterThanEqual,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p20D20D00C00C,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpGreaterThanEqualComponentWise,
    true);
constexpr const TFunction greaterThanEqual_30D30D(
    BuiltInId::greaterThanEqual_UInt4_UInt4,
    BuiltInName::greaterThanEqual,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p30D30D00C00C,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpGreaterThanEqualComponentWise,
    true);
constexpr const TFunction equal_10B10B(BuiltInId::equal_Float2_Float2,
                                       BuiltInName::equal,
                                       std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                       BuiltInParameters::p10B10B00B,
                                       2,
                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                       EOpEqualComponentWise,
                                       true);
constexpr const TFunction equal_20B20B(BuiltInId::equal_Float3_Float3,
                                       BuiltInName::equal,
                                       std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                       BuiltInParameters::p20B20B00B,
                                       2,
                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                       EOpEqualComponentWise,
                                       true);
constexpr const TFunction equal_30B30B(BuiltInId::equal_Float4_Float4,
                                       BuiltInName::equal,
                                       std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                       BuiltInParameters::p30B30B00B,
                                       2,
                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                       EOpEqualComponentWise,
                                       true);
constexpr const TFunction equal_10C10C(BuiltInId::equal_Int2_Int2,
                                       BuiltInName::equal,
                                       std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                       BuiltInParameters::p10C10C00C00C,
                                       2,
                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                       EOpEqualComponentWise,
                                       true);
constexpr const TFunction equal_20C20C(BuiltInId::equal_Int3_Int3,
                                       BuiltInName::equal,
                                       std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                       BuiltInParameters::p20C20C00C00C,
                                       2,
                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                       EOpEqualComponentWise,
                                       true);
constexpr const TFunction equal_30C30C(BuiltInId::equal_Int4_Int4,
                                       BuiltInName::equal,
                                       std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                       BuiltInParameters::p30C30C00C00C,
                                       2,
                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                       EOpEqualComponentWise,
                                       true);
constexpr const TFunction equal_10D10D(BuiltInId::equal_UInt2_UInt2,
                                       BuiltInName::equal,
                                       std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                       BuiltInParameters::p10D10D00C00C,
                                       2,
                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                       EOpEqualComponentWise,
                                       true);
constexpr const TFunction equal_20D20D(BuiltInId::equal_UInt3_UInt3,
                                       BuiltInName::equal,
                                       std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                       BuiltInParameters::p20D20D00C00C,
                                       2,
                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                       EOpEqualComponentWise,
                                       true);
constexpr const TFunction equal_30D30D(BuiltInId::equal_UInt4_UInt4,
                                       BuiltInName::equal,
                                       std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                       BuiltInParameters::p30D30D00C00C,
                                       2,
                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                       EOpEqualComponentWise,
                                       true);
constexpr const TFunction equal_10E10E(BuiltInId::equal_Bool2_Bool2,
                                       BuiltInName::equal,
                                       std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                       BuiltInParameters::p10E10E10E,
                                       2,
                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                       EOpEqualComponentWise,
                                       true);
constexpr const TFunction equal_20E20E(BuiltInId::equal_Bool3_Bool3,
                                       BuiltInName::equal,
                                       std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                       BuiltInParameters::p20E20E20E,
                                       2,
                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                       EOpEqualComponentWise,
                                       true);
constexpr const TFunction equal_30E30E(BuiltInId::equal_Bool4_Bool4,
                                       BuiltInName::equal,
                                       std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                       BuiltInParameters::p30E30E30E,
                                       2,
                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                       EOpEqualComponentWise,
                                       true);
constexpr const TFunction notEqual_10B10B(BuiltInId::notEqual_Float2_Float2,
                                          BuiltInName::notEqual,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p10B10B00B,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                          EOpNotEqualComponentWise,
                                          true);
constexpr const TFunction notEqual_20B20B(BuiltInId::notEqual_Float3_Float3,
                                          BuiltInName::notEqual,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p20B20B00B,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                          EOpNotEqualComponentWise,
                                          true);
constexpr const TFunction notEqual_30B30B(BuiltInId::notEqual_Float4_Float4,
                                          BuiltInName::notEqual,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p30B30B00B,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                          EOpNotEqualComponentWise,
                                          true);
constexpr const TFunction notEqual_10C10C(BuiltInId::notEqual_Int2_Int2,
                                          BuiltInName::notEqual,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p10C10C00C00C,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                          EOpNotEqualComponentWise,
                                          true);
constexpr const TFunction notEqual_20C20C(BuiltInId::notEqual_Int3_Int3,
                                          BuiltInName::notEqual,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p20C20C00C00C,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                          EOpNotEqualComponentWise,
                                          true);
constexpr const TFunction notEqual_30C30C(BuiltInId::notEqual_Int4_Int4,
                                          BuiltInName::notEqual,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p30C30C00C00C,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                          EOpNotEqualComponentWise,
                                          true);
constexpr const TFunction notEqual_10D10D(BuiltInId::notEqual_UInt2_UInt2,
                                          BuiltInName::notEqual,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p10D10D00C00C,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                          EOpNotEqualComponentWise,
                                          true);
constexpr const TFunction notEqual_20D20D(BuiltInId::notEqual_UInt3_UInt3,
                                          BuiltInName::notEqual,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p20D20D00C00C,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                          EOpNotEqualComponentWise,
                                          true);
constexpr const TFunction notEqual_30D30D(BuiltInId::notEqual_UInt4_UInt4,
                                          BuiltInName::notEqual,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p30D30D00C00C,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                          EOpNotEqualComponentWise,
                                          true);
constexpr const TFunction notEqual_10E10E(BuiltInId::notEqual_Bool2_Bool2,
                                          BuiltInName::notEqual,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p10E10E10E,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                          EOpNotEqualComponentWise,
                                          true);
constexpr const TFunction notEqual_20E20E(BuiltInId::notEqual_Bool3_Bool3,
                                          BuiltInName::notEqual,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p20E20E20E,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                          EOpNotEqualComponentWise,
                                          true);
constexpr const TFunction notEqual_30E30E(BuiltInId::notEqual_Bool4_Bool4,
                                          BuiltInName::notEqual,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p30E30E30E,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                          EOpNotEqualComponentWise,
                                          true);
constexpr const TFunction any_10E(BuiltInId::any_Bool2,
                                  BuiltInName::any,
                                  std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                  BuiltInParameters::p10E10E10E,
                                  1,
                                  StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
                                  EOpAny,
                                  true);
constexpr const TFunction any_20E(BuiltInId::any_Bool3,
                                  BuiltInName::any,
                                  std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                  BuiltInParameters::p20E20E20E,
                                  1,
                                  StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
                                  EOpAny,
                                  true);
constexpr const TFunction any_30E(BuiltInId::any_Bool4,
                                  BuiltInName::any,
                                  std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                  BuiltInParameters::p30E30E30E,
                                  1,
                                  StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
                                  EOpAny,
                                  true);
constexpr const TFunction all_10E(BuiltInId::all_Bool2,
                                  BuiltInName::all,
                                  std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                  BuiltInParameters::p10E10E10E,
                                  1,
                                  StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
                                  EOpAll,
                                  true);
constexpr const TFunction all_20E(BuiltInId::all_Bool3,
                                  BuiltInName::all,
                                  std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                  BuiltInParameters::p20E20E20E,
                                  1,
                                  StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
                                  EOpAll,
                                  true);
constexpr const TFunction all_30E(BuiltInId::all_Bool4,
                                  BuiltInName::all,
                                  std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                  BuiltInParameters::p30E30E30E,
                                  1,
                                  StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
                                  EOpAll,
                                  true);
constexpr const TFunction notFunc_10E(BuiltInId::notFunc_Bool2,
                                      BuiltInName::notFunc,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      BuiltInParameters::p10E10E10E,
                                      1,
                                      StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                      EOpNotComponentWise,
                                      true);
constexpr const TFunction notFunc_20E(BuiltInId::notFunc_Bool3,
                                      BuiltInName::notFunc,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      BuiltInParameters::p20E20E20E,
                                      1,
                                      StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                      EOpNotComponentWise,
                                      true);
constexpr const TFunction notFunc_30E(BuiltInId::notFunc_Bool4,
                                      BuiltInName::notFunc,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      BuiltInParameters::p30E30E30E,
                                      1,
                                      StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                      EOpNotComponentWise,
                                      true);
constexpr const TFunction bitfieldExtract_00C00C00C(
    BuiltInId::bitfieldExtract_Int1_Int1_Int1,
    BuiltInName::bitfieldExtract,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00C00C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpBitfieldExtract,
    true);
constexpr const TFunction bitfieldExtract_10C00C00C(
    BuiltInId::bitfieldExtract_Int2_Int1_Int1,
    BuiltInName::bitfieldExtract,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpBitfieldExtract,
    true);
constexpr const TFunction bitfieldExtract_20C00C00C(
    BuiltInId::bitfieldExtract_Int3_Int1_Int1,
    BuiltInName::bitfieldExtract,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpBitfieldExtract,
    true);
constexpr const TFunction bitfieldExtract_30C00C00C(
    BuiltInId::bitfieldExtract_Int4_Int1_Int1,
    BuiltInName::bitfieldExtract,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p30C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpBitfieldExtract,
    true);
constexpr const TFunction bitfieldExtract_00D00C00C(
    BuiltInId::bitfieldExtract_UInt1_Int1_Int1,
    BuiltInName::bitfieldExtract,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00D00C00C,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpBitfieldExtract,
    true);
constexpr const TFunction bitfieldExtract_10D00C00C(
    BuiltInId::bitfieldExtract_UInt2_Int1_Int1,
    BuiltInName::bitfieldExtract,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p10D00C00C,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpBitfieldExtract,
    true);
constexpr const TFunction bitfieldExtract_20D00C00C(
    BuiltInId::bitfieldExtract_UInt3_Int1_Int1,
    BuiltInName::bitfieldExtract,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p20D00C00C,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpBitfieldExtract,
    true);
constexpr const TFunction bitfieldExtract_30D00C00C(
    BuiltInId::bitfieldExtract_UInt4_Int1_Int1,
    BuiltInName::bitfieldExtract,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p30D00C00C,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpBitfieldExtract,
    true);
constexpr const TFunction bitfieldInsert_00C00C00C00C(
    BuiltInId::bitfieldInsert_Int1_Int1_Int1_Int1,
    BuiltInName::bitfieldInsert,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpBitfieldInsert,
    true);
constexpr const TFunction bitfieldInsert_10C10C00C00C(
    BuiltInId::bitfieldInsert_Int2_Int2_Int1_Int1,
    BuiltInName::bitfieldInsert,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p10C10C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpBitfieldInsert,
    true);
constexpr const TFunction bitfieldInsert_20C20C00C00C(
    BuiltInId::bitfieldInsert_Int3_Int3_Int1_Int1,
    BuiltInName::bitfieldInsert,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p20C20C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpBitfieldInsert,
    true);
constexpr const TFunction bitfieldInsert_30C30C00C00C(
    BuiltInId::bitfieldInsert_Int4_Int4_Int1_Int1,
    BuiltInName::bitfieldInsert,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p30C30C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpBitfieldInsert,
    true);
constexpr const TFunction bitfieldInsert_00D00D00C00C(
    BuiltInId::bitfieldInsert_UInt1_UInt1_Int1_Int1,
    BuiltInName::bitfieldInsert,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00D00D00C00C,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpBitfieldInsert,
    true);
constexpr const TFunction bitfieldInsert_10D10D00C00C(
    BuiltInId::bitfieldInsert_UInt2_UInt2_Int1_Int1,
    BuiltInName::bitfieldInsert,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p10D10D00C00C,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpBitfieldInsert,
    true);
constexpr const TFunction bitfieldInsert_20D20D00C00C(
    BuiltInId::bitfieldInsert_UInt3_UInt3_Int1_Int1,
    BuiltInName::bitfieldInsert,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p20D20D00C00C,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpBitfieldInsert,
    true);
constexpr const TFunction bitfieldInsert_30D30D00C00C(
    BuiltInId::bitfieldInsert_UInt4_UInt4_Int1_Int1,
    BuiltInName::bitfieldInsert,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p30D30D00C00C,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpBitfieldInsert,
    true);
constexpr const TFunction bitfieldReverse_00C(
    BuiltInId::bitfieldReverse_Int1,
    BuiltInName::bitfieldReverse,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00C00C00C00C,
    1,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpBitfieldReverse,
    true);
constexpr const TFunction bitfieldReverse_10C(
    BuiltInId::bitfieldReverse_Int2,
    BuiltInName::bitfieldReverse,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p10C00C00C,
    1,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpBitfieldReverse,
    true);
constexpr const TFunction bitfieldReverse_20C(
    BuiltInId::bitfieldReverse_Int3,
    BuiltInName::bitfieldReverse,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p20C00C00C,
    1,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpBitfieldReverse,
    true);
constexpr const TFunction bitfieldReverse_30C(
    BuiltInId::bitfieldReverse_Int4,
    BuiltInName::bitfieldReverse,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p30C00C00C,
    1,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpBitfieldReverse,
    true);
constexpr const TFunction bitfieldReverse_00D(
    BuiltInId::bitfieldReverse_UInt1,
    BuiltInName::bitfieldReverse,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00D00C00C,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpBitfieldReverse,
    true);
constexpr const TFunction bitfieldReverse_10D(
    BuiltInId::bitfieldReverse_UInt2,
    BuiltInName::bitfieldReverse,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p10D00C00C,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpBitfieldReverse,
    true);
constexpr const TFunction bitfieldReverse_20D(
    BuiltInId::bitfieldReverse_UInt3,
    BuiltInName::bitfieldReverse,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p20D00C00C,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpBitfieldReverse,
    true);
constexpr const TFunction bitfieldReverse_30D(
    BuiltInId::bitfieldReverse_UInt4,
    BuiltInName::bitfieldReverse,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p30D00C00C,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpBitfieldReverse,
    true);
constexpr const TFunction bitCount_00C(BuiltInId::bitCount_Int1,
                                       BuiltInName::bitCount,
                                       std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                       BuiltInParameters::p00C00C00C00C,
                                       1,
                                       StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                       EOpBitCount,
                                       true);
constexpr const TFunction bitCount_10C(BuiltInId::bitCount_Int2,
                                       BuiltInName::bitCount,
                                       std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                       BuiltInParameters::p10C00C00C,
                                       1,
                                       StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                       EOpBitCount,
                                       true);
constexpr const TFunction bitCount_20C(BuiltInId::bitCount_Int3,
                                       BuiltInName::bitCount,
                                       std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                       BuiltInParameters::p20C00C00C,
                                       1,
                                       StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                       EOpBitCount,
                                       true);
constexpr const TFunction bitCount_30C(BuiltInId::bitCount_Int4,
                                       BuiltInName::bitCount,
                                       std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                       BuiltInParameters::p30C00C00C,
                                       1,
                                       StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                       EOpBitCount,
                                       true);
constexpr const TFunction bitCount_00D(BuiltInId::bitCount_UInt1,
                                       BuiltInName::bitCount,
                                       std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                       BuiltInParameters::p00D00C00C,
                                       1,
                                       StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                       EOpBitCount,
                                       true);
constexpr const TFunction bitCount_10D(BuiltInId::bitCount_UInt2,
                                       BuiltInName::bitCount,
                                       std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                       BuiltInParameters::p10D00C00C,
                                       1,
                                       StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                       EOpBitCount,
                                       true);
constexpr const TFunction bitCount_20D(BuiltInId::bitCount_UInt3,
                                       BuiltInName::bitCount,
                                       std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                       BuiltInParameters::p20D00C00C,
                                       1,
                                       StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                       EOpBitCount,
                                       true);
constexpr const TFunction bitCount_30D(BuiltInId::bitCount_UInt4,
                                       BuiltInName::bitCount,
                                       std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                       BuiltInParameters::p30D00C00C,
                                       1,
                                       StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                       EOpBitCount,
                                       true);
constexpr const TFunction findLSB_00C(BuiltInId::findLSB_Int1,
                                      BuiltInName::findLSB,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      BuiltInParameters::p00C00C00C00C,
                                      1,
                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                      EOpFindLSB,
                                      true);
constexpr const TFunction findLSB_10C(BuiltInId::findLSB_Int2,
                                      BuiltInName::findLSB,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      BuiltInParameters::p10C00C00C,
                                      1,
                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                      EOpFindLSB,
                                      true);
constexpr const TFunction findLSB_20C(BuiltInId::findLSB_Int3,
                                      BuiltInName::findLSB,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      BuiltInParameters::p20C00C00C,
                                      1,
                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                      EOpFindLSB,
                                      true);
constexpr const TFunction findLSB_30C(BuiltInId::findLSB_Int4,
                                      BuiltInName::findLSB,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      BuiltInParameters::p30C00C00C,
                                      1,
                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                      EOpFindLSB,
                                      true);
constexpr const TFunction findLSB_00D(BuiltInId::findLSB_UInt1,
                                      BuiltInName::findLSB,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      BuiltInParameters::p00D00C00C,
                                      1,
                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                      EOpFindLSB,
                                      true);
constexpr const TFunction findLSB_10D(BuiltInId::findLSB_UInt2,
                                      BuiltInName::findLSB,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      BuiltInParameters::p10D00C00C,
                                      1,
                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                      EOpFindLSB,
                                      true);
constexpr const TFunction findLSB_20D(BuiltInId::findLSB_UInt3,
                                      BuiltInName::findLSB,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      BuiltInParameters::p20D00C00C,
                                      1,
                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                      EOpFindLSB,
                                      true);
constexpr const TFunction findLSB_30D(BuiltInId::findLSB_UInt4,
                                      BuiltInName::findLSB,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      BuiltInParameters::p30D00C00C,
                                      1,
                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                      EOpFindLSB,
                                      true);
constexpr const TFunction findMSB_00C(BuiltInId::findMSB_Int1,
                                      BuiltInName::findMSB,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      BuiltInParameters::p00C00C00C00C,
                                      1,
                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                      EOpFindMSB,
                                      true);
constexpr const TFunction findMSB_10C(BuiltInId::findMSB_Int2,
                                      BuiltInName::findMSB,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      BuiltInParameters::p10C00C00C,
                                      1,
                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                      EOpFindMSB,
                                      true);
constexpr const TFunction findMSB_20C(BuiltInId::findMSB_Int3,
                                      BuiltInName::findMSB,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      BuiltInParameters::p20C00C00C,
                                      1,
                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                      EOpFindMSB,
                                      true);
constexpr const TFunction findMSB_30C(BuiltInId::findMSB_Int4,
                                      BuiltInName::findMSB,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      BuiltInParameters::p30C00C00C,
                                      1,
                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                      EOpFindMSB,
                                      true);
constexpr const TFunction findMSB_00D(BuiltInId::findMSB_UInt1,
                                      BuiltInName::findMSB,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      BuiltInParameters::p00D00C00C,
                                      1,
                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                      EOpFindMSB,
                                      true);
constexpr const TFunction findMSB_10D(BuiltInId::findMSB_UInt2,
                                      BuiltInName::findMSB,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      BuiltInParameters::p10D00C00C,
                                      1,
                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                      EOpFindMSB,
                                      true);
constexpr const TFunction findMSB_20D(BuiltInId::findMSB_UInt3,
                                      BuiltInName::findMSB,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      BuiltInParameters::p20D00C00C,
                                      1,
                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                      EOpFindMSB,
                                      true);
constexpr const TFunction findMSB_30D(BuiltInId::findMSB_UInt4,
                                      BuiltInName::findMSB,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      BuiltInParameters::p30D00C00C,
                                      1,
                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                      EOpFindMSB,
                                      true);
constexpr const TFunction uaddCarry_00D00D00D(
    BuiltInId::uaddCarry_UInt1_UInt1_UInt1,
    BuiltInName::uaddCarry,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00D00D_o_00D_o_00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpUaddCarry,
    false);
constexpr const TFunction uaddCarry_10D10D10D(
    BuiltInId::uaddCarry_UInt2_UInt2_UInt2,
    BuiltInName::uaddCarry,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p10D10D_o_10D_o_10D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpUaddCarry,
    false);
constexpr const TFunction uaddCarry_20D20D20D(
    BuiltInId::uaddCarry_UInt3_UInt3_UInt3,
    BuiltInName::uaddCarry,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p20D20D_o_20D_o_20D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpUaddCarry,
    false);
constexpr const TFunction uaddCarry_30D30D30D(
    BuiltInId::uaddCarry_UInt4_UInt4_UInt4,
    BuiltInName::uaddCarry,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p30D30D_o_30D_o_30D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpUaddCarry,
    false);
constexpr const TFunction usubBorrow_00D00D00D(
    BuiltInId::usubBorrow_UInt1_UInt1_UInt1,
    BuiltInName::usubBorrow,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00D00D_o_00D_o_00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpUsubBorrow,
    false);
constexpr const TFunction usubBorrow_10D10D10D(
    BuiltInId::usubBorrow_UInt2_UInt2_UInt2,
    BuiltInName::usubBorrow,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p10D10D_o_10D_o_10D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpUsubBorrow,
    false);
constexpr const TFunction usubBorrow_20D20D20D(
    BuiltInId::usubBorrow_UInt3_UInt3_UInt3,
    BuiltInName::usubBorrow,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p20D20D_o_20D_o_20D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpUsubBorrow,
    false);
constexpr const TFunction usubBorrow_30D30D30D(
    BuiltInId::usubBorrow_UInt4_UInt4_UInt4,
    BuiltInName::usubBorrow,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p30D30D_o_30D_o_30D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpUsubBorrow,
    false);
constexpr const TFunction umulExtended_00D00D00D00D(
    BuiltInId::umulExtended_UInt1_UInt1_UInt1_UInt1,
    BuiltInName::umulExtended,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00D00D_o_00D_o_00D,
    4,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpUmulExtended,
    false);
constexpr const TFunction umulExtended_10D10D10D10D(
    BuiltInId::umulExtended_UInt2_UInt2_UInt2_UInt2,
    BuiltInName::umulExtended,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p10D10D_o_10D_o_10D,
    4,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpUmulExtended,
    false);
constexpr const TFunction umulExtended_20D20D20D20D(
    BuiltInId::umulExtended_UInt3_UInt3_UInt3_UInt3,
    BuiltInName::umulExtended,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p20D20D_o_20D_o_20D,
    4,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpUmulExtended,
    false);
constexpr const TFunction umulExtended_30D30D30D30D(
    BuiltInId::umulExtended_UInt4_UInt4_UInt4_UInt4,
    BuiltInName::umulExtended,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p30D30D_o_30D_o_30D,
    4,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpUmulExtended,
    false);
constexpr const TFunction imulExtended_00C00C00C00C(
    BuiltInId::imulExtended_Int1_Int1_Int1_Int1,
    BuiltInName::imulExtended,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00C00C_o_00C_o_00C,
    4,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImulExtended,
    false);
constexpr const TFunction imulExtended_10C10C10C10C(
    BuiltInId::imulExtended_Int2_Int2_Int2_Int2,
    BuiltInName::imulExtended,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p10C10C_o_10C_o_10C,
    4,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImulExtended,
    false);
constexpr const TFunction imulExtended_20C20C20C20C(
    BuiltInId::imulExtended_Int3_Int3_Int3_Int3,
    BuiltInName::imulExtended,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p20C20C_o_20C_o_20C,
    4,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImulExtended,
    false);
constexpr const TFunction imulExtended_30C30C30C30C(
    BuiltInId::imulExtended_Int4_Int4_Int4_Int4,
    BuiltInName::imulExtended,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p30C30C_o_30C_o_30C,
    4,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImulExtended,
    false);
constexpr const TFunction texture2D_00H10B(
    BuiltInId::texture2D_Sampler2D1_Float2,
    BuiltInName::texture2D,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00H10B00B10C,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexture2D,
    true);
constexpr const TFunction texture2DProj_00H20B(
    BuiltInId::texture2DProj_Sampler2D1_Float3,
    BuiltInName::texture2DProj,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00H20B00B10C,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexture2DProj,
    true);
constexpr const TFunction texture2DProj_00H30B(
    BuiltInId::texture2DProj_Sampler2D1_Float4,
    BuiltInName::texture2DProj,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00H30B00B10C,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexture2DProj,
    true);
constexpr const TFunction textureCube_00J20B(
    BuiltInId::textureCube_SamplerCube1_Float3,
    BuiltInName::textureCube,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00J20B00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureCube,
    true);
constexpr const TFunction texture3D_00I20B(
    BuiltInId::texture3D_Sampler3D1_Float3,
    BuiltInName::texture3D,
    std::array<TExtension, 1u>{{TExtension::OES_texture_3D}},
    BuiltInParameters::p00I20B00B20C,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexture3D,
    true);
constexpr const TFunction texture3DProj_00I30B(
    BuiltInId::texture3DProj_Sampler3D1_Float4,
    BuiltInName::texture3DProj,
    std::array<TExtension, 1u>{{TExtension::OES_texture_3D}},
    BuiltInParameters::p00I30B00B20C,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexture3DProj,
    true);
constexpr const TFunction shadow2DEXT_00c20B(
    BuiltInId::shadow2DEXT_Sampler2DShadow1_Float3,
    BuiltInName::shadow2DEXT,
    std::array<TExtension, 1u>{{TExtension::EXT_shadow_samplers}},
    BuiltInParameters::p00c20B00B10C,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpShadow2DEXT,
    true);
constexpr const TFunction shadow2DProjEXT_00c30B(
    BuiltInId::shadow2DProjEXT_Sampler2DShadow1_Float4,
    BuiltInName::shadow2DProjEXT,
    std::array<TExtension, 1u>{{TExtension::EXT_shadow_samplers}},
    BuiltInParameters::p00c30B00B10C,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpShadow2DProjEXT,
    true);
constexpr const TFunction texture2D_00L10B(
    BuiltInId::texture2D_SamplerExternalOES1_Float2,
    BuiltInName::texture2D,
    std::array<TExtension, 2u>{
        {TExtension::OES_EGL_image_external, TExtension::NV_EGL_stream_consumer_external}},
    BuiltInParameters::p00L10B00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexture2D,
    true);
constexpr const TFunction texture2DProj_00L20B(
    BuiltInId::texture2DProj_SamplerExternalOES1_Float3,
    BuiltInName::texture2DProj,
    std::array<TExtension, 2u>{
        {TExtension::OES_EGL_image_external, TExtension::NV_EGL_stream_consumer_external}},
    BuiltInParameters::p00L20B00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexture2DProj,
    true);
constexpr const TFunction texture2DProj_00L30B(
    BuiltInId::texture2DProj_SamplerExternalOES1_Float4,
    BuiltInName::texture2DProj,
    std::array<TExtension, 2u>{
        {TExtension::OES_EGL_image_external, TExtension::NV_EGL_stream_consumer_external}},
    BuiltInParameters::p00L30B00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexture2DProj,
    true);
constexpr const TFunction texture2DRect_00N10B(
    BuiltInId::texture2DRect_Sampler2DRect1_Float2,
    BuiltInName::texture2DRect,
    std::array<TExtension, 1u>{{TExtension::ARB_texture_rectangle}},
    BuiltInParameters::p00N10B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexture2DRect,
    true);
constexpr const TFunction texture2DRectProj_00N20B(
    BuiltInId::texture2DRectProj_Sampler2DRect1_Float3,
    BuiltInName::texture2DRectProj,
    std::array<TExtension, 1u>{{TExtension::ARB_texture_rectangle}},
    BuiltInParameters::p00N20B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexture2DRectProj,
    true);
constexpr const TFunction texture2DRectProj_00N30B(
    BuiltInId::texture2DRectProj_Sampler2DRect1_Float4,
    BuiltInName::texture2DRectProj,
    std::array<TExtension, 1u>{{TExtension::ARB_texture_rectangle}},
    BuiltInParameters::p00N30B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexture2DRectProj,
    true);
constexpr const TFunction texture2DGradEXT_00H10B10B10B(
    BuiltInId::texture2DGradEXT_Sampler2D1_Float2_Float2_Float2,
    BuiltInName::texture2DGradEXT,
    std::array<TExtension, 1u>{{TExtension::EXT_shader_texture_lod}},
    BuiltInParameters::p00H10B10B10B10C,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexture2DGradEXT,
    true);
constexpr const TFunction texture2DProjGradEXT_00H20B10B10B(
    BuiltInId::texture2DProjGradEXT_Sampler2D1_Float3_Float2_Float2,
    BuiltInName::texture2DProjGradEXT,
    std::array<TExtension, 1u>{{TExtension::EXT_shader_texture_lod}},
    BuiltInParameters::p00H20B10B10B10C,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexture2DProjGradEXT,
    true);
constexpr const TFunction texture2DProjGradEXT_00H30B10B10B(
    BuiltInId::texture2DProjGradEXT_Sampler2D1_Float4_Float2_Float2,
    BuiltInName::texture2DProjGradEXT,
    std::array<TExtension, 1u>{{TExtension::EXT_shader_texture_lod}},
    BuiltInParameters::p00H30B10B10B10C,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexture2DProjGradEXT,
    true);
constexpr const TFunction textureCubeGradEXT_00J20B20B20B(
    BuiltInId::textureCubeGradEXT_SamplerCube1_Float3_Float3_Float3,
    BuiltInName::textureCubeGradEXT,
    std::array<TExtension, 1u>{{TExtension::EXT_shader_texture_lod}},
    BuiltInParameters::p00J20B20B20B,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureCubeGradEXT,
    true);
constexpr const TFunction textureVideoWEBGL_00p10B(
    BuiltInId::textureVideoWEBGL_SamplerVideoWEBGL1_Float2,
    BuiltInName::textureVideoWEBGL,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00p10B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureVideoWEBGL,
    true);
constexpr const TFunction texture2D_00H10B00B(
    BuiltInId::texture2D_Sampler2D1_Float2_Float1,
    BuiltInName::texture2D,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00H10B00B10C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexture2DBias,
    true);
constexpr const TFunction texture2DProj_00H20B00B(
    BuiltInId::texture2DProj_Sampler2D1_Float3_Float1,
    BuiltInName::texture2DProj,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00H20B00B10C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexture2DProjBias,
    true);
constexpr const TFunction texture2DProj_00H30B00B(
    BuiltInId::texture2DProj_Sampler2D1_Float4_Float1,
    BuiltInName::texture2DProj,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00H30B00B10C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexture2DProjBias,
    true);
constexpr const TFunction textureCube_00J20B00B(
    BuiltInId::textureCube_SamplerCube1_Float3_Float1,
    BuiltInName::textureCube,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00J20B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureCubeBias,
    true);
constexpr const TFunction texture3D_00I20B00B(
    BuiltInId::texture3D_Sampler3D1_Float3_Float1,
    BuiltInName::texture3D,
    std::array<TExtension, 1u>{{TExtension::OES_texture_3D}},
    BuiltInParameters::p00I20B00B20C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexture3DBias,
    true);
constexpr const TFunction texture3DProj_00I30B00B(
    BuiltInId::texture3DProj_Sampler3D1_Float4_Float1,
    BuiltInName::texture3DProj,
    std::array<TExtension, 1u>{{TExtension::OES_texture_3D}},
    BuiltInParameters::p00I30B00B20C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexture3DProjBias,
    true);
constexpr const TFunction texture3DLod_00I20B00B(
    BuiltInId::texture3DLod_Sampler3D1_Float3_Float1,
    BuiltInName::texture3DLod,
    std::array<TExtension, 1u>{{TExtension::OES_texture_3D}},
    BuiltInParameters::p00I20B00B20C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexture3DLod,
    true);
constexpr const TFunction texture3DProjLod_00I30B00B(
    BuiltInId::texture3DProjLod_Sampler3D1_Float4_Float1,
    BuiltInName::texture3DProjLod,
    std::array<TExtension, 1u>{{TExtension::OES_texture_3D}},
    BuiltInParameters::p00I30B00B20C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexture3DProjLod,
    true);
constexpr const TFunction texture2DLod_00H10B00B(
    BuiltInId::texture2DLod_Sampler2D1_Float2_Float1,
    BuiltInName::texture2DLod,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00H10B00B10C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexture2DLodVS,
    true);
constexpr const TFunction texture2DProjLod_00H20B00B(
    BuiltInId::texture2DProjLod_Sampler2D1_Float3_Float1,
    BuiltInName::texture2DProjLod,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00H20B00B10C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexture2DProjLodVS,
    true);
constexpr const TFunction texture2DProjLod_00H30B00B(
    BuiltInId::texture2DProjLod_Sampler2D1_Float4_Float1,
    BuiltInName::texture2DProjLod,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00H30B00B10C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexture2DProjLodVS,
    true);
constexpr const TFunction textureCubeLod_00J20B00B(
    BuiltInId::textureCubeLod_SamplerCube1_Float3_Float1,
    BuiltInName::textureCubeLod,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00J20B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureCubeLodVS,
    true);
constexpr const TFunction texture2DLodEXT_00H10B00B(
    BuiltInId::texture2DLodEXT_Sampler2D1_Float2_Float1,
    BuiltInName::texture2DLodEXT,
    std::array<TExtension, 1u>{{TExtension::EXT_shader_texture_lod}},
    BuiltInParameters::p00H10B00B10C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexture2DLodEXTFS,
    true);
constexpr const TFunction texture2DProjLodEXT_00H20B00B(
    BuiltInId::texture2DProjLodEXT_Sampler2D1_Float3_Float1,
    BuiltInName::texture2DProjLodEXT,
    std::array<TExtension, 1u>{{TExtension::EXT_shader_texture_lod}},
    BuiltInParameters::p00H20B00B10C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexture2DProjLodEXTFS,
    true);
constexpr const TFunction texture2DProjLodEXT_00H30B00B(
    BuiltInId::texture2DProjLodEXT_Sampler2D1_Float4_Float1,
    BuiltInName::texture2DProjLodEXT,
    std::array<TExtension, 1u>{{TExtension::EXT_shader_texture_lod}},
    BuiltInParameters::p00H30B00B10C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexture2DProjLodEXTFS,
    true);
constexpr const TFunction textureCubeLodEXT_00J20B00B(
    BuiltInId::textureCubeLodEXT_SamplerCube1_Float3_Float1,
    BuiltInName::textureCubeLodEXT,
    std::array<TExtension, 1u>{{TExtension::EXT_shader_texture_lod}},
    BuiltInParameters::p00J20B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureCubeLodEXTFS,
    true);
constexpr const TFunction texture_00H10B(BuiltInId::texture_Sampler2D1_Float2,
                                         BuiltInName::texture,
                                         std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                         BuiltInParameters::p00H10B00B10C,
                                         2,
                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                         EOpTexture,
                                         true);
constexpr const TFunction texture_00Q10B(BuiltInId::texture_ISampler2D1_Float2,
                                         BuiltInName::texture,
                                         std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                         BuiltInParameters::p00Q10B00B10C,
                                         2,
                                         StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                         EOpTexture,
                                         true);
constexpr const TFunction texture_00W10B(BuiltInId::texture_USampler2D1_Float2,
                                         BuiltInName::texture,
                                         std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                         BuiltInParameters::p00W10B00B10C,
                                         2,
                                         StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                         EOpTexture,
                                         true);
constexpr const TFunction texture_00I20B(BuiltInId::texture_Sampler3D1_Float3,
                                         BuiltInName::texture,
                                         std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                         BuiltInParameters::p00I20B00B20C,
                                         2,
                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                         EOpTexture,
                                         true);
constexpr const TFunction texture_00R20B(BuiltInId::texture_ISampler3D1_Float3,
                                         BuiltInName::texture,
                                         std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                         BuiltInParameters::p00R20B00B20C,
                                         2,
                                         StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                         EOpTexture,
                                         true);
constexpr const TFunction texture_00X20B(BuiltInId::texture_USampler3D1_Float3,
                                         BuiltInName::texture,
                                         std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                         BuiltInParameters::p00X20B00B20C,
                                         2,
                                         StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                         EOpTexture,
                                         true);
constexpr const TFunction texture_00J20B(BuiltInId::texture_SamplerCube1_Float3,
                                         BuiltInName::texture,
                                         std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                         BuiltInParameters::p00J20B00B,
                                         2,
                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                         EOpTexture,
                                         true);
constexpr const TFunction texture_00S20B(BuiltInId::texture_ISamplerCube1_Float3,
                                         BuiltInName::texture,
                                         std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                         BuiltInParameters::p00S20B00B,
                                         2,
                                         StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                         EOpTexture,
                                         true);
constexpr const TFunction texture_00Y20B(BuiltInId::texture_USamplerCube1_Float3,
                                         BuiltInName::texture,
                                         std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                         BuiltInParameters::p00Y20B00B,
                                         2,
                                         StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                         EOpTexture,
                                         true);
constexpr const TFunction texture_00K20B(BuiltInId::texture_Sampler2DArray1_Float3,
                                         BuiltInName::texture,
                                         std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                         BuiltInParameters::p00K20B00B10C,
                                         2,
                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                         EOpTexture,
                                         true);
constexpr const TFunction texture_00T20B(BuiltInId::texture_ISampler2DArray1_Float3,
                                         BuiltInName::texture,
                                         std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                         BuiltInParameters::p00T20B00B10C,
                                         2,
                                         StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                         EOpTexture,
                                         true);
constexpr const TFunction texture_00Z20B(BuiltInId::texture_USampler2DArray1_Float3,
                                         BuiltInName::texture,
                                         std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                         BuiltInParameters::p00Z20B00B10C,
                                         2,
                                         StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                         EOpTexture,
                                         true);
constexpr const TFunction texture_00c20B(BuiltInId::texture_Sampler2DShadow1_Float3,
                                         BuiltInName::texture,
                                         std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                         BuiltInParameters::p00c20B00B10C,
                                         2,
                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                         EOpTexture,
                                         true);
constexpr const TFunction texture_00d30B(BuiltInId::texture_SamplerCubeShadow1_Float4,
                                         BuiltInName::texture,
                                         std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                         BuiltInParameters::p00d30B00B,
                                         2,
                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                         EOpTexture,
                                         true);
constexpr const TFunction texture_00e30B(BuiltInId::texture_Sampler2DArrayShadow1_Float4,
                                         BuiltInName::texture,
                                         std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                         BuiltInParameters::p00e30B00B10C,
                                         2,
                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                         EOpTexture,
                                         true);
constexpr const TFunction texture_00g30B(BuiltInId::texture_SamplerCubeArray1_Float4,
                                         BuiltInName::texture,
                                         std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                         BuiltInParameters::p00g30B00B,
                                         2,
                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                         EOpTexture,
                                         true);
constexpr const TFunction texture_00l30B(BuiltInId::texture_ISamplerCubeArray1_Float4,
                                         BuiltInName::texture,
                                         std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                         BuiltInParameters::p00l30B00B,
                                         2,
                                         StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                         EOpTexture,
                                         true);
constexpr const TFunction texture_00o30B(BuiltInId::texture_USamplerCubeArray1_Float4,
                                         BuiltInName::texture,
                                         std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                         BuiltInParameters::p00o30B00B,
                                         2,
                                         StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                         EOpTexture,
                                         true);
constexpr const TFunction texture_00h30B00B(
    BuiltInId::texture_SamplerCubeArrayShadow1_Float4_Float1,
    BuiltInName::texture,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00h30B00B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpTexture,
    true);
constexpr const TFunction textureExt_00g30B(
    BuiltInId::textureExt_SamplerCubeArray1_Float4,
    BuiltInName::textureExt,
    std::array<TExtension, 2u>{
        {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}},
    BuiltInParameters::p00g30B00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexture,
    true);
constexpr const TFunction textureExt_00l30B(
    BuiltInId::textureExt_ISamplerCubeArray1_Float4,
    BuiltInName::textureExt,
    std::array<TExtension, 2u>{
        {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}},
    BuiltInParameters::p00l30B00B,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexture,
    true);
constexpr const TFunction textureExt_00o30B(
    BuiltInId::textureExt_USamplerCubeArray1_Float4,
    BuiltInName::textureExt,
    std::array<TExtension, 2u>{
        {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}},
    BuiltInParameters::p00o30B00B,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexture,
    true);
constexpr const TFunction textureExt_00h30B00B(
    BuiltInId::textureExt_SamplerCubeArrayShadow1_Float4_Float1,
    BuiltInName::textureExt,
    std::array<TExtension, 2u>{
        {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}},
    BuiltInParameters::p00h30B00B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpTexture,
    true);
constexpr const TFunction texture_00L10B(BuiltInId::texture_SamplerExternalOES1_Float2,
                                         BuiltInName::texture,
                                         std::array<TExtension, 1u>{
                                             {TExtension::OES_EGL_image_external_essl3}},
                                         BuiltInParameters::p00L10B00B,
                                         2,
                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                         EOpTexture,
                                         true);
constexpr const TFunction texture_00M10B(BuiltInId::texture_SamplerExternal2DY2YEXT1_Float2,
                                         BuiltInName::texture,
                                         std::array<TExtension, 1u>{{TExtension::EXT_YUV_target}},
                                         BuiltInParameters::p00M10B00B,
                                         2,
                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                         EOpTexture,
                                         true);
constexpr const TFunction texture_00N10B(BuiltInId::texture_Sampler2DRect1_Float2,
                                         BuiltInName::texture,
                                         std::array<TExtension, 1u>{
                                             {TExtension::ARB_texture_rectangle}},
                                         BuiltInParameters::p00N10B,
                                         2,
                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                         EOpTexture,
                                         true);
constexpr const TFunction texture_00p10B(BuiltInId::texture_SamplerVideoWEBGL1_Float2,
                                         BuiltInName::texture,
                                         std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                         BuiltInParameters::p00p10B,
                                         2,
                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                         EOpTexture,
                                         true);
constexpr const TFunction textureProj_00H20B(
    BuiltInId::textureProj_Sampler2D1_Float3,
    BuiltInName::textureProj,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00H20B00B10C,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProj,
    true);
constexpr const TFunction textureProj_00Q20B(
    BuiltInId::textureProj_ISampler2D1_Float3,
    BuiltInName::textureProj,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Q20B00B10C,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProj,
    true);
constexpr const TFunction textureProj_00W20B(
    BuiltInId::textureProj_USampler2D1_Float3,
    BuiltInName::textureProj,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00W20B00B10C,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProj,
    true);
constexpr const TFunction textureProj_00H30B(
    BuiltInId::textureProj_Sampler2D1_Float4,
    BuiltInName::textureProj,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00H30B00B10C,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProj,
    true);
constexpr const TFunction textureProj_00Q30B(
    BuiltInId::textureProj_ISampler2D1_Float4,
    BuiltInName::textureProj,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Q30B00B10C,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProj,
    true);
constexpr const TFunction textureProj_00W30B(
    BuiltInId::textureProj_USampler2D1_Float4,
    BuiltInName::textureProj,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00W30B00B10C,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProj,
    true);
constexpr const TFunction textureProj_00I30B(
    BuiltInId::textureProj_Sampler3D1_Float4,
    BuiltInName::textureProj,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00I30B00B20C,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProj,
    true);
constexpr const TFunction textureProj_00R30B(
    BuiltInId::textureProj_ISampler3D1_Float4,
    BuiltInName::textureProj,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00R30B00B20C,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProj,
    true);
constexpr const TFunction textureProj_00X30B(
    BuiltInId::textureProj_USampler3D1_Float4,
    BuiltInName::textureProj,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00X30B00B20C,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProj,
    true);
constexpr const TFunction textureProj_00c30B(
    BuiltInId::textureProj_Sampler2DShadow1_Float4,
    BuiltInName::textureProj,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00c30B00B10C,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpTextureProj,
    true);
constexpr const TFunction textureProj_00L20B(
    BuiltInId::textureProj_SamplerExternalOES1_Float3,
    BuiltInName::textureProj,
    std::array<TExtension, 1u>{{TExtension::OES_EGL_image_external_essl3}},
    BuiltInParameters::p00L20B00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProj,
    true);
constexpr const TFunction textureProj_00L30B(
    BuiltInId::textureProj_SamplerExternalOES1_Float4,
    BuiltInName::textureProj,
    std::array<TExtension, 1u>{{TExtension::OES_EGL_image_external_essl3}},
    BuiltInParameters::p00L30B00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProj,
    true);
constexpr const TFunction textureProj_00M20B(
    BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float3,
    BuiltInName::textureProj,
    std::array<TExtension, 1u>{{TExtension::EXT_YUV_target}},
    BuiltInParameters::p00M20B00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProj,
    true);
constexpr const TFunction textureProj_00M30B(
    BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float4,
    BuiltInName::textureProj,
    std::array<TExtension, 1u>{{TExtension::EXT_YUV_target}},
    BuiltInParameters::p00M30B00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProj,
    true);
constexpr const TFunction textureProj_00N20B(
    BuiltInId::textureProj_Sampler2DRect1_Float3,
    BuiltInName::textureProj,
    std::array<TExtension, 1u>{{TExtension::ARB_texture_rectangle}},
    BuiltInParameters::p00N20B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProj,
    true);
constexpr const TFunction textureProj_00N30B(
    BuiltInId::textureProj_Sampler2DRect1_Float4,
    BuiltInName::textureProj,
    std::array<TExtension, 1u>{{TExtension::ARB_texture_rectangle}},
    BuiltInParameters::p00N30B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProj,
    true);
constexpr const TFunction textureLod_00H10B00B(
    BuiltInId::textureLod_Sampler2D1_Float2_Float1,
    BuiltInName::textureLod,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00H10B00B10C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureLod,
    true);
constexpr const TFunction textureLod_00Q10B00B(
    BuiltInId::textureLod_ISampler2D1_Float2_Float1,
    BuiltInName::textureLod,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Q10B00B10C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureLod,
    true);
constexpr const TFunction textureLod_00W10B00B(
    BuiltInId::textureLod_USampler2D1_Float2_Float1,
    BuiltInName::textureLod,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00W10B00B10C,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureLod,
    true);
constexpr const TFunction textureLod_00I20B00B(
    BuiltInId::textureLod_Sampler3D1_Float3_Float1,
    BuiltInName::textureLod,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00I20B00B20C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureLod,
    true);
constexpr const TFunction textureLod_00R20B00B(
    BuiltInId::textureLod_ISampler3D1_Float3_Float1,
    BuiltInName::textureLod,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00R20B00B20C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureLod,
    true);
constexpr const TFunction textureLod_00X20B00B(
    BuiltInId::textureLod_USampler3D1_Float3_Float1,
    BuiltInName::textureLod,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00X20B00B20C,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureLod,
    true);
constexpr const TFunction textureLod_00J20B00B(
    BuiltInId::textureLod_SamplerCube1_Float3_Float1,
    BuiltInName::textureLod,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00J20B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureLod,
    true);
constexpr const TFunction textureLod_00S20B00B(
    BuiltInId::textureLod_ISamplerCube1_Float3_Float1,
    BuiltInName::textureLod,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00S20B00B,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureLod,
    true);
constexpr const TFunction textureLod_00Y20B00B(
    BuiltInId::textureLod_USamplerCube1_Float3_Float1,
    BuiltInName::textureLod,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Y20B00B,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureLod,
    true);
constexpr const TFunction textureLod_00K20B00B(
    BuiltInId::textureLod_Sampler2DArray1_Float3_Float1,
    BuiltInName::textureLod,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00K20B00B10C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureLod,
    true);
constexpr const TFunction textureLod_00T20B00B(
    BuiltInId::textureLod_ISampler2DArray1_Float3_Float1,
    BuiltInName::textureLod,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00T20B00B10C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureLod,
    true);
constexpr const TFunction textureLod_00Z20B00B(
    BuiltInId::textureLod_USampler2DArray1_Float3_Float1,
    BuiltInName::textureLod,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Z20B00B10C,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureLod,
    true);
constexpr const TFunction textureLod_00c20B00B(
    BuiltInId::textureLod_Sampler2DShadow1_Float3_Float1,
    BuiltInName::textureLod,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00c20B00B10C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpTextureLod,
    true);
constexpr const TFunction textureLod_00d30B00B(
    BuiltInId::textureLod_SamplerCubeShadow1_Float4_Float1,
    BuiltInName::textureLod,
    std::array<TExtension, 1u>{{TExtension::EXT_texture_shadow_lod}},
    BuiltInParameters::p00d30B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpTextureLod,
    true);
constexpr const TFunction textureLod_00e30B00B(
    BuiltInId::textureLod_Sampler2DArrayShadow1_Float4_Float1,
    BuiltInName::textureLod,
    std::array<TExtension, 1u>{{TExtension::EXT_texture_shadow_lod}},
    BuiltInParameters::p00e30B00B10C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpTextureLod,
    true);
constexpr const TFunction textureLod_00h30B00B00B(
    BuiltInId::textureLod_SamplerCubeArrayShadow1_Float4_Float1_Float1,
    BuiltInName::textureLod,
    std::array<TExtension, 1u>{{TExtension::EXT_texture_shadow_lod}},
    BuiltInParameters::p00h30B00B00B,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpTextureLod,
    true);
constexpr const TFunction textureLod_00g30B00B(
    BuiltInId::textureLod_SamplerCubeArray1_Float4_Float1,
    BuiltInName::textureLod,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00g30B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureLod,
    true);
constexpr const TFunction textureLod_00l30B00B(
    BuiltInId::textureLod_ISamplerCubeArray1_Float4_Float1,
    BuiltInName::textureLod,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00l30B00B,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureLod,
    true);
constexpr const TFunction textureLod_00o30B00B(
    BuiltInId::textureLod_USamplerCubeArray1_Float4_Float1,
    BuiltInName::textureLod,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00o30B00B,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureLod,
    true);
constexpr const TFunction textureLodExt_00g30B00B(
    BuiltInId::textureLodExt_SamplerCubeArray1_Float4_Float1,
    BuiltInName::textureLodExt,
    std::array<TExtension, 2u>{
        {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}},
    BuiltInParameters::p00g30B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureLod,
    true);
constexpr const TFunction textureLodExt_00l30B00B(
    BuiltInId::textureLodExt_ISamplerCubeArray1_Float4_Float1,
    BuiltInName::textureLodExt,
    std::array<TExtension, 2u>{
        {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}},
    BuiltInParameters::p00l30B00B,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureLod,
    true);
constexpr const TFunction textureLodExt_00o30B00B(
    BuiltInId::textureLodExt_USamplerCubeArray1_Float4_Float1,
    BuiltInName::textureLodExt,
    std::array<TExtension, 2u>{
        {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}},
    BuiltInParameters::p00o30B00B,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureLod,
    true);
constexpr const TFunction textureSize_00H00C(
    BuiltInId::textureSize_Sampler2D1_Int1,
    BuiltInName::textureSize,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00H00C,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpTextureSize,
    true);
constexpr const TFunction textureSize_00Q00C(
    BuiltInId::textureSize_ISampler2D1_Int1,
    BuiltInName::textureSize,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Q00C,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpTextureSize,
    true);
constexpr const TFunction textureSize_00W00C(
    BuiltInId::textureSize_USampler2D1_Int1,
    BuiltInName::textureSize,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00W00C,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpTextureSize,
    true);
constexpr const TFunction textureSize_00I00C(
    BuiltInId::textureSize_Sampler3D1_Int1,
    BuiltInName::textureSize,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00I00C,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpTextureSize,
    true);
constexpr const TFunction textureSize_00R00C(
    BuiltInId::textureSize_ISampler3D1_Int1,
    BuiltInName::textureSize,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00R00C,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpTextureSize,
    true);
constexpr const TFunction textureSize_00X00C(
    BuiltInId::textureSize_USampler3D1_Int1,
    BuiltInName::textureSize,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00X00C,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpTextureSize,
    true);
constexpr const TFunction textureSize_00J00C(
    BuiltInId::textureSize_SamplerCube1_Int1,
    BuiltInName::textureSize,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00J00C,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpTextureSize,
    true);
constexpr const TFunction textureSize_00S00C(
    BuiltInId::textureSize_ISamplerCube1_Int1,
    BuiltInName::textureSize,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00S00C,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpTextureSize,
    true);
constexpr const TFunction textureSize_00Y00C(
    BuiltInId::textureSize_USamplerCube1_Int1,
    BuiltInName::textureSize,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Y00C,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpTextureSize,
    true);
constexpr const TFunction textureSize_00K00C(
    BuiltInId::textureSize_Sampler2DArray1_Int1,
    BuiltInName::textureSize,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00K00C,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpTextureSize,
    true);
constexpr const TFunction textureSize_00T00C(
    BuiltInId::textureSize_ISampler2DArray1_Int1,
    BuiltInName::textureSize,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00T00C,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpTextureSize,
    true);
constexpr const TFunction textureSize_00Z00C(
    BuiltInId::textureSize_USampler2DArray1_Int1,
    BuiltInName::textureSize,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Z00C,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpTextureSize,
    true);
constexpr const TFunction textureSize_00c00C(
    BuiltInId::textureSize_Sampler2DShadow1_Int1,
    BuiltInName::textureSize,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00c00C,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpTextureSize,
    true);
constexpr const TFunction textureSize_00d00C(
    BuiltInId::textureSize_SamplerCubeShadow1_Int1,
    BuiltInName::textureSize,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00d00C,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpTextureSize,
    true);
constexpr const TFunction textureSize_00e00C(
    BuiltInId::textureSize_Sampler2DArrayShadow1_Int1,
    BuiltInName::textureSize,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00e00C,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpTextureSize,
    true);
constexpr const TFunction textureSize_00g00C(
    BuiltInId::textureSize_SamplerCubeArray1_Int1,
    BuiltInName::textureSize,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00g00C,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpTextureSize,
    true);
constexpr const TFunction textureSize_00l00C(
    BuiltInId::textureSize_ISamplerCubeArray1_Int1,
    BuiltInName::textureSize,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00l00C,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpTextureSize,
    true);
constexpr const TFunction textureSize_00o00C(
    BuiltInId::textureSize_USamplerCubeArray1_Int1,
    BuiltInName::textureSize,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00o00C,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpTextureSize,
    true);
constexpr const TFunction textureSize_00h00C(
    BuiltInId::textureSize_SamplerCubeArrayShadow1_Int1,
    BuiltInName::textureSize,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00h00C,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpTextureSize,
    true);
constexpr const TFunction textureSizeExt_00g00C(
    BuiltInId::textureSizeExt_SamplerCubeArray1_Int1,
    BuiltInName::textureSizeExt,
    std::array<TExtension, 2u>{
        {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}},
    BuiltInParameters::p00g00C,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpTextureSize,
    true);
constexpr const TFunction textureSizeExt_00l00C(
    BuiltInId::textureSizeExt_ISamplerCubeArray1_Int1,
    BuiltInName::textureSizeExt,
    std::array<TExtension, 2u>{
        {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}},
    BuiltInParameters::p00l00C,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpTextureSize,
    true);
constexpr const TFunction textureSizeExt_00o00C(
    BuiltInId::textureSizeExt_USamplerCubeArray1_Int1,
    BuiltInName::textureSizeExt,
    std::array<TExtension, 2u>{
        {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}},
    BuiltInParameters::p00o00C,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpTextureSize,
    true);
constexpr const TFunction textureSizeExt_00h00C(
    BuiltInId::textureSizeExt_SamplerCubeArrayShadow1_Int1,
    BuiltInName::textureSizeExt,
    std::array<TExtension, 2u>{
        {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}},
    BuiltInParameters::p00h00C,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpTextureSize,
    true);
constexpr const TFunction textureSize_00f(BuiltInId::textureSize_SamplerBuffer1,
                                          BuiltInName::textureSize,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p00f00C,
                                          1,
                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                          EOpTextureSize,
                                          true);
constexpr const TFunction textureSize_00k(BuiltInId::textureSize_ISamplerBuffer1,
                                          BuiltInName::textureSize,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p00k00C,
                                          1,
                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                          EOpTextureSize,
                                          true);
constexpr const TFunction textureSize_00n(BuiltInId::textureSize_USamplerBuffer1,
                                          BuiltInName::textureSize,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p00n00C,
                                          1,
                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                          EOpTextureSize,
                                          true);
constexpr const TFunction textureSizeExt_00f(
    BuiltInId::textureSizeExt_SamplerBuffer1,
    BuiltInName::textureSizeExt,
    std::array<TExtension, 2u>{{TExtension::OES_texture_buffer, TExtension::EXT_texture_buffer}},
    BuiltInParameters::p00f00C,
    1,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpTextureSize,
    true);
constexpr const TFunction textureSizeExt_00k(
    BuiltInId::textureSizeExt_ISamplerBuffer1,
    BuiltInName::textureSizeExt,
    std::array<TExtension, 2u>{{TExtension::OES_texture_buffer, TExtension::EXT_texture_buffer}},
    BuiltInParameters::p00k00C,
    1,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpTextureSize,
    true);
constexpr const TFunction textureSizeExt_00n(
    BuiltInId::textureSizeExt_USamplerBuffer1,
    BuiltInName::textureSizeExt,
    std::array<TExtension, 2u>{{TExtension::OES_texture_buffer, TExtension::EXT_texture_buffer}},
    BuiltInParameters::p00n00C,
    1,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpTextureSize,
    true);
constexpr const TFunction textureSize_00O(BuiltInId::textureSize_Sampler2DMS1,
                                          BuiltInName::textureSize,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p00O10C00C,
                                          1,
                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                          EOpTextureSize,
                                          true);
constexpr const TFunction textureSize_00U(BuiltInId::textureSize_ISampler2DMS1,
                                          BuiltInName::textureSize,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p00U10C00C,
                                          1,
                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                          EOpTextureSize,
                                          true);
constexpr const TFunction textureSize_00a(BuiltInId::textureSize_USampler2DMS1,
                                          BuiltInName::textureSize,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p00a10C00C,
                                          1,
                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                          EOpTextureSize,
                                          true);
constexpr const TFunction textureSizeExt_00O(
    BuiltInId::textureSizeExt_Sampler2DMS1,
    BuiltInName::textureSizeExt,
    std::array<TExtension, 1u>{{TExtension::ANGLE_texture_multisample}},
    BuiltInParameters::p00O10C00C,
    1,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpTextureSize,
    true);
constexpr const TFunction textureSizeExt_00U(
    BuiltInId::textureSizeExt_ISampler2DMS1,
    BuiltInName::textureSizeExt,
    std::array<TExtension, 1u>{{TExtension::ANGLE_texture_multisample}},
    BuiltInParameters::p00U10C00C,
    1,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpTextureSize,
    true);
constexpr const TFunction textureSizeExt_00a(
    BuiltInId::textureSizeExt_USampler2DMS1,
    BuiltInName::textureSizeExt,
    std::array<TExtension, 1u>{{TExtension::ANGLE_texture_multisample}},
    BuiltInParameters::p00a10C00C,
    1,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpTextureSize,
    true);
constexpr const TFunction textureSize_00P(BuiltInId::textureSize_Sampler2DMSArray1,
                                          BuiltInName::textureSize,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p00P20C00C,
                                          1,
                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                          EOpTextureSize,
                                          true);
constexpr const TFunction textureSize_00V(BuiltInId::textureSize_ISampler2DMSArray1,
                                          BuiltInName::textureSize,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p00V20C00C,
                                          1,
                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                          EOpTextureSize,
                                          true);
constexpr const TFunction textureSize_00b(BuiltInId::textureSize_USampler2DMSArray1,
                                          BuiltInName::textureSize,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p00b20C00C,
                                          1,
                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                          EOpTextureSize,
                                          true);
constexpr const TFunction textureSizeExt_00P(
    BuiltInId::textureSizeExt_Sampler2DMSArray1,
    BuiltInName::textureSizeExt,
    std::array<TExtension, 1u>{{TExtension::OES_texture_storage_multisample_2d_array}},
    BuiltInParameters::p00P20C00C,
    1,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpTextureSize,
    true);
constexpr const TFunction textureSizeExt_00V(
    BuiltInId::textureSizeExt_ISampler2DMSArray1,
    BuiltInName::textureSizeExt,
    std::array<TExtension, 1u>{{TExtension::OES_texture_storage_multisample_2d_array}},
    BuiltInParameters::p00V20C00C,
    1,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpTextureSize,
    true);
constexpr const TFunction textureSizeExt_00b(
    BuiltInId::textureSizeExt_USampler2DMSArray1,
    BuiltInName::textureSizeExt,
    std::array<TExtension, 1u>{{TExtension::OES_texture_storage_multisample_2d_array}},
    BuiltInParameters::p00b20C00C,
    1,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpTextureSize,
    true);
constexpr const TFunction textureSize_00L00C(
    BuiltInId::textureSize_SamplerExternalOES1_Int1,
    BuiltInName::textureSize,
    std::array<TExtension, 1u>{{TExtension::OES_EGL_image_external_essl3}},
    BuiltInParameters::p00L00C,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpTextureSize,
    true);
constexpr const TFunction textureSize_00M00C(
    BuiltInId::textureSize_SamplerExternal2DY2YEXT1_Int1,
    BuiltInName::textureSize,
    std::array<TExtension, 1u>{{TExtension::EXT_YUV_target}},
    BuiltInParameters::p00M00C,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpTextureSize,
    true);
constexpr const TFunction textureProjLod_00H20B00B(
    BuiltInId::textureProjLod_Sampler2D1_Float3_Float1,
    BuiltInName::textureProjLod,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00H20B00B10C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjLod,
    true);
constexpr const TFunction textureProjLod_00Q20B00B(
    BuiltInId::textureProjLod_ISampler2D1_Float3_Float1,
    BuiltInName::textureProjLod,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Q20B00B10C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjLod,
    true);
constexpr const TFunction textureProjLod_00W20B00B(
    BuiltInId::textureProjLod_USampler2D1_Float3_Float1,
    BuiltInName::textureProjLod,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00W20B00B10C,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjLod,
    true);
constexpr const TFunction textureProjLod_00H30B00B(
    BuiltInId::textureProjLod_Sampler2D1_Float4_Float1,
    BuiltInName::textureProjLod,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00H30B00B10C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjLod,
    true);
constexpr const TFunction textureProjLod_00Q30B00B(
    BuiltInId::textureProjLod_ISampler2D1_Float4_Float1,
    BuiltInName::textureProjLod,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Q30B00B10C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjLod,
    true);
constexpr const TFunction textureProjLod_00W30B00B(
    BuiltInId::textureProjLod_USampler2D1_Float4_Float1,
    BuiltInName::textureProjLod,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00W30B00B10C,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjLod,
    true);
constexpr const TFunction textureProjLod_00I30B00B(
    BuiltInId::textureProjLod_Sampler3D1_Float4_Float1,
    BuiltInName::textureProjLod,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00I30B00B20C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjLod,
    true);
constexpr const TFunction textureProjLod_00R30B00B(
    BuiltInId::textureProjLod_ISampler3D1_Float4_Float1,
    BuiltInName::textureProjLod,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00R30B00B20C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjLod,
    true);
constexpr const TFunction textureProjLod_00X30B00B(
    BuiltInId::textureProjLod_USampler3D1_Float4_Float1,
    BuiltInName::textureProjLod,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00X30B00B20C,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjLod,
    true);
constexpr const TFunction textureProjLod_00c30B00B(
    BuiltInId::textureProjLod_Sampler2DShadow1_Float4_Float1,
    BuiltInName::textureProjLod,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00c30B00B10C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpTextureProjLod,
    true);
constexpr const TFunction texelFetch_00H10C00C(
    BuiltInId::texelFetch_Sampler2D1_Int2_Int1,
    BuiltInName::texelFetch,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00H10C00C10C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexelFetch,
    true);
constexpr const TFunction texelFetch_00Q10C00C(
    BuiltInId::texelFetch_ISampler2D1_Int2_Int1,
    BuiltInName::texelFetch,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Q10C00C10C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexelFetch,
    true);
constexpr const TFunction texelFetch_00W10C00C(
    BuiltInId::texelFetch_USampler2D1_Int2_Int1,
    BuiltInName::texelFetch,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00W10C00C10C,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexelFetch,
    true);
constexpr const TFunction texelFetch_00I20C00C(
    BuiltInId::texelFetch_Sampler3D1_Int3_Int1,
    BuiltInName::texelFetch,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00I20C00C20C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexelFetch,
    true);
constexpr const TFunction texelFetch_00R20C00C(
    BuiltInId::texelFetch_ISampler3D1_Int3_Int1,
    BuiltInName::texelFetch,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00R20C00C20C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexelFetch,
    true);
constexpr const TFunction texelFetch_00X20C00C(
    BuiltInId::texelFetch_USampler3D1_Int3_Int1,
    BuiltInName::texelFetch,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00X20C00C20C,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexelFetch,
    true);
constexpr const TFunction texelFetch_00K20C00C(
    BuiltInId::texelFetch_Sampler2DArray1_Int3_Int1,
    BuiltInName::texelFetch,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00K20C00C10C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexelFetch,
    true);
constexpr const TFunction texelFetch_00T20C00C(
    BuiltInId::texelFetch_ISampler2DArray1_Int3_Int1,
    BuiltInName::texelFetch,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00T20C00C10C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexelFetch,
    true);
constexpr const TFunction texelFetch_00Z20C00C(
    BuiltInId::texelFetch_USampler2DArray1_Int3_Int1,
    BuiltInName::texelFetch,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Z20C00C10C,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexelFetch,
    true);
constexpr const TFunction texelFetch_00f00C(
    BuiltInId::texelFetch_SamplerBuffer1_Int1,
    BuiltInName::texelFetch,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00f00C,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexelFetch,
    true);
constexpr const TFunction texelFetch_00k00C(
    BuiltInId::texelFetch_ISamplerBuffer1_Int1,
    BuiltInName::texelFetch,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00k00C,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexelFetch,
    true);
constexpr const TFunction texelFetch_00n00C(
    BuiltInId::texelFetch_USamplerBuffer1_Int1,
    BuiltInName::texelFetch,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00n00C,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexelFetch,
    true);
constexpr const TFunction texelFetchExt_00f00C(
    BuiltInId::texelFetchExt_SamplerBuffer1_Int1,
    BuiltInName::texelFetchExt,
    std::array<TExtension, 2u>{{TExtension::OES_texture_buffer, TExtension::EXT_texture_buffer}},
    BuiltInParameters::p00f00C,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexelFetch,
    true);
constexpr const TFunction texelFetchExt_00k00C(
    BuiltInId::texelFetchExt_ISamplerBuffer1_Int1,
    BuiltInName::texelFetchExt,
    std::array<TExtension, 2u>{{TExtension::OES_texture_buffer, TExtension::EXT_texture_buffer}},
    BuiltInParameters::p00k00C,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexelFetch,
    true);
constexpr const TFunction texelFetchExt_00n00C(
    BuiltInId::texelFetchExt_USamplerBuffer1_Int1,
    BuiltInName::texelFetchExt,
    std::array<TExtension, 2u>{{TExtension::OES_texture_buffer, TExtension::EXT_texture_buffer}},
    BuiltInParameters::p00n00C,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexelFetch,
    true);
constexpr const TFunction texelFetch_00O10C00C(
    BuiltInId::texelFetch_Sampler2DMS1_Int2_Int1,
    BuiltInName::texelFetch,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00O10C00C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexelFetch,
    true);
constexpr const TFunction texelFetch_00U10C00C(
    BuiltInId::texelFetch_ISampler2DMS1_Int2_Int1,
    BuiltInName::texelFetch,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00U10C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexelFetch,
    true);
constexpr const TFunction texelFetch_00a10C00C(
    BuiltInId::texelFetch_USampler2DMS1_Int2_Int1,
    BuiltInName::texelFetch,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00a10C00C,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexelFetch,
    true);
constexpr const TFunction texelFetchExt_00O10C00C(
    BuiltInId::texelFetchExt_Sampler2DMS1_Int2_Int1,
    BuiltInName::texelFetchExt,
    std::array<TExtension, 1u>{{TExtension::ANGLE_texture_multisample}},
    BuiltInParameters::p00O10C00C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexelFetch,
    true);
constexpr const TFunction texelFetchExt_00U10C00C(
    BuiltInId::texelFetchExt_ISampler2DMS1_Int2_Int1,
    BuiltInName::texelFetchExt,
    std::array<TExtension, 1u>{{TExtension::ANGLE_texture_multisample}},
    BuiltInParameters::p00U10C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexelFetch,
    true);
constexpr const TFunction texelFetchExt_00a10C00C(
    BuiltInId::texelFetchExt_USampler2DMS1_Int2_Int1,
    BuiltInName::texelFetchExt,
    std::array<TExtension, 1u>{{TExtension::ANGLE_texture_multisample}},
    BuiltInParameters::p00a10C00C,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexelFetch,
    true);
constexpr const TFunction texelFetch_00P20C00C(
    BuiltInId::texelFetch_Sampler2DMSArray1_Int3_Int1,
    BuiltInName::texelFetch,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00P20C00C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexelFetch,
    true);
constexpr const TFunction texelFetch_00V20C00C(
    BuiltInId::texelFetch_ISampler2DMSArray1_Int3_Int1,
    BuiltInName::texelFetch,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00V20C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexelFetch,
    true);
constexpr const TFunction texelFetch_00b20C00C(
    BuiltInId::texelFetch_USampler2DMSArray1_Int3_Int1,
    BuiltInName::texelFetch,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00b20C00C,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexelFetch,
    true);
constexpr const TFunction texelFetchExt_00P20C00C(
    BuiltInId::texelFetchExt_Sampler2DMSArray1_Int3_Int1,
    BuiltInName::texelFetchExt,
    std::array<TExtension, 1u>{{TExtension::OES_texture_storage_multisample_2d_array}},
    BuiltInParameters::p00P20C00C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexelFetch,
    true);
constexpr const TFunction texelFetchExt_00V20C00C(
    BuiltInId::texelFetchExt_ISampler2DMSArray1_Int3_Int1,
    BuiltInName::texelFetchExt,
    std::array<TExtension, 1u>{{TExtension::OES_texture_storage_multisample_2d_array}},
    BuiltInParameters::p00V20C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexelFetch,
    true);
constexpr const TFunction texelFetchExt_00b20C00C(
    BuiltInId::texelFetchExt_USampler2DMSArray1_Int3_Int1,
    BuiltInName::texelFetchExt,
    std::array<TExtension, 1u>{{TExtension::OES_texture_storage_multisample_2d_array}},
    BuiltInParameters::p00b20C00C,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexelFetch,
    true);
constexpr const TFunction texelFetch_00L10C00C(
    BuiltInId::texelFetch_SamplerExternalOES1_Int2_Int1,
    BuiltInName::texelFetch,
    std::array<TExtension, 1u>{{TExtension::OES_EGL_image_external_essl3}},
    BuiltInParameters::p00L10C00C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexelFetch,
    true);
constexpr const TFunction texelFetch_00M10C00C(
    BuiltInId::texelFetch_SamplerExternal2DY2YEXT1_Int2_Int1,
    BuiltInName::texelFetch,
    std::array<TExtension, 1u>{{TExtension::EXT_YUV_target}},
    BuiltInParameters::p00M10C00C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexelFetch,
    true);
constexpr const TFunction textureGrad_00H10B10B10B(
    BuiltInId::textureGrad_Sampler2D1_Float2_Float2_Float2,
    BuiltInName::textureGrad,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00H10B10B10B10C,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGrad,
    true);
constexpr const TFunction textureGrad_00Q10B10B10B(
    BuiltInId::textureGrad_ISampler2D1_Float2_Float2_Float2,
    BuiltInName::textureGrad,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Q10B10B10B10C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGrad,
    true);
constexpr const TFunction textureGrad_00W10B10B10B(
    BuiltInId::textureGrad_USampler2D1_Float2_Float2_Float2,
    BuiltInName::textureGrad,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00W10B10B10B10C,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGrad,
    true);
constexpr const TFunction textureGrad_00I20B20B20B(
    BuiltInId::textureGrad_Sampler3D1_Float3_Float3_Float3,
    BuiltInName::textureGrad,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00I20B20B20B20C,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGrad,
    true);
constexpr const TFunction textureGrad_00R20B20B20B(
    BuiltInId::textureGrad_ISampler3D1_Float3_Float3_Float3,
    BuiltInName::textureGrad,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00R20B20B20B20C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGrad,
    true);
constexpr const TFunction textureGrad_00X20B20B20B(
    BuiltInId::textureGrad_USampler3D1_Float3_Float3_Float3,
    BuiltInName::textureGrad,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00X20B20B20B20C,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGrad,
    true);
constexpr const TFunction textureGrad_00J20B20B20B(
    BuiltInId::textureGrad_SamplerCube1_Float3_Float3_Float3,
    BuiltInName::textureGrad,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00J20B20B20B,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGrad,
    true);
constexpr const TFunction textureGrad_00S20B20B20B(
    BuiltInId::textureGrad_ISamplerCube1_Float3_Float3_Float3,
    BuiltInName::textureGrad,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00S20B20B20B,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGrad,
    true);
constexpr const TFunction textureGrad_00Y20B20B20B(
    BuiltInId::textureGrad_USamplerCube1_Float3_Float3_Float3,
    BuiltInName::textureGrad,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Y20B20B20B,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGrad,
    true);
constexpr const TFunction textureGrad_00c20B10B10B(
    BuiltInId::textureGrad_Sampler2DShadow1_Float3_Float2_Float2,
    BuiltInName::textureGrad,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00c20B10B10B10C,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpTextureGrad,
    true);
constexpr const TFunction textureGrad_00d30B20B20B(
    BuiltInId::textureGrad_SamplerCubeShadow1_Float4_Float3_Float3,
    BuiltInName::textureGrad,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00d30B20B20B,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpTextureGrad,
    true);
constexpr const TFunction textureGrad_00K20B10B10B(
    BuiltInId::textureGrad_Sampler2DArray1_Float3_Float2_Float2,
    BuiltInName::textureGrad,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00K20B10B10B10C,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGrad,
    true);
constexpr const TFunction textureGrad_00T20B10B10B(
    BuiltInId::textureGrad_ISampler2DArray1_Float3_Float2_Float2,
    BuiltInName::textureGrad,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00T20B10B10B10C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGrad,
    true);
constexpr const TFunction textureGrad_00Z20B10B10B(
    BuiltInId::textureGrad_USampler2DArray1_Float3_Float2_Float2,
    BuiltInName::textureGrad,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Z20B10B10B10C,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGrad,
    true);
constexpr const TFunction textureGrad_00e30B10B10B(
    BuiltInId::textureGrad_Sampler2DArrayShadow1_Float4_Float2_Float2,
    BuiltInName::textureGrad,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00e30B10B10B10C,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpTextureGrad,
    true);
constexpr const TFunction textureGrad_00g30B20B20B(
    BuiltInId::textureGrad_SamplerCubeArray1_Float4_Float3_Float3,
    BuiltInName::textureGrad,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00g30B20B20B,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGrad,
    true);
constexpr const TFunction textureGrad_00l30B20B20B(
    BuiltInId::textureGrad_ISamplerCubeArray1_Float4_Float3_Float3,
    BuiltInName::textureGrad,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00l30B20B20B,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGrad,
    true);
constexpr const TFunction textureGrad_00o30B20B20B(
    BuiltInId::textureGrad_USamplerCubeArray1_Float4_Float3_Float3,
    BuiltInName::textureGrad,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00o30B20B20B,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGrad,
    true);
constexpr const TFunction textureGradExt_00g30B20B20B(
    BuiltInId::textureGradExt_SamplerCubeArray1_Float4_Float3_Float3,
    BuiltInName::textureGradExt,
    std::array<TExtension, 2u>{
        {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}},
    BuiltInParameters::p00g30B20B20B,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGrad,
    true);
constexpr const TFunction textureGradExt_00l30B20B20B(
    BuiltInId::textureGradExt_ISamplerCubeArray1_Float4_Float3_Float3,
    BuiltInName::textureGradExt,
    std::array<TExtension, 2u>{
        {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}},
    BuiltInParameters::p00l30B20B20B,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGrad,
    true);
constexpr const TFunction textureGradExt_00o30B20B20B(
    BuiltInId::textureGradExt_USamplerCubeArray1_Float4_Float3_Float3,
    BuiltInName::textureGradExt,
    std::array<TExtension, 2u>{
        {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}},
    BuiltInParameters::p00o30B20B20B,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGrad,
    true);
constexpr const TFunction textureProjGrad_00H20B10B10B(
    BuiltInId::textureProjGrad_Sampler2D1_Float3_Float2_Float2,
    BuiltInName::textureProjGrad,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00H20B10B10B10C,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjGrad,
    true);
constexpr const TFunction textureProjGrad_00Q20B10B10B(
    BuiltInId::textureProjGrad_ISampler2D1_Float3_Float2_Float2,
    BuiltInName::textureProjGrad,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Q20B10B10B10C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjGrad,
    true);
constexpr const TFunction textureProjGrad_00W20B10B10B(
    BuiltInId::textureProjGrad_USampler2D1_Float3_Float2_Float2,
    BuiltInName::textureProjGrad,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00W20B10B10B10C,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjGrad,
    true);
constexpr const TFunction textureProjGrad_00H30B10B10B(
    BuiltInId::textureProjGrad_Sampler2D1_Float4_Float2_Float2,
    BuiltInName::textureProjGrad,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00H30B10B10B10C,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjGrad,
    true);
constexpr const TFunction textureProjGrad_00Q30B10B10B(
    BuiltInId::textureProjGrad_ISampler2D1_Float4_Float2_Float2,
    BuiltInName::textureProjGrad,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Q30B10B10B10C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjGrad,
    true);
constexpr const TFunction textureProjGrad_00W30B10B10B(
    BuiltInId::textureProjGrad_USampler2D1_Float4_Float2_Float2,
    BuiltInName::textureProjGrad,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00W30B10B10B10C,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjGrad,
    true);
constexpr const TFunction textureProjGrad_00I30B20B20B(
    BuiltInId::textureProjGrad_Sampler3D1_Float4_Float3_Float3,
    BuiltInName::textureProjGrad,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00I30B20B20B20C,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjGrad,
    true);
constexpr const TFunction textureProjGrad_00R30B20B20B(
    BuiltInId::textureProjGrad_ISampler3D1_Float4_Float3_Float3,
    BuiltInName::textureProjGrad,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00R30B20B20B20C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjGrad,
    true);
constexpr const TFunction textureProjGrad_00X30B20B20B(
    BuiltInId::textureProjGrad_USampler3D1_Float4_Float3_Float3,
    BuiltInName::textureProjGrad,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00X30B20B20B20C,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjGrad,
    true);
constexpr const TFunction textureProjGrad_00c30B10B10B(
    BuiltInId::textureProjGrad_Sampler2DShadow1_Float4_Float2_Float2,
    BuiltInName::textureProjGrad,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00c30B10B10B10C,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpTextureProjGrad,
    true);
constexpr const TFunction texture_00H10B00B(
    BuiltInId::texture_Sampler2D1_Float2_Float1,
    BuiltInName::texture,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00H10B00B10C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureBias,
    true);
constexpr const TFunction texture_00Q10B00B(
    BuiltInId::texture_ISampler2D1_Float2_Float1,
    BuiltInName::texture,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Q10B00B10C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureBias,
    true);
constexpr const TFunction texture_00W10B00B(
    BuiltInId::texture_USampler2D1_Float2_Float1,
    BuiltInName::texture,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00W10B00B10C,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureBias,
    true);
constexpr const TFunction texture_00I20B00B(
    BuiltInId::texture_Sampler3D1_Float3_Float1,
    BuiltInName::texture,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00I20B00B20C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureBias,
    true);
constexpr const TFunction texture_00R20B00B(
    BuiltInId::texture_ISampler3D1_Float3_Float1,
    BuiltInName::texture,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00R20B00B20C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureBias,
    true);
constexpr const TFunction texture_00X20B00B(
    BuiltInId::texture_USampler3D1_Float3_Float1,
    BuiltInName::texture,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00X20B00B20C,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureBias,
    true);
constexpr const TFunction texture_00J20B00B(
    BuiltInId::texture_SamplerCube1_Float3_Float1,
    BuiltInName::texture,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00J20B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureBias,
    true);
constexpr const TFunction texture_00S20B00B(
    BuiltInId::texture_ISamplerCube1_Float3_Float1,
    BuiltInName::texture,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00S20B00B,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureBias,
    true);
constexpr const TFunction texture_00Y20B00B(
    BuiltInId::texture_USamplerCube1_Float3_Float1,
    BuiltInName::texture,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Y20B00B,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureBias,
    true);
constexpr const TFunction texture_00K20B00B(
    BuiltInId::texture_Sampler2DArray1_Float3_Float1,
    BuiltInName::texture,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00K20B00B10C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureBias,
    true);
constexpr const TFunction texture_00T20B00B(
    BuiltInId::texture_ISampler2DArray1_Float3_Float1,
    BuiltInName::texture,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00T20B00B10C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureBias,
    true);
constexpr const TFunction texture_00Z20B00B(
    BuiltInId::texture_USampler2DArray1_Float3_Float1,
    BuiltInName::texture,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Z20B00B10C,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureBias,
    true);
constexpr const TFunction textureProj_00H20B00B(
    BuiltInId::textureProj_Sampler2D1_Float3_Float1,
    BuiltInName::textureProj,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00H20B00B10C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjBias,
    true);
constexpr const TFunction textureProj_00Q20B00B(
    BuiltInId::textureProj_ISampler2D1_Float3_Float1,
    BuiltInName::textureProj,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Q20B00B10C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjBias,
    true);
constexpr const TFunction textureProj_00W20B00B(
    BuiltInId::textureProj_USampler2D1_Float3_Float1,
    BuiltInName::textureProj,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00W20B00B10C,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjBias,
    true);
constexpr const TFunction textureProj_00H30B00B(
    BuiltInId::textureProj_Sampler2D1_Float4_Float1,
    BuiltInName::textureProj,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00H30B00B10C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjBias,
    true);
constexpr const TFunction textureProj_00Q30B00B(
    BuiltInId::textureProj_ISampler2D1_Float4_Float1,
    BuiltInName::textureProj,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Q30B00B10C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjBias,
    true);
constexpr const TFunction textureProj_00W30B00B(
    BuiltInId::textureProj_USampler2D1_Float4_Float1,
    BuiltInName::textureProj,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00W30B00B10C,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjBias,
    true);
constexpr const TFunction textureProj_00I30B00B(
    BuiltInId::textureProj_Sampler3D1_Float4_Float1,
    BuiltInName::textureProj,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00I30B00B20C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjBias,
    true);
constexpr const TFunction textureProj_00R30B00B(
    BuiltInId::textureProj_ISampler3D1_Float4_Float1,
    BuiltInName::textureProj,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00R30B00B20C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjBias,
    true);
constexpr const TFunction textureProj_00X30B00B(
    BuiltInId::textureProj_USampler3D1_Float4_Float1,
    BuiltInName::textureProj,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00X30B00B20C,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjBias,
    true);
constexpr const TFunction texture_00c20B00B(
    BuiltInId::texture_Sampler2DShadow1_Float3_Float1,
    BuiltInName::texture,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00c20B00B10C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpTextureBias,
    true);
constexpr const TFunction texture_00d30B00B(
    BuiltInId::texture_SamplerCubeShadow1_Float4_Float1,
    BuiltInName::texture,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00d30B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpTextureBias,
    true);
constexpr const TFunction textureProj_00c30B00B(
    BuiltInId::textureProj_Sampler2DShadow1_Float4_Float1,
    BuiltInName::textureProj,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00c30B00B10C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpTextureProjBias,
    true);
constexpr const TFunction texture_00e30B00B(
    BuiltInId::texture_Sampler2DArrayShadow1_Float4_Float1,
    BuiltInName::texture,
    std::array<TExtension, 1u>{{TExtension::EXT_texture_shadow_lod}},
    BuiltInParameters::p00e30B00B10C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpTextureBias,
    true);
constexpr const TFunction texture_00g30B00B(
    BuiltInId::texture_SamplerCubeArray1_Float4_Float1,
    BuiltInName::texture,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00g30B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureBias,
    true);
constexpr const TFunction texture_00l30B00B(
    BuiltInId::texture_ISamplerCubeArray1_Float4_Float1,
    BuiltInName::texture,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00l30B00B,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureBias,
    true);
constexpr const TFunction texture_00o30B00B(
    BuiltInId::texture_USamplerCubeArray1_Float4_Float1,
    BuiltInName::texture,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00o30B00B,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureBias,
    true);
constexpr const TFunction textureExt_00g30B00B(
    BuiltInId::textureExt_SamplerCubeArray1_Float4_Float1,
    BuiltInName::textureExt,
    std::array<TExtension, 2u>{
        {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}},
    BuiltInParameters::p00g30B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureBias,
    true);
constexpr const TFunction textureExt_00l30B00B(
    BuiltInId::textureExt_ISamplerCubeArray1_Float4_Float1,
    BuiltInName::textureExt,
    std::array<TExtension, 2u>{
        {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}},
    BuiltInParameters::p00l30B00B,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureBias,
    true);
constexpr const TFunction textureExt_00o30B00B(
    BuiltInId::textureExt_USamplerCubeArray1_Float4_Float1,
    BuiltInName::textureExt,
    std::array<TExtension, 2u>{
        {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}},
    BuiltInParameters::p00o30B00B,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureBias,
    true);
constexpr const TFunction texture_00h30B00B00B(
    BuiltInId::texture_SamplerCubeArrayShadow1_Float4_Float1_Float1,
    BuiltInName::texture,
    std::array<TExtension, 1u>{{TExtension::EXT_texture_shadow_lod}},
    BuiltInParameters::p00h30B00B00B,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpTextureBias,
    true);
constexpr const TFunction texture_00L10B00B(
    BuiltInId::texture_SamplerExternalOES1_Float2_Float1,
    BuiltInName::texture,
    std::array<TExtension, 1u>{{TExtension::OES_EGL_image_external_essl3}},
    BuiltInParameters::p00L10B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureBias,
    true);
constexpr const TFunction textureProj_00L20B00B(
    BuiltInId::textureProj_SamplerExternalOES1_Float3_Float1,
    BuiltInName::textureProj,
    std::array<TExtension, 1u>{{TExtension::OES_EGL_image_external_essl3}},
    BuiltInParameters::p00L20B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjBias,
    true);
constexpr const TFunction textureProj_00L30B00B(
    BuiltInId::textureProj_SamplerExternalOES1_Float4_Float1,
    BuiltInName::textureProj,
    std::array<TExtension, 1u>{{TExtension::OES_EGL_image_external_essl3}},
    BuiltInParameters::p00L30B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjBias,
    true);
constexpr const TFunction texture_00M10B00B(
    BuiltInId::texture_SamplerExternal2DY2YEXT1_Float2_Float1,
    BuiltInName::texture,
    std::array<TExtension, 1u>{{TExtension::EXT_YUV_target}},
    BuiltInParameters::p00M10B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureBias,
    true);
constexpr const TFunction textureProj_00M20B00B(
    BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float3_Float1,
    BuiltInName::textureProj,
    std::array<TExtension, 1u>{{TExtension::EXT_YUV_target}},
    BuiltInParameters::p00M20B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjBias,
    true);
constexpr const TFunction textureProj_00M30B00B(
    BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float4_Float1,
    BuiltInName::textureProj,
    std::array<TExtension, 1u>{{TExtension::EXT_YUV_target}},
    BuiltInParameters::p00M30B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjBias,
    true);
constexpr const TFunction textureOffset_00H10B10C(
    BuiltInId::textureOffset_Sampler2D1_Float2_Int2,
    BuiltInName::textureOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00H10B10C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureOffset,
    true);
constexpr const TFunction textureOffset_00Q10B10C(
    BuiltInId::textureOffset_ISampler2D1_Float2_Int2,
    BuiltInName::textureOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Q10B10C00B,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureOffset,
    true);
constexpr const TFunction textureOffset_00W10B10C(
    BuiltInId::textureOffset_USampler2D1_Float2_Int2,
    BuiltInName::textureOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00W10B10C00B,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureOffset,
    true);
constexpr const TFunction textureOffset_00I20B20C(
    BuiltInId::textureOffset_Sampler3D1_Float3_Int3,
    BuiltInName::textureOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00I20B20C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureOffset,
    true);
constexpr const TFunction textureOffset_00R20B20C(
    BuiltInId::textureOffset_ISampler3D1_Float3_Int3,
    BuiltInName::textureOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00R20B20C00B,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureOffset,
    true);
constexpr const TFunction textureOffset_00X20B20C(
    BuiltInId::textureOffset_USampler3D1_Float3_Int3,
    BuiltInName::textureOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00X20B20C00B,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureOffset,
    true);
constexpr const TFunction textureOffset_00c20B10C(
    BuiltInId::textureOffset_Sampler2DShadow1_Float3_Int2,
    BuiltInName::textureOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00c20B10C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpTextureOffset,
    true);
constexpr const TFunction textureOffset_00K20B10C(
    BuiltInId::textureOffset_Sampler2DArray1_Float3_Int2,
    BuiltInName::textureOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00K20B10C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureOffset,
    true);
constexpr const TFunction textureOffset_00T20B10C(
    BuiltInId::textureOffset_ISampler2DArray1_Float3_Int2,
    BuiltInName::textureOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00T20B10C00B,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureOffset,
    true);
constexpr const TFunction textureOffset_00Z20B10C(
    BuiltInId::textureOffset_USampler2DArray1_Float3_Int2,
    BuiltInName::textureOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Z20B10C00B,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureOffset,
    true);
constexpr const TFunction textureOffset_00e30B10C(
    BuiltInId::textureOffset_Sampler2DArrayShadow1_Float4_Int2,
    BuiltInName::textureOffset,
    std::array<TExtension, 1u>{{TExtension::EXT_texture_shadow_lod}},
    BuiltInParameters::p00e30B10C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpTextureOffset,
    true);
constexpr const TFunction textureProjOffset_00H20B10C(
    BuiltInId::textureProjOffset_Sampler2D1_Float3_Int2,
    BuiltInName::textureProjOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00H20B10C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjOffset,
    true);
constexpr const TFunction textureProjOffset_00Q20B10C(
    BuiltInId::textureProjOffset_ISampler2D1_Float3_Int2,
    BuiltInName::textureProjOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Q20B10C00B,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjOffset,
    true);
constexpr const TFunction textureProjOffset_00W20B10C(
    BuiltInId::textureProjOffset_USampler2D1_Float3_Int2,
    BuiltInName::textureProjOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00W20B10C00B,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjOffset,
    true);
constexpr const TFunction textureProjOffset_00H30B10C(
    BuiltInId::textureProjOffset_Sampler2D1_Float4_Int2,
    BuiltInName::textureProjOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00H30B10C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjOffset,
    true);
constexpr const TFunction textureProjOffset_00Q30B10C(
    BuiltInId::textureProjOffset_ISampler2D1_Float4_Int2,
    BuiltInName::textureProjOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Q30B10C00B,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjOffset,
    true);
constexpr const TFunction textureProjOffset_00W30B10C(
    BuiltInId::textureProjOffset_USampler2D1_Float4_Int2,
    BuiltInName::textureProjOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00W30B10C00B,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjOffset,
    true);
constexpr const TFunction textureProjOffset_00I30B20C(
    BuiltInId::textureProjOffset_Sampler3D1_Float4_Int3,
    BuiltInName::textureProjOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00I30B20C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjOffset,
    true);
constexpr const TFunction textureProjOffset_00R30B20C(
    BuiltInId::textureProjOffset_ISampler3D1_Float4_Int3,
    BuiltInName::textureProjOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00R30B20C00B,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjOffset,
    true);
constexpr const TFunction textureProjOffset_00X30B20C(
    BuiltInId::textureProjOffset_USampler3D1_Float4_Int3,
    BuiltInName::textureProjOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00X30B20C00B,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjOffset,
    true);
constexpr const TFunction textureProjOffset_00c30B10C(
    BuiltInId::textureProjOffset_Sampler2DShadow1_Float4_Int2,
    BuiltInName::textureProjOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00c30B10C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpTextureProjOffset,
    true);
constexpr const TFunction textureLodOffset_00H10B00B10C(
    BuiltInId::textureLodOffset_Sampler2D1_Float2_Float1_Int2,
    BuiltInName::textureLodOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00H10B00B10C,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureLodOffset,
    true);
constexpr const TFunction textureLodOffset_00Q10B00B10C(
    BuiltInId::textureLodOffset_ISampler2D1_Float2_Float1_Int2,
    BuiltInName::textureLodOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Q10B00B10C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureLodOffset,
    true);
constexpr const TFunction textureLodOffset_00W10B00B10C(
    BuiltInId::textureLodOffset_USampler2D1_Float2_Float1_Int2,
    BuiltInName::textureLodOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00W10B00B10C,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureLodOffset,
    true);
constexpr const TFunction textureLodOffset_00I20B00B20C(
    BuiltInId::textureLodOffset_Sampler3D1_Float3_Float1_Int3,
    BuiltInName::textureLodOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00I20B00B20C,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureLodOffset,
    true);
constexpr const TFunction textureLodOffset_00R20B00B20C(
    BuiltInId::textureLodOffset_ISampler3D1_Float3_Float1_Int3,
    BuiltInName::textureLodOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00R20B00B20C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureLodOffset,
    true);
constexpr const TFunction textureLodOffset_00X20B00B20C(
    BuiltInId::textureLodOffset_USampler3D1_Float3_Float1_Int3,
    BuiltInName::textureLodOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00X20B00B20C,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureLodOffset,
    true);
constexpr const TFunction textureLodOffset_00c20B00B10C(
    BuiltInId::textureLodOffset_Sampler2DShadow1_Float3_Float1_Int2,
    BuiltInName::textureLodOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00c20B00B10C,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpTextureLodOffset,
    true);
constexpr const TFunction textureLodOffset_00K20B00B10C(
    BuiltInId::textureLodOffset_Sampler2DArray1_Float3_Float1_Int2,
    BuiltInName::textureLodOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00K20B00B10C,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureLodOffset,
    true);
constexpr const TFunction textureLodOffset_00T20B00B10C(
    BuiltInId::textureLodOffset_ISampler2DArray1_Float3_Float1_Int2,
    BuiltInName::textureLodOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00T20B00B10C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureLodOffset,
    true);
constexpr const TFunction textureLodOffset_00Z20B00B10C(
    BuiltInId::textureLodOffset_USampler2DArray1_Float3_Float1_Int2,
    BuiltInName::textureLodOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Z20B00B10C,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureLodOffset,
    true);
constexpr const TFunction textureLodOffset_00e30B00B10C(
    BuiltInId::textureLodOffset_Sampler2DArrayShadow1_Float4_Float1_Int2,
    BuiltInName::textureLodOffset,
    std::array<TExtension, 1u>{{TExtension::EXT_texture_shadow_lod}},
    BuiltInParameters::p00e30B00B10C,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpTextureLodOffset,
    true);
constexpr const TFunction textureProjLodOffset_00H20B00B10C(
    BuiltInId::textureProjLodOffset_Sampler2D1_Float3_Float1_Int2,
    BuiltInName::textureProjLodOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00H20B00B10C,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjLodOffset,
    true);
constexpr const TFunction textureProjLodOffset_00Q20B00B10C(
    BuiltInId::textureProjLodOffset_ISampler2D1_Float3_Float1_Int2,
    BuiltInName::textureProjLodOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Q20B00B10C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjLodOffset,
    true);
constexpr const TFunction textureProjLodOffset_00W20B00B10C(
    BuiltInId::textureProjLodOffset_USampler2D1_Float3_Float1_Int2,
    BuiltInName::textureProjLodOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00W20B00B10C,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjLodOffset,
    true);
constexpr const TFunction textureProjLodOffset_00H30B00B10C(
    BuiltInId::textureProjLodOffset_Sampler2D1_Float4_Float1_Int2,
    BuiltInName::textureProjLodOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00H30B00B10C,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjLodOffset,
    true);
constexpr const TFunction textureProjLodOffset_00Q30B00B10C(
    BuiltInId::textureProjLodOffset_ISampler2D1_Float4_Float1_Int2,
    BuiltInName::textureProjLodOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Q30B00B10C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjLodOffset,
    true);
constexpr const TFunction textureProjLodOffset_00W30B00B10C(
    BuiltInId::textureProjLodOffset_USampler2D1_Float4_Float1_Int2,
    BuiltInName::textureProjLodOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00W30B00B10C,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjLodOffset,
    true);
constexpr const TFunction textureProjLodOffset_00I30B00B20C(
    BuiltInId::textureProjLodOffset_Sampler3D1_Float4_Float1_Int3,
    BuiltInName::textureProjLodOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00I30B00B20C,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjLodOffset,
    true);
constexpr const TFunction textureProjLodOffset_00R30B00B20C(
    BuiltInId::textureProjLodOffset_ISampler3D1_Float4_Float1_Int3,
    BuiltInName::textureProjLodOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00R30B00B20C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjLodOffset,
    true);
constexpr const TFunction textureProjLodOffset_00X30B00B20C(
    BuiltInId::textureProjLodOffset_USampler3D1_Float4_Float1_Int3,
    BuiltInName::textureProjLodOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00X30B00B20C,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjLodOffset,
    true);
constexpr const TFunction textureProjLodOffset_00c30B00B10C(
    BuiltInId::textureProjLodOffset_Sampler2DShadow1_Float4_Float1_Int2,
    BuiltInName::textureProjLodOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00c30B00B10C,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpTextureProjLodOffset,
    true);
constexpr const TFunction texelFetchOffset_00H10C00C10C(
    BuiltInId::texelFetchOffset_Sampler2D1_Int2_Int1_Int2,
    BuiltInName::texelFetchOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00H10C00C10C,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexelFetchOffset,
    true);
constexpr const TFunction texelFetchOffset_00Q10C00C10C(
    BuiltInId::texelFetchOffset_ISampler2D1_Int2_Int1_Int2,
    BuiltInName::texelFetchOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Q10C00C10C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexelFetchOffset,
    true);
constexpr const TFunction texelFetchOffset_00W10C00C10C(
    BuiltInId::texelFetchOffset_USampler2D1_Int2_Int1_Int2,
    BuiltInName::texelFetchOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00W10C00C10C,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexelFetchOffset,
    true);
constexpr const TFunction texelFetchOffset_00I20C00C20C(
    BuiltInId::texelFetchOffset_Sampler3D1_Int3_Int1_Int3,
    BuiltInName::texelFetchOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00I20C00C20C,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexelFetchOffset,
    true);
constexpr const TFunction texelFetchOffset_00R20C00C20C(
    BuiltInId::texelFetchOffset_ISampler3D1_Int3_Int1_Int3,
    BuiltInName::texelFetchOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00R20C00C20C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexelFetchOffset,
    true);
constexpr const TFunction texelFetchOffset_00X20C00C20C(
    BuiltInId::texelFetchOffset_USampler3D1_Int3_Int1_Int3,
    BuiltInName::texelFetchOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00X20C00C20C,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexelFetchOffset,
    true);
constexpr const TFunction texelFetchOffset_00K20C00C10C(
    BuiltInId::texelFetchOffset_Sampler2DArray1_Int3_Int1_Int2,
    BuiltInName::texelFetchOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00K20C00C10C,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexelFetchOffset,
    true);
constexpr const TFunction texelFetchOffset_00T20C00C10C(
    BuiltInId::texelFetchOffset_ISampler2DArray1_Int3_Int1_Int2,
    BuiltInName::texelFetchOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00T20C00C10C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexelFetchOffset,
    true);
constexpr const TFunction texelFetchOffset_00Z20C00C10C(
    BuiltInId::texelFetchOffset_USampler2DArray1_Int3_Int1_Int2,
    BuiltInName::texelFetchOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Z20C00C10C,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTexelFetchOffset,
    true);
constexpr const TFunction textureGradOffset_00H10B10B10B10C(
    BuiltInId::textureGradOffset_Sampler2D1_Float2_Float2_Float2_Int2,
    BuiltInName::textureGradOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00H10B10B10B10C,
    5,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGradOffset,
    true);
constexpr const TFunction textureGradOffset_00Q10B10B10B10C(
    BuiltInId::textureGradOffset_ISampler2D1_Float2_Float2_Float2_Int2,
    BuiltInName::textureGradOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Q10B10B10B10C,
    5,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGradOffset,
    true);
constexpr const TFunction textureGradOffset_00W10B10B10B10C(
    BuiltInId::textureGradOffset_USampler2D1_Float2_Float2_Float2_Int2,
    BuiltInName::textureGradOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00W10B10B10B10C,
    5,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGradOffset,
    true);
constexpr const TFunction textureGradOffset_00I20B20B20B20C(
    BuiltInId::textureGradOffset_Sampler3D1_Float3_Float3_Float3_Int3,
    BuiltInName::textureGradOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00I20B20B20B20C,
    5,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGradOffset,
    true);
constexpr const TFunction textureGradOffset_00R20B20B20B20C(
    BuiltInId::textureGradOffset_ISampler3D1_Float3_Float3_Float3_Int3,
    BuiltInName::textureGradOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00R20B20B20B20C,
    5,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGradOffset,
    true);
constexpr const TFunction textureGradOffset_00X20B20B20B20C(
    BuiltInId::textureGradOffset_USampler3D1_Float3_Float3_Float3_Int3,
    BuiltInName::textureGradOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00X20B20B20B20C,
    5,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGradOffset,
    true);
constexpr const TFunction textureGradOffset_00c20B10B10B10C(
    BuiltInId::textureGradOffset_Sampler2DShadow1_Float3_Float2_Float2_Int2,
    BuiltInName::textureGradOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00c20B10B10B10C,
    5,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpTextureGradOffset,
    true);
constexpr const TFunction textureGradOffset_00K20B10B10B10C(
    BuiltInId::textureGradOffset_Sampler2DArray1_Float3_Float2_Float2_Int2,
    BuiltInName::textureGradOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00K20B10B10B10C,
    5,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGradOffset,
    true);
constexpr const TFunction textureGradOffset_00T20B10B10B10C(
    BuiltInId::textureGradOffset_ISampler2DArray1_Float3_Float2_Float2_Int2,
    BuiltInName::textureGradOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00T20B10B10B10C,
    5,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGradOffset,
    true);
constexpr const TFunction textureGradOffset_00Z20B10B10B10C(
    BuiltInId::textureGradOffset_USampler2DArray1_Float3_Float2_Float2_Int2,
    BuiltInName::textureGradOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Z20B10B10B10C,
    5,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGradOffset,
    true);
constexpr const TFunction textureGradOffset_00e30B10B10B10C(
    BuiltInId::textureGradOffset_Sampler2DArrayShadow1_Float4_Float2_Float2_Int2,
    BuiltInName::textureGradOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00e30B10B10B10C,
    5,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpTextureGradOffset,
    true);
constexpr const TFunction textureProjGradOffset_00H20B10B10B10C(
    BuiltInId::textureProjGradOffset_Sampler2D1_Float3_Float2_Float2_Int2,
    BuiltInName::textureProjGradOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00H20B10B10B10C,
    5,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjGradOffset,
    true);
constexpr const TFunction textureProjGradOffset_00Q20B10B10B10C(
    BuiltInId::textureProjGradOffset_ISampler2D1_Float3_Float2_Float2_Int2,
    BuiltInName::textureProjGradOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Q20B10B10B10C,
    5,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjGradOffset,
    true);
constexpr const TFunction textureProjGradOffset_00W20B10B10B10C(
    BuiltInId::textureProjGradOffset_USampler2D1_Float3_Float2_Float2_Int2,
    BuiltInName::textureProjGradOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00W20B10B10B10C,
    5,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjGradOffset,
    true);
constexpr const TFunction textureProjGradOffset_00H30B10B10B10C(
    BuiltInId::textureProjGradOffset_Sampler2D1_Float4_Float2_Float2_Int2,
    BuiltInName::textureProjGradOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00H30B10B10B10C,
    5,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjGradOffset,
    true);
constexpr const TFunction textureProjGradOffset_00Q30B10B10B10C(
    BuiltInId::textureProjGradOffset_ISampler2D1_Float4_Float2_Float2_Int2,
    BuiltInName::textureProjGradOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Q30B10B10B10C,
    5,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjGradOffset,
    true);
constexpr const TFunction textureProjGradOffset_00W30B10B10B10C(
    BuiltInId::textureProjGradOffset_USampler2D1_Float4_Float2_Float2_Int2,
    BuiltInName::textureProjGradOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00W30B10B10B10C,
    5,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjGradOffset,
    true);
constexpr const TFunction textureProjGradOffset_00I30B20B20B20C(
    BuiltInId::textureProjGradOffset_Sampler3D1_Float4_Float3_Float3_Int3,
    BuiltInName::textureProjGradOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00I30B20B20B20C,
    5,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjGradOffset,
    true);
constexpr const TFunction textureProjGradOffset_00R30B20B20B20C(
    BuiltInId::textureProjGradOffset_ISampler3D1_Float4_Float3_Float3_Int3,
    BuiltInName::textureProjGradOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00R30B20B20B20C,
    5,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjGradOffset,
    true);
constexpr const TFunction textureProjGradOffset_00X30B20B20B20C(
    BuiltInId::textureProjGradOffset_USampler3D1_Float4_Float3_Float3_Int3,
    BuiltInName::textureProjGradOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00X30B20B20B20C,
    5,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjGradOffset,
    true);
constexpr const TFunction textureProjGradOffset_00c30B10B10B10C(
    BuiltInId::textureProjGradOffset_Sampler2DShadow1_Float4_Float2_Float2_Int2,
    BuiltInName::textureProjGradOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00c30B10B10B10C,
    5,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpTextureProjGradOffset,
    true);
constexpr const TFunction textureOffset_00H10B10C00B(
    BuiltInId::textureOffset_Sampler2D1_Float2_Int2_Float1,
    BuiltInName::textureOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00H10B10C00B,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureOffsetBias,
    true);
constexpr const TFunction textureOffset_00Q10B10C00B(
    BuiltInId::textureOffset_ISampler2D1_Float2_Int2_Float1,
    BuiltInName::textureOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Q10B10C00B,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureOffsetBias,
    true);
constexpr const TFunction textureOffset_00W10B10C00B(
    BuiltInId::textureOffset_USampler2D1_Float2_Int2_Float1,
    BuiltInName::textureOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00W10B10C00B,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureOffsetBias,
    true);
constexpr const TFunction textureOffset_00I20B20C00B(
    BuiltInId::textureOffset_Sampler3D1_Float3_Int3_Float1,
    BuiltInName::textureOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00I20B20C00B,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureOffsetBias,
    true);
constexpr const TFunction textureOffset_00R20B20C00B(
    BuiltInId::textureOffset_ISampler3D1_Float3_Int3_Float1,
    BuiltInName::textureOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00R20B20C00B,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureOffsetBias,
    true);
constexpr const TFunction textureOffset_00X20B20C00B(
    BuiltInId::textureOffset_USampler3D1_Float3_Int3_Float1,
    BuiltInName::textureOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00X20B20C00B,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureOffsetBias,
    true);
constexpr const TFunction textureOffset_00c20B10C00B(
    BuiltInId::textureOffset_Sampler2DShadow1_Float3_Int2_Float1,
    BuiltInName::textureOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00c20B10C00B,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpTextureOffsetBias,
    true);
constexpr const TFunction textureOffset_00K20B10C00B(
    BuiltInId::textureOffset_Sampler2DArray1_Float3_Int2_Float1,
    BuiltInName::textureOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00K20B10C00B,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureOffsetBias,
    true);
constexpr const TFunction textureOffset_00T20B10C00B(
    BuiltInId::textureOffset_ISampler2DArray1_Float3_Int2_Float1,
    BuiltInName::textureOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00T20B10C00B,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureOffsetBias,
    true);
constexpr const TFunction textureOffset_00Z20B10C00B(
    BuiltInId::textureOffset_USampler2DArray1_Float3_Int2_Float1,
    BuiltInName::textureOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Z20B10C00B,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureOffsetBias,
    true);
constexpr const TFunction textureOffset_00e30B10C00B(
    BuiltInId::textureOffset_Sampler2DArrayShadow1_Float4_Int2_Float1,
    BuiltInName::textureOffset,
    std::array<TExtension, 1u>{{TExtension::EXT_texture_shadow_lod}},
    BuiltInParameters::p00e30B10C00B,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpTextureOffsetBias,
    true);
constexpr const TFunction textureProjOffset_00H20B10C00B(
    BuiltInId::textureProjOffset_Sampler2D1_Float3_Int2_Float1,
    BuiltInName::textureProjOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00H20B10C00B,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjOffsetBias,
    true);
constexpr const TFunction textureProjOffset_00Q20B10C00B(
    BuiltInId::textureProjOffset_ISampler2D1_Float3_Int2_Float1,
    BuiltInName::textureProjOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Q20B10C00B,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjOffsetBias,
    true);
constexpr const TFunction textureProjOffset_00W20B10C00B(
    BuiltInId::textureProjOffset_USampler2D1_Float3_Int2_Float1,
    BuiltInName::textureProjOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00W20B10C00B,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjOffsetBias,
    true);
constexpr const TFunction textureProjOffset_00H30B10C00B(
    BuiltInId::textureProjOffset_Sampler2D1_Float4_Int2_Float1,
    BuiltInName::textureProjOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00H30B10C00B,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjOffsetBias,
    true);
constexpr const TFunction textureProjOffset_00Q30B10C00B(
    BuiltInId::textureProjOffset_ISampler2D1_Float4_Int2_Float1,
    BuiltInName::textureProjOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Q30B10C00B,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjOffsetBias,
    true);
constexpr const TFunction textureProjOffset_00W30B10C00B(
    BuiltInId::textureProjOffset_USampler2D1_Float4_Int2_Float1,
    BuiltInName::textureProjOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00W30B10C00B,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjOffsetBias,
    true);
constexpr const TFunction textureProjOffset_00I30B20C00B(
    BuiltInId::textureProjOffset_Sampler3D1_Float4_Int3_Float1,
    BuiltInName::textureProjOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00I30B20C00B,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjOffsetBias,
    true);
constexpr const TFunction textureProjOffset_00R30B20C00B(
    BuiltInId::textureProjOffset_ISampler3D1_Float4_Int3_Float1,
    BuiltInName::textureProjOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00R30B20C00B,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjOffsetBias,
    true);
constexpr const TFunction textureProjOffset_00X30B20C00B(
    BuiltInId::textureProjOffset_USampler3D1_Float4_Int3_Float1,
    BuiltInName::textureProjOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00X30B20C00B,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureProjOffsetBias,
    true);
constexpr const TFunction textureProjOffset_00c30B10C00B(
    BuiltInId::textureProjOffset_Sampler2DShadow1_Float4_Int2_Float1,
    BuiltInName::textureProjOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00c30B10C00B,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpTextureProjOffsetBias,
    true);
constexpr const TFunction textureGather_00H10B(
    BuiltInId::textureGather_Sampler2D1_Float2,
    BuiltInName::textureGather,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00H10B00B10C,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGather,
    true);
constexpr const TFunction textureGather_00Q10B(
    BuiltInId::textureGather_ISampler2D1_Float2,
    BuiltInName::textureGather,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Q10B00B10C,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGather,
    true);
constexpr const TFunction textureGather_00W10B(
    BuiltInId::textureGather_USampler2D1_Float2,
    BuiltInName::textureGather,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00W10B00B10C,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGather,
    true);
constexpr const TFunction textureGather_00H10B00C(
    BuiltInId::textureGather_Sampler2D1_Float2_Int1,
    BuiltInName::textureGather,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00H10B00C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGather,
    true);
constexpr const TFunction textureGather_00Q10B00C(
    BuiltInId::textureGather_ISampler2D1_Float2_Int1,
    BuiltInName::textureGather,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Q10B00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGather,
    true);
constexpr const TFunction textureGather_00W10B00C(
    BuiltInId::textureGather_USampler2D1_Float2_Int1,
    BuiltInName::textureGather,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00W10B00C,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGather,
    true);
constexpr const TFunction textureGather_00K20B(
    BuiltInId::textureGather_Sampler2DArray1_Float3,
    BuiltInName::textureGather,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00K20B00B10C,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGather,
    true);
constexpr const TFunction textureGather_00T20B(
    BuiltInId::textureGather_ISampler2DArray1_Float3,
    BuiltInName::textureGather,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00T20B00B10C,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGather,
    true);
constexpr const TFunction textureGather_00Z20B(
    BuiltInId::textureGather_USampler2DArray1_Float3,
    BuiltInName::textureGather,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Z20B00B10C,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGather,
    true);
constexpr const TFunction textureGather_00K20B00C(
    BuiltInId::textureGather_Sampler2DArray1_Float3_Int1,
    BuiltInName::textureGather,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00K20B00C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGather,
    true);
constexpr const TFunction textureGather_00T20B00C(
    BuiltInId::textureGather_ISampler2DArray1_Float3_Int1,
    BuiltInName::textureGather,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00T20B00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGather,
    true);
constexpr const TFunction textureGather_00Z20B00C(
    BuiltInId::textureGather_USampler2DArray1_Float3_Int1,
    BuiltInName::textureGather,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Z20B00C,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGather,
    true);
constexpr const TFunction textureGather_00J20B(
    BuiltInId::textureGather_SamplerCube1_Float3,
    BuiltInName::textureGather,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00J20B00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGather,
    true);
constexpr const TFunction textureGather_00S20B(
    BuiltInId::textureGather_ISamplerCube1_Float3,
    BuiltInName::textureGather,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00S20B00B,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGather,
    true);
constexpr const TFunction textureGather_00Y20B(
    BuiltInId::textureGather_USamplerCube1_Float3,
    BuiltInName::textureGather,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Y20B00B,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGather,
    true);
constexpr const TFunction textureGather_00J20B00C(
    BuiltInId::textureGather_SamplerCube1_Float3_Int1,
    BuiltInName::textureGather,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00J20B00C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGather,
    true);
constexpr const TFunction textureGather_00S20B00C(
    BuiltInId::textureGather_ISamplerCube1_Float3_Int1,
    BuiltInName::textureGather,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00S20B00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGather,
    true);
constexpr const TFunction textureGather_00Y20B00C(
    BuiltInId::textureGather_USamplerCube1_Float3_Int1,
    BuiltInName::textureGather,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Y20B00C,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGather,
    true);
constexpr const TFunction textureGather_00g30B(
    BuiltInId::textureGather_SamplerCubeArray1_Float4,
    BuiltInName::textureGather,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00g30B00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGather,
    true);
constexpr const TFunction textureGather_00l30B(
    BuiltInId::textureGather_ISamplerCubeArray1_Float4,
    BuiltInName::textureGather,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00l30B00B,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGather,
    true);
constexpr const TFunction textureGather_00o30B(
    BuiltInId::textureGather_USamplerCubeArray1_Float4,
    BuiltInName::textureGather,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00o30B00B,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGather,
    true);
constexpr const TFunction textureGather_00g30B00C(
    BuiltInId::textureGather_SamplerCubeArray1_Float4_Int1,
    BuiltInName::textureGather,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00g30B00C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGather,
    true);
constexpr const TFunction textureGather_00l30B00C(
    BuiltInId::textureGather_ISamplerCubeArray1_Float4_Int1,
    BuiltInName::textureGather,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00l30B00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGather,
    true);
constexpr const TFunction textureGather_00o30B00C(
    BuiltInId::textureGather_USamplerCubeArray1_Float4_Int1,
    BuiltInName::textureGather,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00o30B00C,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGather,
    true);
constexpr const TFunction textureGather_00h30B00B(
    BuiltInId::textureGather_SamplerCubeArrayShadow1_Float4_Float1,
    BuiltInName::textureGather,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00h30B00B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGather,
    true);
constexpr const TFunction textureGatherExt_00g30B(
    BuiltInId::textureGatherExt_SamplerCubeArray1_Float4,
    BuiltInName::textureGatherExt,
    std::array<TExtension, 2u>{
        {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}},
    BuiltInParameters::p00g30B00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGather,
    true);
constexpr const TFunction textureGatherExt_00l30B(
    BuiltInId::textureGatherExt_ISamplerCubeArray1_Float4,
    BuiltInName::textureGatherExt,
    std::array<TExtension, 2u>{
        {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}},
    BuiltInParameters::p00l30B00B,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGather,
    true);
constexpr const TFunction textureGatherExt_00o30B(
    BuiltInId::textureGatherExt_USamplerCubeArray1_Float4,
    BuiltInName::textureGatherExt,
    std::array<TExtension, 2u>{
        {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}},
    BuiltInParameters::p00o30B00B,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGather,
    true);
constexpr const TFunction textureGatherExt_00g30B00C(
    BuiltInId::textureGatherExt_SamplerCubeArray1_Float4_Int1,
    BuiltInName::textureGatherExt,
    std::array<TExtension, 2u>{
        {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}},
    BuiltInParameters::p00g30B00C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGather,
    true);
constexpr const TFunction textureGatherExt_00l30B00C(
    BuiltInId::textureGatherExt_ISamplerCubeArray1_Float4_Int1,
    BuiltInName::textureGatherExt,
    std::array<TExtension, 2u>{
        {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}},
    BuiltInParameters::p00l30B00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGather,
    true);
constexpr const TFunction textureGatherExt_00o30B00C(
    BuiltInId::textureGatherExt_USamplerCubeArray1_Float4_Int1,
    BuiltInName::textureGatherExt,
    std::array<TExtension, 2u>{
        {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}},
    BuiltInParameters::p00o30B00C,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGather,
    true);
constexpr const TFunction textureGatherExt_00h30B00B(
    BuiltInId::textureGatherExt_SamplerCubeArrayShadow1_Float4_Float1,
    BuiltInName::textureGatherExt,
    std::array<TExtension, 2u>{
        {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}},
    BuiltInParameters::p00h30B00B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGather,
    true);
constexpr const TFunction textureGather_00c10B(
    BuiltInId::textureGather_Sampler2DShadow1_Float2,
    BuiltInName::textureGather,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00c10B00B10Cx4,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGather,
    true);
constexpr const TFunction textureGather_00c10B00B(
    BuiltInId::textureGather_Sampler2DShadow1_Float2_Float1,
    BuiltInName::textureGather,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00c10B00B10Cx4,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGather,
    true);
constexpr const TFunction textureGather_00e20B(
    BuiltInId::textureGather_Sampler2DArrayShadow1_Float3,
    BuiltInName::textureGather,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00e20B00B10Cx4,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGather,
    true);
constexpr const TFunction textureGather_00e20B00B(
    BuiltInId::textureGather_Sampler2DArrayShadow1_Float3_Float1,
    BuiltInName::textureGather,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00e20B00B10Cx4,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGather,
    true);
constexpr const TFunction textureGather_00d20B(
    BuiltInId::textureGather_SamplerCubeShadow1_Float3,
    BuiltInName::textureGather,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00d20B00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGather,
    true);
constexpr const TFunction textureGather_00d20B00B(
    BuiltInId::textureGather_SamplerCubeShadow1_Float3_Float1,
    BuiltInName::textureGather,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00d20B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGather,
    true);
constexpr const TFunction textureGatherOffset_00H10B10C(
    BuiltInId::textureGatherOffset_Sampler2D1_Float2_Int2,
    BuiltInName::textureGatherOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00H10B10C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGatherOffset,
    true);
constexpr const TFunction textureGatherOffset_00Q10B10C(
    BuiltInId::textureGatherOffset_ISampler2D1_Float2_Int2,
    BuiltInName::textureGatherOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Q10B10C00B,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGatherOffset,
    true);
constexpr const TFunction textureGatherOffset_00W10B10C(
    BuiltInId::textureGatherOffset_USampler2D1_Float2_Int2,
    BuiltInName::textureGatherOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00W10B10C00B,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGatherOffset,
    true);
constexpr const TFunction textureGatherOffset_00K20B10C(
    BuiltInId::textureGatherOffset_Sampler2DArray1_Float3_Int2,
    BuiltInName::textureGatherOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00K20B10C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGatherOffset,
    true);
constexpr const TFunction textureGatherOffset_00T20B10C(
    BuiltInId::textureGatherOffset_ISampler2DArray1_Float3_Int2,
    BuiltInName::textureGatherOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00T20B10C00B,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGatherOffset,
    true);
constexpr const TFunction textureGatherOffset_00Z20B10C(
    BuiltInId::textureGatherOffset_USampler2DArray1_Float3_Int2,
    BuiltInName::textureGatherOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Z20B10C00B,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGatherOffset,
    true);
constexpr const TFunction textureGatherOffset_00c10B00B10C(
    BuiltInId::textureGatherOffset_Sampler2DShadow1_Float2_Float1_Int2,
    BuiltInName::textureGatherOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00c10B00B10Cx4,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGatherOffset,
    true);
constexpr const TFunction textureGatherOffset_00e20B00B10C(
    BuiltInId::textureGatherOffset_Sampler2DArrayShadow1_Float3_Float1_Int2,
    BuiltInName::textureGatherOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00e20B00B10Cx4,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGatherOffset,
    true);
constexpr const TFunction textureGatherOffset_00H10B10C00C(
    BuiltInId::textureGatherOffset_Sampler2D1_Float2_Int2_Int1,
    BuiltInName::textureGatherOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00H10B10C00C,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGatherOffsetComp,
    true);
constexpr const TFunction textureGatherOffset_00Q10B10C00C(
    BuiltInId::textureGatherOffset_ISampler2D1_Float2_Int2_Int1,
    BuiltInName::textureGatherOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Q10B10C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGatherOffsetComp,
    true);
constexpr const TFunction textureGatherOffset_00W10B10C00C(
    BuiltInId::textureGatherOffset_USampler2D1_Float2_Int2_Int1,
    BuiltInName::textureGatherOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00W10B10C00C,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGatherOffsetComp,
    true);
constexpr const TFunction textureGatherOffset_00K20B10C00C(
    BuiltInId::textureGatherOffset_Sampler2DArray1_Float3_Int2_Int1,
    BuiltInName::textureGatherOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00K20B10C00C,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGatherOffsetComp,
    true);
constexpr const TFunction textureGatherOffset_00T20B10C00C(
    BuiltInId::textureGatherOffset_ISampler2DArray1_Float3_Int2_Int1,
    BuiltInName::textureGatherOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00T20B10C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGatherOffsetComp,
    true);
constexpr const TFunction textureGatherOffset_00Z20B10C00C(
    BuiltInId::textureGatherOffset_USampler2DArray1_Float3_Int2_Int1,
    BuiltInName::textureGatherOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Z20B10C00C,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGatherOffsetComp,
    true);
constexpr const TFunction textureGatherOffsets_00H10B10Cx4(
    BuiltInId::textureGatherOffsets_Sampler2D1_Float2_4xInt2,
    BuiltInName::textureGatherOffsets,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00H10B10Cx400C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGatherOffsets,
    true);
constexpr const TFunction textureGatherOffsets_00Q10B10Cx4(
    BuiltInId::textureGatherOffsets_ISampler2D1_Float2_4xInt2,
    BuiltInName::textureGatherOffsets,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Q10B10Cx400C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGatherOffsets,
    true);
constexpr const TFunction textureGatherOffsets_00W10B10Cx4(
    BuiltInId::textureGatherOffsets_USampler2D1_Float2_4xInt2,
    BuiltInName::textureGatherOffsets,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00W10B10Cx400C,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGatherOffsets,
    true);
constexpr const TFunction textureGatherOffsets_00K20B10Cx4(
    BuiltInId::textureGatherOffsets_Sampler2DArray1_Float3_4xInt2,
    BuiltInName::textureGatherOffsets,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00K20B10Cx400C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGatherOffsets,
    true);
constexpr const TFunction textureGatherOffsets_00T20B10Cx4(
    BuiltInId::textureGatherOffsets_ISampler2DArray1_Float3_4xInt2,
    BuiltInName::textureGatherOffsets,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00T20B10Cx400C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGatherOffsets,
    true);
constexpr const TFunction textureGatherOffsets_00Z20B10Cx4(
    BuiltInId::textureGatherOffsets_USampler2DArray1_Float3_4xInt2,
    BuiltInName::textureGatherOffsets,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Z20B10Cx400C,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGatherOffsets,
    true);
constexpr const TFunction textureGatherOffsets_00c10B00B10Cx4(
    BuiltInId::textureGatherOffsets_Sampler2DShadow1_Float2_Float1_4xInt2,
    BuiltInName::textureGatherOffsets,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00c10B00B10Cx4,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGatherOffsets,
    true);
constexpr const TFunction textureGatherOffsets_00e20B00B10Cx4(
    BuiltInId::textureGatherOffsets_Sampler2DArrayShadow1_Float3_Float1_4xInt2,
    BuiltInName::textureGatherOffsets,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00e20B00B10Cx4,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGatherOffsets,
    true);
constexpr const TFunction textureGatherOffsetsExt_00H10B10Cx4(
    BuiltInId::textureGatherOffsetsExt_Sampler2D1_Float2_4xInt2,
    BuiltInName::textureGatherOffsetsExt,
    std::array<TExtension, 2u>{{TExtension::EXT_gpu_shader5, TExtension::OES_gpu_shader5}},
    BuiltInParameters::p00H10B10Cx400C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGatherOffsets,
    true);
constexpr const TFunction textureGatherOffsetsExt_00Q10B10Cx4(
    BuiltInId::textureGatherOffsetsExt_ISampler2D1_Float2_4xInt2,
    BuiltInName::textureGatherOffsetsExt,
    std::array<TExtension, 2u>{{TExtension::EXT_gpu_shader5, TExtension::OES_gpu_shader5}},
    BuiltInParameters::p00Q10B10Cx400C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGatherOffsets,
    true);
constexpr const TFunction textureGatherOffsetsExt_00W10B10Cx4(
    BuiltInId::textureGatherOffsetsExt_USampler2D1_Float2_4xInt2,
    BuiltInName::textureGatherOffsetsExt,
    std::array<TExtension, 2u>{{TExtension::EXT_gpu_shader5, TExtension::OES_gpu_shader5}},
    BuiltInParameters::p00W10B10Cx400C,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGatherOffsets,
    true);
constexpr const TFunction textureGatherOffsetsExt_00K20B10Cx4(
    BuiltInId::textureGatherOffsetsExt_Sampler2DArray1_Float3_4xInt2,
    BuiltInName::textureGatherOffsetsExt,
    std::array<TExtension, 2u>{{TExtension::EXT_gpu_shader5, TExtension::OES_gpu_shader5}},
    BuiltInParameters::p00K20B10Cx400C,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGatherOffsets,
    true);
constexpr const TFunction textureGatherOffsetsExt_00T20B10Cx4(
    BuiltInId::textureGatherOffsetsExt_ISampler2DArray1_Float3_4xInt2,
    BuiltInName::textureGatherOffsetsExt,
    std::array<TExtension, 2u>{{TExtension::EXT_gpu_shader5, TExtension::OES_gpu_shader5}},
    BuiltInParameters::p00T20B10Cx400C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGatherOffsets,
    true);
constexpr const TFunction textureGatherOffsetsExt_00Z20B10Cx4(
    BuiltInId::textureGatherOffsetsExt_USampler2DArray1_Float3_4xInt2,
    BuiltInName::textureGatherOffsetsExt,
    std::array<TExtension, 2u>{{TExtension::EXT_gpu_shader5, TExtension::OES_gpu_shader5}},
    BuiltInParameters::p00Z20B10Cx400C,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGatherOffsets,
    true);
constexpr const TFunction textureGatherOffsetsExt_00c10B00B10Cx4(
    BuiltInId::textureGatherOffsetsExt_Sampler2DShadow1_Float2_Float1_4xInt2,
    BuiltInName::textureGatherOffsetsExt,
    std::array<TExtension, 2u>{{TExtension::EXT_gpu_shader5, TExtension::OES_gpu_shader5}},
    BuiltInParameters::p00c10B00B10Cx4,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGatherOffsets,
    true);
constexpr const TFunction textureGatherOffsetsExt_00e20B00B10Cx4(
    BuiltInId::textureGatherOffsetsExt_Sampler2DArrayShadow1_Float3_Float1_4xInt2,
    BuiltInName::textureGatherOffsetsExt,
    std::array<TExtension, 2u>{{TExtension::EXT_gpu_shader5, TExtension::OES_gpu_shader5}},
    BuiltInParameters::p00e20B00B10Cx4,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGatherOffsets,
    true);
constexpr const TFunction textureGatherOffsets_00H10B10Cx400C(
    BuiltInId::textureGatherOffsets_Sampler2D1_Float2_4xInt2_Int1,
    BuiltInName::textureGatherOffsets,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00H10B10Cx400C,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGatherOffsetsComp,
    true);
constexpr const TFunction textureGatherOffsets_00Q10B10Cx400C(
    BuiltInId::textureGatherOffsets_ISampler2D1_Float2_4xInt2_Int1,
    BuiltInName::textureGatherOffsets,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Q10B10Cx400C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGatherOffsetsComp,
    true);
constexpr const TFunction textureGatherOffsets_00W10B10Cx400C(
    BuiltInId::textureGatherOffsets_USampler2D1_Float2_4xInt2_Int1,
    BuiltInName::textureGatherOffsets,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00W10B10Cx400C,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGatherOffsetsComp,
    true);
constexpr const TFunction textureGatherOffsets_00K20B10Cx400C(
    BuiltInId::textureGatherOffsets_Sampler2DArray1_Float3_4xInt2_Int1,
    BuiltInName::textureGatherOffsets,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00K20B10Cx400C,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGatherOffsetsComp,
    true);
constexpr const TFunction textureGatherOffsets_00T20B10Cx400C(
    BuiltInId::textureGatherOffsets_ISampler2DArray1_Float3_4xInt2_Int1,
    BuiltInName::textureGatherOffsets,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00T20B10Cx400C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGatherOffsetsComp,
    true);
constexpr const TFunction textureGatherOffsets_00Z20B10Cx400C(
    BuiltInId::textureGatherOffsets_USampler2DArray1_Float3_4xInt2_Int1,
    BuiltInName::textureGatherOffsets,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00Z20B10Cx400C,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGatherOffsetsComp,
    true);
constexpr const TFunction textureGatherOffsetsExt_00H10B10Cx400C(
    BuiltInId::textureGatherOffsetsExt_Sampler2D1_Float2_4xInt2_Int1,
    BuiltInName::textureGatherOffsetsExt,
    std::array<TExtension, 2u>{{TExtension::EXT_gpu_shader5, TExtension::OES_gpu_shader5}},
    BuiltInParameters::p00H10B10Cx400C,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGatherOffsetsComp,
    true);
constexpr const TFunction textureGatherOffsetsExt_00Q10B10Cx400C(
    BuiltInId::textureGatherOffsetsExt_ISampler2D1_Float2_4xInt2_Int1,
    BuiltInName::textureGatherOffsetsExt,
    std::array<TExtension, 2u>{{TExtension::EXT_gpu_shader5, TExtension::OES_gpu_shader5}},
    BuiltInParameters::p00Q10B10Cx400C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGatherOffsetsComp,
    true);
constexpr const TFunction textureGatherOffsetsExt_00W10B10Cx400C(
    BuiltInId::textureGatherOffsetsExt_USampler2D1_Float2_4xInt2_Int1,
    BuiltInName::textureGatherOffsetsExt,
    std::array<TExtension, 2u>{{TExtension::EXT_gpu_shader5, TExtension::OES_gpu_shader5}},
    BuiltInParameters::p00W10B10Cx400C,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGatherOffsetsComp,
    true);
constexpr const TFunction textureGatherOffsetsExt_00K20B10Cx400C(
    BuiltInId::textureGatherOffsetsExt_Sampler2DArray1_Float3_4xInt2_Int1,
    BuiltInName::textureGatherOffsetsExt,
    std::array<TExtension, 2u>{{TExtension::EXT_gpu_shader5, TExtension::OES_gpu_shader5}},
    BuiltInParameters::p00K20B10Cx400C,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGatherOffsetsComp,
    true);
constexpr const TFunction textureGatherOffsetsExt_00T20B10Cx400C(
    BuiltInId::textureGatherOffsetsExt_ISampler2DArray1_Float3_4xInt2_Int1,
    BuiltInName::textureGatherOffsetsExt,
    std::array<TExtension, 2u>{{TExtension::EXT_gpu_shader5, TExtension::OES_gpu_shader5}},
    BuiltInParameters::p00T20B10Cx400C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGatherOffsetsComp,
    true);
constexpr const TFunction textureGatherOffsetsExt_00Z20B10Cx400C(
    BuiltInId::textureGatherOffsetsExt_USampler2DArray1_Float3_4xInt2_Int1,
    BuiltInName::textureGatherOffsetsExt,
    std::array<TExtension, 2u>{{TExtension::EXT_gpu_shader5, TExtension::OES_gpu_shader5}},
    BuiltInParameters::p00Z20B10Cx400C,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpTextureGatherOffsetsComp,
    true);
constexpr const TFunction textureQueryLOD_00H10B(
    BuiltInId::textureQueryLOD_Sampler2D1_Float2,
    BuiltInName::textureQueryLOD,
    std::array<TExtension, 1u>{{TExtension::EXT_texture_query_lod}},
    BuiltInParameters::p00H10B00B10C,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpTextureQueryLOD,
    true);
constexpr const TFunction textureQueryLOD_00Q10B(
    BuiltInId::textureQueryLOD_ISampler2D1_Float2,
    BuiltInName::textureQueryLOD,
    std::array<TExtension, 1u>{{TExtension::EXT_texture_query_lod}},
    BuiltInParameters::p00Q10B00B10C,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpTextureQueryLOD,
    true);
constexpr const TFunction textureQueryLOD_00W10B(
    BuiltInId::textureQueryLOD_USampler2D1_Float2,
    BuiltInName::textureQueryLOD,
    std::array<TExtension, 1u>{{TExtension::EXT_texture_query_lod}},
    BuiltInParameters::p00W10B00B10C,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpTextureQueryLOD,
    true);
constexpr const TFunction textureQueryLOD_00I20B(
    BuiltInId::textureQueryLOD_Sampler3D1_Float3,
    BuiltInName::textureQueryLOD,
    std::array<TExtension, 1u>{{TExtension::EXT_texture_query_lod}},
    BuiltInParameters::p00I20B00B20C,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpTextureQueryLOD,
    true);
constexpr const TFunction textureQueryLOD_00R20B(
    BuiltInId::textureQueryLOD_ISampler3D1_Float3,
    BuiltInName::textureQueryLOD,
    std::array<TExtension, 1u>{{TExtension::EXT_texture_query_lod}},
    BuiltInParameters::p00R20B00B20C,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpTextureQueryLOD,
    true);
constexpr const TFunction textureQueryLOD_00X20B(
    BuiltInId::textureQueryLOD_USampler3D1_Float3,
    BuiltInName::textureQueryLOD,
    std::array<TExtension, 1u>{{TExtension::EXT_texture_query_lod}},
    BuiltInParameters::p00X20B00B20C,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpTextureQueryLOD,
    true);
constexpr const TFunction textureQueryLOD_00J20B(
    BuiltInId::textureQueryLOD_SamplerCube1_Float3,
    BuiltInName::textureQueryLOD,
    std::array<TExtension, 1u>{{TExtension::EXT_texture_query_lod}},
    BuiltInParameters::p00J20B00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpTextureQueryLOD,
    true);
constexpr const TFunction textureQueryLOD_00S20B(
    BuiltInId::textureQueryLOD_ISamplerCube1_Float3,
    BuiltInName::textureQueryLOD,
    std::array<TExtension, 1u>{{TExtension::EXT_texture_query_lod}},
    BuiltInParameters::p00S20B00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpTextureQueryLOD,
    true);
constexpr const TFunction textureQueryLOD_00Y20B(
    BuiltInId::textureQueryLOD_USamplerCube1_Float3,
    BuiltInName::textureQueryLOD,
    std::array<TExtension, 1u>{{TExtension::EXT_texture_query_lod}},
    BuiltInParameters::p00Y20B00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpTextureQueryLOD,
    true);
constexpr const TFunction textureQueryLOD_00K10B(
    BuiltInId::textureQueryLOD_Sampler2DArray1_Float2,
    BuiltInName::textureQueryLOD,
    std::array<TExtension, 1u>{{TExtension::EXT_texture_query_lod}},
    BuiltInParameters::p00K10B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpTextureQueryLOD,
    true);
constexpr const TFunction textureQueryLOD_00T10B(
    BuiltInId::textureQueryLOD_ISampler2DArray1_Float2,
    BuiltInName::textureQueryLOD,
    std::array<TExtension, 1u>{{TExtension::EXT_texture_query_lod}},
    BuiltInParameters::p00T10B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpTextureQueryLOD,
    true);
constexpr const TFunction textureQueryLOD_00Z10B(
    BuiltInId::textureQueryLOD_USampler2DArray1_Float2,
    BuiltInName::textureQueryLOD,
    std::array<TExtension, 1u>{{TExtension::EXT_texture_query_lod}},
    BuiltInParameters::p00Z10B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpTextureQueryLOD,
    true);
constexpr const TFunction textureQueryLOD_00c10B(
    BuiltInId::textureQueryLOD_Sampler2DShadow1_Float2,
    BuiltInName::textureQueryLOD,
    std::array<TExtension, 1u>{{TExtension::EXT_texture_query_lod}},
    BuiltInParameters::p00c10B00B10Cx4,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpTextureQueryLOD,
    true);
constexpr const TFunction textureQueryLOD_00d20B(
    BuiltInId::textureQueryLOD_SamplerCubeShadow1_Float3,
    BuiltInName::textureQueryLOD,
    std::array<TExtension, 1u>{{TExtension::EXT_texture_query_lod}},
    BuiltInParameters::p00d20B00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpTextureQueryLOD,
    true);
constexpr const TFunction textureQueryLOD_00e10B(
    BuiltInId::textureQueryLOD_Sampler2DArrayShadow1_Float2,
    BuiltInName::textureQueryLOD,
    std::array<TExtension, 1u>{{TExtension::EXT_texture_query_lod}},
    BuiltInParameters::p00e10B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpTextureQueryLOD,
    true);
constexpr const TFunction textureQueryLOD_00g20B(
    BuiltInId::textureQueryLOD_SamplerCubeArray1_Float3,
    BuiltInName::textureQueryLOD,
    std::array<TExtension, 1u>{{TExtension::EXT_texture_query_lod}},
    BuiltInParameters::p00g20B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpTextureQueryLOD,
    true);
constexpr const TFunction textureQueryLOD_00l20B(
    BuiltInId::textureQueryLOD_ISamplerCubeArray1_Float3,
    BuiltInName::textureQueryLOD,
    std::array<TExtension, 1u>{{TExtension::EXT_texture_query_lod}},
    BuiltInParameters::p00l20B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpTextureQueryLOD,
    true);
constexpr const TFunction textureQueryLOD_00o20B(
    BuiltInId::textureQueryLOD_USamplerCubeArray1_Float3,
    BuiltInName::textureQueryLOD,
    std::array<TExtension, 1u>{{TExtension::EXT_texture_query_lod}},
    BuiltInParameters::p00o20B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpTextureQueryLOD,
    true);
constexpr const TFunction textureQueryLOD_00h20B(
    BuiltInId::textureQueryLOD_SamplerCubeArrayShadow1_Float3,
    BuiltInName::textureQueryLOD,
    std::array<TExtension, 1u>{{TExtension::EXT_texture_query_lod}},
    BuiltInParameters::p00h20B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpTextureQueryLOD,
    true);
constexpr const TFunction rgb_2_yuv_20B00G(
    BuiltInId::rgb_2_yuv_Float3_YuvCscStandardEXT1,
    BuiltInName::rgb_2_yuv,
    std::array<TExtension, 1u>{{TExtension::EXT_YUV_target}},
    BuiltInParameters::p20B00G,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpRgb_2_yuv,
    true);
constexpr const TFunction yuv_2_rgb_20B00G(
    BuiltInId::yuv_2_rgb_Float3_YuvCscStandardEXT1,
    BuiltInName::yuv_2_rgb,
    std::array<TExtension, 1u>{{TExtension::EXT_YUV_target}},
    BuiltInParameters::p20B00G,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpYuv_2_rgb,
    true);
constexpr const TFunction dFdxExt_00B(BuiltInId::dFdxExt_Float1,
                                      BuiltInName::dFdxExt,
                                      std::array<TExtension, 1u>{
                                          {TExtension::OES_standard_derivatives}},
                                      BuiltInParameters::p00B00B00B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                      EOpDFdx,
                                      true);
constexpr const TFunction dFdxExt_10B(BuiltInId::dFdxExt_Float2,
                                      BuiltInName::dFdxExt,
                                      std::array<TExtension, 1u>{
                                          {TExtension::OES_standard_derivatives}},
                                      BuiltInParameters::p10B00B00B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                      EOpDFdx,
                                      true);
constexpr const TFunction dFdxExt_20B(BuiltInId::dFdxExt_Float3,
                                      BuiltInName::dFdxExt,
                                      std::array<TExtension, 1u>{
                                          {TExtension::OES_standard_derivatives}},
                                      BuiltInParameters::p20B00B00B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                      EOpDFdx,
                                      true);
constexpr const TFunction dFdxExt_30B(BuiltInId::dFdxExt_Float4,
                                      BuiltInName::dFdxExt,
                                      std::array<TExtension, 1u>{
                                          {TExtension::OES_standard_derivatives}},
                                      BuiltInParameters::p30B00B00B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                      EOpDFdx,
                                      true);
constexpr const TFunction dFdyExt_00B(BuiltInId::dFdyExt_Float1,
                                      BuiltInName::dFdyExt,
                                      std::array<TExtension, 1u>{
                                          {TExtension::OES_standard_derivatives}},
                                      BuiltInParameters::p00B00B00B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                      EOpDFdy,
                                      true);
constexpr const TFunction dFdyExt_10B(BuiltInId::dFdyExt_Float2,
                                      BuiltInName::dFdyExt,
                                      std::array<TExtension, 1u>{
                                          {TExtension::OES_standard_derivatives}},
                                      BuiltInParameters::p10B00B00B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                      EOpDFdy,
                                      true);
constexpr const TFunction dFdyExt_20B(BuiltInId::dFdyExt_Float3,
                                      BuiltInName::dFdyExt,
                                      std::array<TExtension, 1u>{
                                          {TExtension::OES_standard_derivatives}},
                                      BuiltInParameters::p20B00B00B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                      EOpDFdy,
                                      true);
constexpr const TFunction dFdyExt_30B(BuiltInId::dFdyExt_Float4,
                                      BuiltInName::dFdyExt,
                                      std::array<TExtension, 1u>{
                                          {TExtension::OES_standard_derivatives}},
                                      BuiltInParameters::p30B00B00B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                      EOpDFdy,
                                      true);
constexpr const TFunction fwidthExt_00B(BuiltInId::fwidthExt_Float1,
                                        BuiltInName::fwidthExt,
                                        std::array<TExtension, 1u>{
                                            {TExtension::OES_standard_derivatives}},
                                        BuiltInParameters::p00B00B00B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                        EOpFwidth,
                                        true);
constexpr const TFunction fwidthExt_10B(BuiltInId::fwidthExt_Float2,
                                        BuiltInName::fwidthExt,
                                        std::array<TExtension, 1u>{
                                            {TExtension::OES_standard_derivatives}},
                                        BuiltInParameters::p10B00B00B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpFwidth,
                                        true);
constexpr const TFunction fwidthExt_20B(BuiltInId::fwidthExt_Float3,
                                        BuiltInName::fwidthExt,
                                        std::array<TExtension, 1u>{
                                            {TExtension::OES_standard_derivatives}},
                                        BuiltInParameters::p20B00B00B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpFwidth,
                                        true);
constexpr const TFunction fwidthExt_30B(BuiltInId::fwidthExt_Float4,
                                        BuiltInName::fwidthExt,
                                        std::array<TExtension, 1u>{
                                            {TExtension::OES_standard_derivatives}},
                                        BuiltInParameters::p30B00B00B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                        EOpFwidth,
                                        true);
constexpr const TFunction dFdx_00B(BuiltInId::dFdx_Float1,
                                   BuiltInName::dFdx,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p00B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpDFdx,
                                   true);
constexpr const TFunction dFdx_10B(BuiltInId::dFdx_Float2,
                                   BuiltInName::dFdx,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p10B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpDFdx,
                                   true);
constexpr const TFunction dFdx_20B(BuiltInId::dFdx_Float3,
                                   BuiltInName::dFdx,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p20B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpDFdx,
                                   true);
constexpr const TFunction dFdx_30B(BuiltInId::dFdx_Float4,
                                   BuiltInName::dFdx,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p30B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpDFdx,
                                   true);
constexpr const TFunction dFdy_00B(BuiltInId::dFdy_Float1,
                                   BuiltInName::dFdy,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p00B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpDFdy,
                                   true);
constexpr const TFunction dFdy_10B(BuiltInId::dFdy_Float2,
                                   BuiltInName::dFdy,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p10B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpDFdy,
                                   true);
constexpr const TFunction dFdy_20B(BuiltInId::dFdy_Float3,
                                   BuiltInName::dFdy,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p20B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpDFdy,
                                   true);
constexpr const TFunction dFdy_30B(BuiltInId::dFdy_Float4,
                                   BuiltInName::dFdy,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::p30B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpDFdy,
                                   true);
constexpr const TFunction fwidth_00B(BuiltInId::fwidth_Float1,
                                     BuiltInName::fwidth,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p00B00B00B,
                                     1,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpFwidth,
                                     true);
constexpr const TFunction fwidth_10B(BuiltInId::fwidth_Float2,
                                     BuiltInName::fwidth,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p10B00B00B,
                                     1,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                     EOpFwidth,
                                     true);
constexpr const TFunction fwidth_20B(BuiltInId::fwidth_Float3,
                                     BuiltInName::fwidth,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p20B00B00B,
                                     1,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                     EOpFwidth,
                                     true);
constexpr const TFunction fwidth_30B(BuiltInId::fwidth_Float4,
                                     BuiltInName::fwidth,
                                     std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                     BuiltInParameters::p30B00B00B,
                                     1,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpFwidth,
                                     true);
constexpr const TFunction interpolateAtCentroid_00B(
    BuiltInId::interpolateAtCentroid_Float1,
    BuiltInName::interpolateAtCentroid,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00B00B00B,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpInterpolateAtCentroid,
    true);
constexpr const TFunction interpolateAtCentroid_10B(
    BuiltInId::interpolateAtCentroid_Float2,
    BuiltInName::interpolateAtCentroid,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p10B00B00B,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpInterpolateAtCentroid,
    true);
constexpr const TFunction interpolateAtCentroid_20B(
    BuiltInId::interpolateAtCentroid_Float3,
    BuiltInName::interpolateAtCentroid,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p20B00B00B,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpInterpolateAtCentroid,
    true);
constexpr const TFunction interpolateAtCentroid_30B(
    BuiltInId::interpolateAtCentroid_Float4,
    BuiltInName::interpolateAtCentroid,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p30B00B00B,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpInterpolateAtCentroid,
    true);
constexpr const TFunction interpolateAtSample_00B00C(
    BuiltInId::interpolateAtSample_Float1_Int1,
    BuiltInName::interpolateAtSample,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00B00C,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpInterpolateAtSample,
    true);
constexpr const TFunction interpolateAtSample_10B00C(
    BuiltInId::interpolateAtSample_Float2_Int1,
    BuiltInName::interpolateAtSample,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p10B00C,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpInterpolateAtSample,
    true);
constexpr const TFunction interpolateAtSample_20B00C(
    BuiltInId::interpolateAtSample_Float3_Int1,
    BuiltInName::interpolateAtSample,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p20B00C,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpInterpolateAtSample,
    true);
constexpr const TFunction interpolateAtSample_30B00C(
    BuiltInId::interpolateAtSample_Float4_Int1,
    BuiltInName::interpolateAtSample,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p30B00C,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpInterpolateAtSample,
    true);
constexpr const TFunction interpolateAtOffset_00B10B(
    BuiltInId::interpolateAtOffset_Float1_Float2,
    BuiltInName::interpolateAtOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00B10B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpInterpolateAtOffset,
    true);
constexpr const TFunction interpolateAtOffset_10B10B(
    BuiltInId::interpolateAtOffset_Float2_Float2,
    BuiltInName::interpolateAtOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p10B10B00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpInterpolateAtOffset,
    true);
constexpr const TFunction interpolateAtOffset_20B10B(
    BuiltInId::interpolateAtOffset_Float3_Float2,
    BuiltInName::interpolateAtOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p20B10B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpInterpolateAtOffset,
    true);
constexpr const TFunction interpolateAtOffset_30B10B(
    BuiltInId::interpolateAtOffset_Float4_Float2,
    BuiltInName::interpolateAtOffset,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p30B10B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpInterpolateAtOffset,
    true);
constexpr const TFunction interpolateAtCentroidExt_00B(
    BuiltInId::interpolateAtCentroidExt_Float1,
    BuiltInName::interpolateAtCentroidExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_multisample_interpolation}},
    BuiltInParameters::p00B00B00B,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpInterpolateAtCentroid,
    true);
constexpr const TFunction interpolateAtCentroidExt_10B(
    BuiltInId::interpolateAtCentroidExt_Float2,
    BuiltInName::interpolateAtCentroidExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_multisample_interpolation}},
    BuiltInParameters::p10B00B00B,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpInterpolateAtCentroid,
    true);
constexpr const TFunction interpolateAtCentroidExt_20B(
    BuiltInId::interpolateAtCentroidExt_Float3,
    BuiltInName::interpolateAtCentroidExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_multisample_interpolation}},
    BuiltInParameters::p20B00B00B,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpInterpolateAtCentroid,
    true);
constexpr const TFunction interpolateAtCentroidExt_30B(
    BuiltInId::interpolateAtCentroidExt_Float4,
    BuiltInName::interpolateAtCentroidExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_multisample_interpolation}},
    BuiltInParameters::p30B00B00B,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpInterpolateAtCentroid,
    true);
constexpr const TFunction interpolateAtSampleExt_00B00C(
    BuiltInId::interpolateAtSampleExt_Float1_Int1,
    BuiltInName::interpolateAtSampleExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_multisample_interpolation}},
    BuiltInParameters::p00B00C,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpInterpolateAtSample,
    true);
constexpr const TFunction interpolateAtSampleExt_10B00C(
    BuiltInId::interpolateAtSampleExt_Float2_Int1,
    BuiltInName::interpolateAtSampleExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_multisample_interpolation}},
    BuiltInParameters::p10B00C,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpInterpolateAtSample,
    true);
constexpr const TFunction interpolateAtSampleExt_20B00C(
    BuiltInId::interpolateAtSampleExt_Float3_Int1,
    BuiltInName::interpolateAtSampleExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_multisample_interpolation}},
    BuiltInParameters::p20B00C,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpInterpolateAtSample,
    true);
constexpr const TFunction interpolateAtSampleExt_30B00C(
    BuiltInId::interpolateAtSampleExt_Float4_Int1,
    BuiltInName::interpolateAtSampleExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_multisample_interpolation}},
    BuiltInParameters::p30B00C,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpInterpolateAtSample,
    true);
constexpr const TFunction interpolateAtOffsetExt_00B10B(
    BuiltInId::interpolateAtOffsetExt_Float1_Float2,
    BuiltInName::interpolateAtOffsetExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_multisample_interpolation}},
    BuiltInParameters::p00B10B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpInterpolateAtOffset,
    true);
constexpr const TFunction interpolateAtOffsetExt_10B10B(
    BuiltInId::interpolateAtOffsetExt_Float2_Float2,
    BuiltInName::interpolateAtOffsetExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_multisample_interpolation}},
    BuiltInParameters::p10B10B00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpInterpolateAtOffset,
    true);
constexpr const TFunction interpolateAtOffsetExt_20B10B(
    BuiltInId::interpolateAtOffsetExt_Float3_Float2,
    BuiltInName::interpolateAtOffsetExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_multisample_interpolation}},
    BuiltInParameters::p20B10B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpInterpolateAtOffset,
    true);
constexpr const TFunction interpolateAtOffsetExt_30B10B(
    BuiltInId::interpolateAtOffsetExt_Float4_Float2,
    BuiltInName::interpolateAtOffsetExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_multisample_interpolation}},
    BuiltInParameters::p30B10B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpInterpolateAtOffset,
    true);
constexpr const TFunction atomicCounter_00F(
    BuiltInId::atomicCounter_AtomicCounter1,
    BuiltInName::atomicCounter,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00F,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpAtomicCounter,
    false);
constexpr const TFunction atomicCounterIncrement_00F(
    BuiltInId::atomicCounterIncrement_AtomicCounter1,
    BuiltInName::atomicCounterIncrement,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00F,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpAtomicCounterIncrement,
    false);
constexpr const TFunction atomicCounterDecrement_00F(
    BuiltInId::atomicCounterDecrement_AtomicCounter1,
    BuiltInName::atomicCounterDecrement,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00F,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpAtomicCounterDecrement,
    false);
constexpr const TFunction atomicAdd_00D00D(
    BuiltInId::atomicAdd_UInt1_UInt1,
    BuiltInName::atomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p_io_00D00D00D,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpAtomicAdd,
    false);
constexpr const TFunction atomicAdd_00C00C(BuiltInId::atomicAdd_Int1_Int1,
                                           BuiltInName::atomicAdd,
                                           std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                           BuiltInParameters::p_io_00C00C00C,
                                           2,
                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                           EOpAtomicAdd,
                                           false);
constexpr const TFunction atomicMin_00D00D(
    BuiltInId::atomicMin_UInt1_UInt1,
    BuiltInName::atomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p_io_00D00D00D,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpAtomicMin,
    false);
constexpr const TFunction atomicMin_00C00C(BuiltInId::atomicMin_Int1_Int1,
                                           BuiltInName::atomicMin,
                                           std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                           BuiltInParameters::p_io_00C00C00C,
                                           2,
                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                           EOpAtomicMin,
                                           false);
constexpr const TFunction atomicMax_00D00D(
    BuiltInId::atomicMax_UInt1_UInt1,
    BuiltInName::atomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p_io_00D00D00D,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpAtomicMax,
    false);
constexpr const TFunction atomicMax_00C00C(BuiltInId::atomicMax_Int1_Int1,
                                           BuiltInName::atomicMax,
                                           std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                           BuiltInParameters::p_io_00C00C00C,
                                           2,
                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                           EOpAtomicMax,
                                           false);
constexpr const TFunction atomicAnd_00D00D(
    BuiltInId::atomicAnd_UInt1_UInt1,
    BuiltInName::atomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p_io_00D00D00D,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpAtomicAnd,
    false);
constexpr const TFunction atomicAnd_00C00C(BuiltInId::atomicAnd_Int1_Int1,
                                           BuiltInName::atomicAnd,
                                           std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                           BuiltInParameters::p_io_00C00C00C,
                                           2,
                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                           EOpAtomicAnd,
                                           false);
constexpr const TFunction atomicOr_00D00D(BuiltInId::atomicOr_UInt1_UInt1,
                                          BuiltInName::atomicOr,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p_io_00D00D00D,
                                          2,
                                          StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                          EOpAtomicOr,
                                          false);
constexpr const TFunction atomicOr_00C00C(BuiltInId::atomicOr_Int1_Int1,
                                          BuiltInName::atomicOr,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p_io_00C00C00C,
                                          2,
                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                          EOpAtomicOr,
                                          false);
constexpr const TFunction atomicXor_00D00D(
    BuiltInId::atomicXor_UInt1_UInt1,
    BuiltInName::atomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p_io_00D00D00D,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpAtomicXor,
    false);
constexpr const TFunction atomicXor_00C00C(BuiltInId::atomicXor_Int1_Int1,
                                           BuiltInName::atomicXor,
                                           std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                           BuiltInParameters::p_io_00C00C00C,
                                           2,
                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                           EOpAtomicXor,
                                           false);
constexpr const TFunction atomicExchange_00D00D(
    BuiltInId::atomicExchange_UInt1_UInt1,
    BuiltInName::atomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p_io_00D00D00D,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpAtomicExchange,
    false);
constexpr const TFunction atomicExchange_00C00C(
    BuiltInId::atomicExchange_Int1_Int1,
    BuiltInName::atomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p_io_00C00C00C,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpAtomicExchange,
    false);
constexpr const TFunction atomicCompSwap_00D00D00D(
    BuiltInId::atomicCompSwap_UInt1_UInt1_UInt1,
    BuiltInName::atomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p_io_00D00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpAtomicCompSwap,
    false);
constexpr const TFunction atomicCompSwap_00C00C00C(
    BuiltInId::atomicCompSwap_Int1_Int1_Int1,
    BuiltInName::atomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p_io_00C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpAtomicCompSwap,
    false);
constexpr const TFunction imageSize_00q(BuiltInId::imageSize_Image2D1,
                                        BuiltInName::imageSize,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p00q10C00B,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpImageSize,
                                        true);
constexpr const TFunction imageSize_00z(BuiltInId::imageSize_IImage2D1,
                                        BuiltInName::imageSize,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p00z10C00B,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpImageSize,
                                        true);
constexpr const TFunction imageSize_01I(BuiltInId::imageSize_UImage2D1,
                                        BuiltInName::imageSize,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p01I10C00B,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpImageSize,
                                        true);
constexpr const TFunction imageSize_00r(BuiltInId::imageSize_Image3D1,
                                        BuiltInName::imageSize,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p00r20C00B,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpImageSize,
                                        true);
constexpr const TFunction imageSize_01A(BuiltInId::imageSize_IImage3D1,
                                        BuiltInName::imageSize,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p01A20C00B,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpImageSize,
                                        true);
constexpr const TFunction imageSize_01J(BuiltInId::imageSize_UImage3D1,
                                        BuiltInName::imageSize,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p01J20C00B,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpImageSize,
                                        true);
constexpr const TFunction imageSize_00s(BuiltInId::imageSize_Image2DArray1,
                                        BuiltInName::imageSize,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p00s20C00B,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpImageSize,
                                        true);
constexpr const TFunction imageSize_01B(BuiltInId::imageSize_IImage2DArray1,
                                        BuiltInName::imageSize,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p01B20C00B,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpImageSize,
                                        true);
constexpr const TFunction imageSize_01K(BuiltInId::imageSize_UImage2DArray1,
                                        BuiltInName::imageSize,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p01K20C00B,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpImageSize,
                                        true);
constexpr const TFunction imageSize_00t(BuiltInId::imageSize_ImageCube1,
                                        BuiltInName::imageSize,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p00t20C00B,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpImageSize,
                                        true);
constexpr const TFunction imageSize_01C(BuiltInId::imageSize_IImageCube1,
                                        BuiltInName::imageSize,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p01C20C00B,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpImageSize,
                                        true);
constexpr const TFunction imageSize_01L(BuiltInId::imageSize_UImageCube1,
                                        BuiltInName::imageSize,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p01L20C00B,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpImageSize,
                                        true);
constexpr const TFunction imageSize_00w(BuiltInId::imageSize_ImageCubeArray1,
                                        BuiltInName::imageSize,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p00w20C00B,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpImageSize,
                                        true);
constexpr const TFunction imageSize_01F(BuiltInId::imageSize_IImageCubeArray1,
                                        BuiltInName::imageSize,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p01F20C00B,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpImageSize,
                                        true);
constexpr const TFunction imageSize_01O(BuiltInId::imageSize_UImageCubeArray1,
                                        BuiltInName::imageSize,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p01O20C00B,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpImageSize,
                                        true);
constexpr const TFunction imageSizeExt_00w(BuiltInId::imageSizeExt_ImageCubeArray1,
                                           BuiltInName::imageSizeExt,
                                           std::array<TExtension, 2u>{
                                               {TExtension::OES_texture_cube_map_array,
                                                TExtension::EXT_texture_cube_map_array}},
                                           BuiltInParameters::p00w20C00B,
                                           1,
                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                           EOpImageSize,
                                           true);
constexpr const TFunction imageSizeExt_01F(BuiltInId::imageSizeExt_IImageCubeArray1,
                                           BuiltInName::imageSizeExt,
                                           std::array<TExtension, 2u>{
                                               {TExtension::OES_texture_cube_map_array,
                                                TExtension::EXT_texture_cube_map_array}},
                                           BuiltInParameters::p01F20C00B,
                                           1,
                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                           EOpImageSize,
                                           true);
constexpr const TFunction imageSizeExt_01O(BuiltInId::imageSizeExt_UImageCubeArray1,
                                           BuiltInName::imageSizeExt,
                                           std::array<TExtension, 2u>{
                                               {TExtension::OES_texture_cube_map_array,
                                                TExtension::EXT_texture_cube_map_array}},
                                           BuiltInParameters::p01O20C00B,
                                           1,
                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                           EOpImageSize,
                                           true);
constexpr const TFunction imageSize_00y(BuiltInId::imageSize_ImageBuffer1,
                                        BuiltInName::imageSize,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p00y00C00B,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                        EOpImageSize,
                                        true);
constexpr const TFunction imageSize_01H(BuiltInId::imageSize_IImageBuffer1,
                                        BuiltInName::imageSize,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p01H00C00B,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                        EOpImageSize,
                                        true);
constexpr const TFunction imageSize_01Q(BuiltInId::imageSize_UImageBuffer1,
                                        BuiltInName::imageSize,
                                        std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                        BuiltInParameters::p01Q00C00B,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                        EOpImageSize,
                                        true);
constexpr const TFunction imageSizeExt_00y(
    BuiltInId::imageSizeExt_ImageBuffer1,
    BuiltInName::imageSizeExt,
    std::array<TExtension, 2u>{{TExtension::OES_texture_buffer, TExtension::EXT_texture_buffer}},
    BuiltInParameters::p00y00C00B,
    1,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageSize,
    true);
constexpr const TFunction imageSizeExt_01H(
    BuiltInId::imageSizeExt_IImageBuffer1,
    BuiltInName::imageSizeExt,
    std::array<TExtension, 2u>{{TExtension::OES_texture_buffer, TExtension::EXT_texture_buffer}},
    BuiltInParameters::p01H00C00B,
    1,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageSize,
    true);
constexpr const TFunction imageSizeExt_01Q(
    BuiltInId::imageSizeExt_UImageBuffer1,
    BuiltInName::imageSizeExt,
    std::array<TExtension, 2u>{{TExtension::OES_texture_buffer, TExtension::EXT_texture_buffer}},
    BuiltInParameters::p01Q00C00B,
    1,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageSize,
    true);
constexpr const TFunction imageStore_00q10C30B(
    BuiltInId::imageStore_Image2D1_Int2_Float4,
    BuiltInName::imageStore,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00q10C30B,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageStore,
    false);
constexpr const TFunction imageStore_00z10C30C(
    BuiltInId::imageStore_IImage2D1_Int2_Int4,
    BuiltInName::imageStore,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00z10C30C,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageStore,
    false);
constexpr const TFunction imageStore_01I10C30D(
    BuiltInId::imageStore_UImage2D1_Int2_UInt4,
    BuiltInName::imageStore,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01I10C30D,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageStore,
    false);
constexpr const TFunction imageStore_00r20C30B(
    BuiltInId::imageStore_Image3D1_Int3_Float4,
    BuiltInName::imageStore,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00r20C30B,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageStore,
    false);
constexpr const TFunction imageStore_01A20C30C(
    BuiltInId::imageStore_IImage3D1_Int3_Int4,
    BuiltInName::imageStore,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01A20C30C,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageStore,
    false);
constexpr const TFunction imageStore_01J20C30D(
    BuiltInId::imageStore_UImage3D1_Int3_UInt4,
    BuiltInName::imageStore,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01J20C30D,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageStore,
    false);
constexpr const TFunction imageStore_00s20C30B(
    BuiltInId::imageStore_Image2DArray1_Int3_Float4,
    BuiltInName::imageStore,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00s20C30B,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageStore,
    false);
constexpr const TFunction imageStore_01B20C30C(
    BuiltInId::imageStore_IImage2DArray1_Int3_Int4,
    BuiltInName::imageStore,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01B20C30C,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageStore,
    false);
constexpr const TFunction imageStore_01K20C30D(
    BuiltInId::imageStore_UImage2DArray1_Int3_UInt4,
    BuiltInName::imageStore,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01K20C30D,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageStore,
    false);
constexpr const TFunction imageStore_00t20C30B(
    BuiltInId::imageStore_ImageCube1_Int3_Float4,
    BuiltInName::imageStore,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00t20C30B,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageStore,
    false);
constexpr const TFunction imageStore_01C20C30C(
    BuiltInId::imageStore_IImageCube1_Int3_Int4,
    BuiltInName::imageStore,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01C20C30C,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageStore,
    false);
constexpr const TFunction imageStore_01L20C30D(
    BuiltInId::imageStore_UImageCube1_Int3_UInt4,
    BuiltInName::imageStore,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01L20C30D,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageStore,
    false);
constexpr const TFunction imageStore_00w20C30B(
    BuiltInId::imageStore_ImageCubeArray1_Int3_Float4,
    BuiltInName::imageStore,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00w20C30B,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageStore,
    false);
constexpr const TFunction imageStore_01F20C30C(
    BuiltInId::imageStore_IImageCubeArray1_Int3_Int4,
    BuiltInName::imageStore,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01F20C30C,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageStore,
    false);
constexpr const TFunction imageStore_01O20C30D(
    BuiltInId::imageStore_UImageCubeArray1_Int3_UInt4,
    BuiltInName::imageStore,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01O20C30D,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageStore,
    false);
constexpr const TFunction imageStoreExt_00w20C30B(
    BuiltInId::imageStoreExt_ImageCubeArray1_Int3_Float4,
    BuiltInName::imageStoreExt,
    std::array<TExtension, 2u>{
        {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}},
    BuiltInParameters::p00w20C30B,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageStore,
    false);
constexpr const TFunction imageStoreExt_01F20C30C(
    BuiltInId::imageStoreExt_IImageCubeArray1_Int3_Int4,
    BuiltInName::imageStoreExt,
    std::array<TExtension, 2u>{
        {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}},
    BuiltInParameters::p01F20C30C,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageStore,
    false);
constexpr const TFunction imageStoreExt_01O20C30D(
    BuiltInId::imageStoreExt_UImageCubeArray1_Int3_UInt4,
    BuiltInName::imageStoreExt,
    std::array<TExtension, 2u>{
        {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}},
    BuiltInParameters::p01O20C30D,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageStore,
    false);
constexpr const TFunction imageStore_00y00C30B(
    BuiltInId::imageStore_ImageBuffer1_Int1_Float4,
    BuiltInName::imageStore,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00y00C30B,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageStore,
    false);
constexpr const TFunction imageStore_01H00C30C(
    BuiltInId::imageStore_IImageBuffer1_Int1_Int4,
    BuiltInName::imageStore,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01H00C30C,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageStore,
    false);
constexpr const TFunction imageStore_01Q00C30D(
    BuiltInId::imageStore_UImageBuffer1_Int1_UInt4,
    BuiltInName::imageStore,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01Q00C30D,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageStore,
    false);
constexpr const TFunction imageStoreExt_00y00C30B(
    BuiltInId::imageStoreExt_ImageBuffer1_Int1_Float4,
    BuiltInName::imageStoreExt,
    std::array<TExtension, 2u>{{TExtension::OES_texture_buffer, TExtension::EXT_texture_buffer}},
    BuiltInParameters::p00y00C30B,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageStore,
    false);
constexpr const TFunction imageStoreExt_01H00C30C(
    BuiltInId::imageStoreExt_IImageBuffer1_Int1_Int4,
    BuiltInName::imageStoreExt,
    std::array<TExtension, 2u>{{TExtension::OES_texture_buffer, TExtension::EXT_texture_buffer}},
    BuiltInParameters::p01H00C30C,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageStore,
    false);
constexpr const TFunction imageStoreExt_01Q00C30D(
    BuiltInId::imageStoreExt_UImageBuffer1_Int1_UInt4,
    BuiltInName::imageStoreExt,
    std::array<TExtension, 2u>{{TExtension::OES_texture_buffer, TExtension::EXT_texture_buffer}},
    BuiltInParameters::p01Q00C30D,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageStore,
    false);
constexpr const TFunction imageLoad_00q10C(
    BuiltInId::imageLoad_Image2D1_Int2,
    BuiltInName::imageLoad,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00q10C00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpImageLoad,
    true);
constexpr const TFunction imageLoad_00z10C(BuiltInId::imageLoad_IImage2D1_Int2,
                                           BuiltInName::imageLoad,
                                           std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                           BuiltInParameters::p00z10C00B,
                                           2,
                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                           EOpImageLoad,
                                           true);
constexpr const TFunction imageLoad_01I10C(
    BuiltInId::imageLoad_UImage2D1_Int2,
    BuiltInName::imageLoad,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01I10C00B,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpImageLoad,
    true);
constexpr const TFunction imageLoad_00r20C(
    BuiltInId::imageLoad_Image3D1_Int3,
    BuiltInName::imageLoad,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00r20C00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpImageLoad,
    true);
constexpr const TFunction imageLoad_01A20C(BuiltInId::imageLoad_IImage3D1_Int3,
                                           BuiltInName::imageLoad,
                                           std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                           BuiltInParameters::p01A20C00B,
                                           2,
                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                           EOpImageLoad,
                                           true);
constexpr const TFunction imageLoad_01J20C(
    BuiltInId::imageLoad_UImage3D1_Int3,
    BuiltInName::imageLoad,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01J20C00B,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpImageLoad,
    true);
constexpr const TFunction imageLoad_00s20C(
    BuiltInId::imageLoad_Image2DArray1_Int3,
    BuiltInName::imageLoad,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00s20C00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpImageLoad,
    true);
constexpr const TFunction imageLoad_01B20C(BuiltInId::imageLoad_IImage2DArray1_Int3,
                                           BuiltInName::imageLoad,
                                           std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                           BuiltInParameters::p01B20C00B,
                                           2,
                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                           EOpImageLoad,
                                           true);
constexpr const TFunction imageLoad_01K20C(
    BuiltInId::imageLoad_UImage2DArray1_Int3,
    BuiltInName::imageLoad,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01K20C00B,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpImageLoad,
    true);
constexpr const TFunction imageLoad_00t20C(
    BuiltInId::imageLoad_ImageCube1_Int3,
    BuiltInName::imageLoad,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00t20C00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpImageLoad,
    true);
constexpr const TFunction imageLoad_01C20C(BuiltInId::imageLoad_IImageCube1_Int3,
                                           BuiltInName::imageLoad,
                                           std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                           BuiltInParameters::p01C20C00B,
                                           2,
                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                           EOpImageLoad,
                                           true);
constexpr const TFunction imageLoad_01L20C(
    BuiltInId::imageLoad_UImageCube1_Int3,
    BuiltInName::imageLoad,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01L20C00B,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpImageLoad,
    true);
constexpr const TFunction imageLoad_00w20C(
    BuiltInId::imageLoad_ImageCubeArray1_Int3,
    BuiltInName::imageLoad,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00w20C00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpImageLoad,
    true);
constexpr const TFunction imageLoad_01F20C(BuiltInId::imageLoad_IImageCubeArray1_Int3,
                                           BuiltInName::imageLoad,
                                           std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                           BuiltInParameters::p01F20C00B,
                                           2,
                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                           EOpImageLoad,
                                           true);
constexpr const TFunction imageLoad_01O20C(
    BuiltInId::imageLoad_UImageCubeArray1_Int3,
    BuiltInName::imageLoad,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01O20C00B,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpImageLoad,
    true);
constexpr const TFunction imageLoadExt_00w20C(
    BuiltInId::imageLoadExt_ImageCubeArray1_Int3,
    BuiltInName::imageLoadExt,
    std::array<TExtension, 2u>{
        {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}},
    BuiltInParameters::p00w20C00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpImageLoad,
    true);
constexpr const TFunction imageLoadExt_01F20C(
    BuiltInId::imageLoadExt_IImageCubeArray1_Int3,
    BuiltInName::imageLoadExt,
    std::array<TExtension, 2u>{
        {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}},
    BuiltInParameters::p01F20C00B,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpImageLoad,
    true);
constexpr const TFunction imageLoadExt_01O20C(
    BuiltInId::imageLoadExt_UImageCubeArray1_Int3,
    BuiltInName::imageLoadExt,
    std::array<TExtension, 2u>{
        {TExtension::OES_texture_cube_map_array, TExtension::EXT_texture_cube_map_array}},
    BuiltInParameters::p01O20C00B,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpImageLoad,
    true);
constexpr const TFunction imageLoad_00y00C(
    BuiltInId::imageLoad_ImageBuffer1_Int1,
    BuiltInName::imageLoad,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00y00C00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpImageLoad,
    true);
constexpr const TFunction imageLoad_01H00C(BuiltInId::imageLoad_IImageBuffer1_Int1,
                                           BuiltInName::imageLoad,
                                           std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                           BuiltInParameters::p01H00C00B,
                                           2,
                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                           EOpImageLoad,
                                           true);
constexpr const TFunction imageLoad_01Q00C(
    BuiltInId::imageLoad_UImageBuffer1_Int1,
    BuiltInName::imageLoad,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01Q00C00B,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpImageLoad,
    true);
constexpr const TFunction imageLoadExt_00y00C(
    BuiltInId::imageLoadExt_ImageBuffer1_Int1,
    BuiltInName::imageLoadExt,
    std::array<TExtension, 2u>{{TExtension::OES_texture_buffer, TExtension::EXT_texture_buffer}},
    BuiltInParameters::p00y00C00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpImageLoad,
    true);
constexpr const TFunction imageLoadExt_01H00C(
    BuiltInId::imageLoadExt_IImageBuffer1_Int1,
    BuiltInName::imageLoadExt,
    std::array<TExtension, 2u>{{TExtension::OES_texture_buffer, TExtension::EXT_texture_buffer}},
    BuiltInParameters::p01H00C00B,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpImageLoad,
    true);
constexpr const TFunction imageLoadExt_01Q00C(
    BuiltInId::imageLoadExt_UImageBuffer1_Int1,
    BuiltInName::imageLoadExt,
    std::array<TExtension, 2u>{{TExtension::OES_texture_buffer, TExtension::EXT_texture_buffer}},
    BuiltInParameters::p01Q00C00B,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpImageLoad,
    true);
constexpr const TFunction imageAtomicAdd_00q10C00D(
    BuiltInId::imageAtomicAdd_Image2D1_Int2_UInt1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00q10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_00z10C00D(
    BuiltInId::imageAtomicAdd_IImage2D1_Int2_UInt1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00z10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_01I10C00D(
    BuiltInId::imageAtomicAdd_UImage2D1_Int2_UInt1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01I10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_00r20C00D(
    BuiltInId::imageAtomicAdd_Image3D1_Int3_UInt1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00r20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_01A20C00D(
    BuiltInId::imageAtomicAdd_IImage3D1_Int3_UInt1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01A20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_01J20C00D(
    BuiltInId::imageAtomicAdd_UImage3D1_Int3_UInt1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01J20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_00t20C00D(
    BuiltInId::imageAtomicAdd_ImageCube1_Int3_UInt1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00t20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_01C20C00D(
    BuiltInId::imageAtomicAdd_IImageCube1_Int3_UInt1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01C20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_01L20C00D(
    BuiltInId::imageAtomicAdd_UImageCube1_Int3_UInt1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01L20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_00y00C00D(
    BuiltInId::imageAtomicAdd_ImageBuffer1_Int1_UInt1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00y00C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_01H00C00D(
    BuiltInId::imageAtomicAdd_IImageBuffer1_Int1_UInt1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01H00C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_01Q00C00D(
    BuiltInId::imageAtomicAdd_UImageBuffer1_Int1_UInt1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01Q00C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_00s20C00D(
    BuiltInId::imageAtomicAdd_Image2DArray1_Int3_UInt1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00s20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_01B20C00D(
    BuiltInId::imageAtomicAdd_IImage2DArray1_Int3_UInt1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01B20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_01K20C00D(
    BuiltInId::imageAtomicAdd_UImage2DArray1_Int3_UInt1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01K20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_00w20C00D(
    BuiltInId::imageAtomicAdd_ImageCubeArray1_Int3_UInt1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00w20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_01F20C00D(
    BuiltInId::imageAtomicAdd_IImageCubeArray1_Int3_UInt1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01F20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_01O20C00D(
    BuiltInId::imageAtomicAdd_UImageCubeArray1_Int3_UInt1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01O20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_00x10C00D(
    BuiltInId::imageAtomicAdd_ImageRect1_Int2_UInt1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00x10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_01G10C00D(
    BuiltInId::imageAtomicAdd_IImageRect1_Int2_UInt1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01G10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_01P10C00D(
    BuiltInId::imageAtomicAdd_UImageRect1_Int2_UInt1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01P10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_00u10C00C00D(
    BuiltInId::imageAtomicAdd_Image2DMS1_Int2_Int1_UInt1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00u10C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_01D10C00C00D(
    BuiltInId::imageAtomicAdd_IImage2DMS1_Int2_Int1_UInt1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01D10C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_01M10C00C00D(
    BuiltInId::imageAtomicAdd_UImage2DMS1_Int2_Int1_UInt1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01M10C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_00v20C00C00D(
    BuiltInId::imageAtomicAdd_Image2DMSArray1_Int3_Int1_UInt1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00v20C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_01E20C00C00D(
    BuiltInId::imageAtomicAdd_IImage2DMSArray1_Int3_Int1_UInt1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01E20C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_01N20C00C00D(
    BuiltInId::imageAtomicAdd_UImage2DMSArray1_Int3_Int1_UInt1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01N20C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_00q10C00C(
    BuiltInId::imageAtomicAdd_Image2D1_Int2_Int1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00q10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_00z10C00C(
    BuiltInId::imageAtomicAdd_IImage2D1_Int2_Int1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00z10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_01I10C00C(
    BuiltInId::imageAtomicAdd_UImage2D1_Int2_Int1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01I10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_00r20C00C(
    BuiltInId::imageAtomicAdd_Image3D1_Int3_Int1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00r20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_01A20C00C(
    BuiltInId::imageAtomicAdd_IImage3D1_Int3_Int1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01A20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_01J20C00C(
    BuiltInId::imageAtomicAdd_UImage3D1_Int3_Int1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01J20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_00t20C00C(
    BuiltInId::imageAtomicAdd_ImageCube1_Int3_Int1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00t20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_01C20C00C(
    BuiltInId::imageAtomicAdd_IImageCube1_Int3_Int1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01C20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_01L20C00C(
    BuiltInId::imageAtomicAdd_UImageCube1_Int3_Int1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01L20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_00y00C00C(
    BuiltInId::imageAtomicAdd_ImageBuffer1_Int1_Int1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00y00C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_01H00C00C(
    BuiltInId::imageAtomicAdd_IImageBuffer1_Int1_Int1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01H00C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_01Q00C00C(
    BuiltInId::imageAtomicAdd_UImageBuffer1_Int1_Int1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01Q00C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_00s20C00C(
    BuiltInId::imageAtomicAdd_Image2DArray1_Int3_Int1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00s20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_01B20C00C(
    BuiltInId::imageAtomicAdd_IImage2DArray1_Int3_Int1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01B20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_01K20C00C(
    BuiltInId::imageAtomicAdd_UImage2DArray1_Int3_Int1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01K20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_00w20C00C(
    BuiltInId::imageAtomicAdd_ImageCubeArray1_Int3_Int1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00w20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_01F20C00C(
    BuiltInId::imageAtomicAdd_IImageCubeArray1_Int3_Int1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01F20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_01O20C00C(
    BuiltInId::imageAtomicAdd_UImageCubeArray1_Int3_Int1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01O20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_00x10C00C(
    BuiltInId::imageAtomicAdd_ImageRect1_Int2_Int1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00x10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_01G10C00C(
    BuiltInId::imageAtomicAdd_IImageRect1_Int2_Int1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01G10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_01P10C00C(
    BuiltInId::imageAtomicAdd_UImageRect1_Int2_Int1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01P10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_00u10C00C00C(
    BuiltInId::imageAtomicAdd_Image2DMS1_Int2_Int1_Int1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00u10C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_01D10C00C00C(
    BuiltInId::imageAtomicAdd_IImage2DMS1_Int2_Int1_Int1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01D10C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_01M10C00C00C(
    BuiltInId::imageAtomicAdd_UImage2DMS1_Int2_Int1_Int1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01M10C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_00v20C00C00C(
    BuiltInId::imageAtomicAdd_Image2DMSArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00v20C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_01E20C00C00C(
    BuiltInId::imageAtomicAdd_IImage2DMSArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01E20C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAdd_01N20C00C00C(
    BuiltInId::imageAtomicAdd_UImage2DMSArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicAdd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01N20C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicMin_00q10C00D(
    BuiltInId::imageAtomicMin_Image2D1_Int2_UInt1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00q10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_00z10C00D(
    BuiltInId::imageAtomicMin_IImage2D1_Int2_UInt1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00z10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_01I10C00D(
    BuiltInId::imageAtomicMin_UImage2D1_Int2_UInt1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01I10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_00r20C00D(
    BuiltInId::imageAtomicMin_Image3D1_Int3_UInt1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00r20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_01A20C00D(
    BuiltInId::imageAtomicMin_IImage3D1_Int3_UInt1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01A20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_01J20C00D(
    BuiltInId::imageAtomicMin_UImage3D1_Int3_UInt1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01J20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_00t20C00D(
    BuiltInId::imageAtomicMin_ImageCube1_Int3_UInt1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00t20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_01C20C00D(
    BuiltInId::imageAtomicMin_IImageCube1_Int3_UInt1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01C20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_01L20C00D(
    BuiltInId::imageAtomicMin_UImageCube1_Int3_UInt1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01L20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_00y00C00D(
    BuiltInId::imageAtomicMin_ImageBuffer1_Int1_UInt1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00y00C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_01H00C00D(
    BuiltInId::imageAtomicMin_IImageBuffer1_Int1_UInt1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01H00C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_01Q00C00D(
    BuiltInId::imageAtomicMin_UImageBuffer1_Int1_UInt1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01Q00C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_00s20C00D(
    BuiltInId::imageAtomicMin_Image2DArray1_Int3_UInt1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00s20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_01B20C00D(
    BuiltInId::imageAtomicMin_IImage2DArray1_Int3_UInt1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01B20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_01K20C00D(
    BuiltInId::imageAtomicMin_UImage2DArray1_Int3_UInt1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01K20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_00w20C00D(
    BuiltInId::imageAtomicMin_ImageCubeArray1_Int3_UInt1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00w20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_01F20C00D(
    BuiltInId::imageAtomicMin_IImageCubeArray1_Int3_UInt1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01F20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_01O20C00D(
    BuiltInId::imageAtomicMin_UImageCubeArray1_Int3_UInt1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01O20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_00x10C00D(
    BuiltInId::imageAtomicMin_ImageRect1_Int2_UInt1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00x10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_01G10C00D(
    BuiltInId::imageAtomicMin_IImageRect1_Int2_UInt1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01G10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_01P10C00D(
    BuiltInId::imageAtomicMin_UImageRect1_Int2_UInt1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01P10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_00u10C00C00D(
    BuiltInId::imageAtomicMin_Image2DMS1_Int2_Int1_UInt1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00u10C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_01D10C00C00D(
    BuiltInId::imageAtomicMin_IImage2DMS1_Int2_Int1_UInt1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01D10C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_01M10C00C00D(
    BuiltInId::imageAtomicMin_UImage2DMS1_Int2_Int1_UInt1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01M10C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_00v20C00C00D(
    BuiltInId::imageAtomicMin_Image2DMSArray1_Int3_Int1_UInt1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00v20C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_01E20C00C00D(
    BuiltInId::imageAtomicMin_IImage2DMSArray1_Int3_Int1_UInt1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01E20C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_01N20C00C00D(
    BuiltInId::imageAtomicMin_UImage2DMSArray1_Int3_Int1_UInt1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01N20C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_00q10C00C(
    BuiltInId::imageAtomicMin_Image2D1_Int2_Int1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00q10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_00z10C00C(
    BuiltInId::imageAtomicMin_IImage2D1_Int2_Int1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00z10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_01I10C00C(
    BuiltInId::imageAtomicMin_UImage2D1_Int2_Int1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01I10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_00r20C00C(
    BuiltInId::imageAtomicMin_Image3D1_Int3_Int1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00r20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_01A20C00C(
    BuiltInId::imageAtomicMin_IImage3D1_Int3_Int1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01A20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_01J20C00C(
    BuiltInId::imageAtomicMin_UImage3D1_Int3_Int1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01J20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_00t20C00C(
    BuiltInId::imageAtomicMin_ImageCube1_Int3_Int1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00t20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_01C20C00C(
    BuiltInId::imageAtomicMin_IImageCube1_Int3_Int1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01C20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_01L20C00C(
    BuiltInId::imageAtomicMin_UImageCube1_Int3_Int1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01L20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_00y00C00C(
    BuiltInId::imageAtomicMin_ImageBuffer1_Int1_Int1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00y00C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_01H00C00C(
    BuiltInId::imageAtomicMin_IImageBuffer1_Int1_Int1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01H00C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_01Q00C00C(
    BuiltInId::imageAtomicMin_UImageBuffer1_Int1_Int1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01Q00C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_00s20C00C(
    BuiltInId::imageAtomicMin_Image2DArray1_Int3_Int1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00s20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_01B20C00C(
    BuiltInId::imageAtomicMin_IImage2DArray1_Int3_Int1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01B20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_01K20C00C(
    BuiltInId::imageAtomicMin_UImage2DArray1_Int3_Int1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01K20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_00w20C00C(
    BuiltInId::imageAtomicMin_ImageCubeArray1_Int3_Int1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00w20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_01F20C00C(
    BuiltInId::imageAtomicMin_IImageCubeArray1_Int3_Int1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01F20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_01O20C00C(
    BuiltInId::imageAtomicMin_UImageCubeArray1_Int3_Int1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01O20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_00x10C00C(
    BuiltInId::imageAtomicMin_ImageRect1_Int2_Int1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00x10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_01G10C00C(
    BuiltInId::imageAtomicMin_IImageRect1_Int2_Int1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01G10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_01P10C00C(
    BuiltInId::imageAtomicMin_UImageRect1_Int2_Int1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01P10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_00u10C00C00C(
    BuiltInId::imageAtomicMin_Image2DMS1_Int2_Int1_Int1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00u10C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_01D10C00C00C(
    BuiltInId::imageAtomicMin_IImage2DMS1_Int2_Int1_Int1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01D10C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_01M10C00C00C(
    BuiltInId::imageAtomicMin_UImage2DMS1_Int2_Int1_Int1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01M10C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_00v20C00C00C(
    BuiltInId::imageAtomicMin_Image2DMSArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00v20C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_01E20C00C00C(
    BuiltInId::imageAtomicMin_IImage2DMSArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01E20C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMin_01N20C00C00C(
    BuiltInId::imageAtomicMin_UImage2DMSArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicMin,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01N20C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMax_00q10C00D(
    BuiltInId::imageAtomicMax_Image2D1_Int2_UInt1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00q10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_00z10C00D(
    BuiltInId::imageAtomicMax_IImage2D1_Int2_UInt1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00z10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_01I10C00D(
    BuiltInId::imageAtomicMax_UImage2D1_Int2_UInt1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01I10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_00r20C00D(
    BuiltInId::imageAtomicMax_Image3D1_Int3_UInt1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00r20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_01A20C00D(
    BuiltInId::imageAtomicMax_IImage3D1_Int3_UInt1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01A20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_01J20C00D(
    BuiltInId::imageAtomicMax_UImage3D1_Int3_UInt1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01J20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_00t20C00D(
    BuiltInId::imageAtomicMax_ImageCube1_Int3_UInt1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00t20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_01C20C00D(
    BuiltInId::imageAtomicMax_IImageCube1_Int3_UInt1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01C20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_01L20C00D(
    BuiltInId::imageAtomicMax_UImageCube1_Int3_UInt1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01L20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_00y00C00D(
    BuiltInId::imageAtomicMax_ImageBuffer1_Int1_UInt1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00y00C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_01H00C00D(
    BuiltInId::imageAtomicMax_IImageBuffer1_Int1_UInt1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01H00C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_01Q00C00D(
    BuiltInId::imageAtomicMax_UImageBuffer1_Int1_UInt1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01Q00C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_00s20C00D(
    BuiltInId::imageAtomicMax_Image2DArray1_Int3_UInt1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00s20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_01B20C00D(
    BuiltInId::imageAtomicMax_IImage2DArray1_Int3_UInt1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01B20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_01K20C00D(
    BuiltInId::imageAtomicMax_UImage2DArray1_Int3_UInt1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01K20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_00w20C00D(
    BuiltInId::imageAtomicMax_ImageCubeArray1_Int3_UInt1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00w20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_01F20C00D(
    BuiltInId::imageAtomicMax_IImageCubeArray1_Int3_UInt1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01F20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_01O20C00D(
    BuiltInId::imageAtomicMax_UImageCubeArray1_Int3_UInt1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01O20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_00x10C00D(
    BuiltInId::imageAtomicMax_ImageRect1_Int2_UInt1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00x10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_01G10C00D(
    BuiltInId::imageAtomicMax_IImageRect1_Int2_UInt1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01G10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_01P10C00D(
    BuiltInId::imageAtomicMax_UImageRect1_Int2_UInt1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01P10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_00u10C00C00D(
    BuiltInId::imageAtomicMax_Image2DMS1_Int2_Int1_UInt1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00u10C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_01D10C00C00D(
    BuiltInId::imageAtomicMax_IImage2DMS1_Int2_Int1_UInt1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01D10C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_01M10C00C00D(
    BuiltInId::imageAtomicMax_UImage2DMS1_Int2_Int1_UInt1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01M10C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_00v20C00C00D(
    BuiltInId::imageAtomicMax_Image2DMSArray1_Int3_Int1_UInt1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00v20C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_01E20C00C00D(
    BuiltInId::imageAtomicMax_IImage2DMSArray1_Int3_Int1_UInt1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01E20C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_01N20C00C00D(
    BuiltInId::imageAtomicMax_UImage2DMSArray1_Int3_Int1_UInt1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01N20C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_00q10C00C(
    BuiltInId::imageAtomicMax_Image2D1_Int2_Int1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00q10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_00z10C00C(
    BuiltInId::imageAtomicMax_IImage2D1_Int2_Int1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00z10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_01I10C00C(
    BuiltInId::imageAtomicMax_UImage2D1_Int2_Int1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01I10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_00r20C00C(
    BuiltInId::imageAtomicMax_Image3D1_Int3_Int1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00r20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_01A20C00C(
    BuiltInId::imageAtomicMax_IImage3D1_Int3_Int1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01A20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_01J20C00C(
    BuiltInId::imageAtomicMax_UImage3D1_Int3_Int1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01J20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_00t20C00C(
    BuiltInId::imageAtomicMax_ImageCube1_Int3_Int1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00t20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_01C20C00C(
    BuiltInId::imageAtomicMax_IImageCube1_Int3_Int1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01C20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_01L20C00C(
    BuiltInId::imageAtomicMax_UImageCube1_Int3_Int1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01L20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_00y00C00C(
    BuiltInId::imageAtomicMax_ImageBuffer1_Int1_Int1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00y00C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_01H00C00C(
    BuiltInId::imageAtomicMax_IImageBuffer1_Int1_Int1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01H00C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_01Q00C00C(
    BuiltInId::imageAtomicMax_UImageBuffer1_Int1_Int1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01Q00C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_00s20C00C(
    BuiltInId::imageAtomicMax_Image2DArray1_Int3_Int1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00s20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_01B20C00C(
    BuiltInId::imageAtomicMax_IImage2DArray1_Int3_Int1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01B20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_01K20C00C(
    BuiltInId::imageAtomicMax_UImage2DArray1_Int3_Int1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01K20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_00w20C00C(
    BuiltInId::imageAtomicMax_ImageCubeArray1_Int3_Int1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00w20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_01F20C00C(
    BuiltInId::imageAtomicMax_IImageCubeArray1_Int3_Int1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01F20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_01O20C00C(
    BuiltInId::imageAtomicMax_UImageCubeArray1_Int3_Int1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01O20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_00x10C00C(
    BuiltInId::imageAtomicMax_ImageRect1_Int2_Int1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00x10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_01G10C00C(
    BuiltInId::imageAtomicMax_IImageRect1_Int2_Int1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01G10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_01P10C00C(
    BuiltInId::imageAtomicMax_UImageRect1_Int2_Int1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01P10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_00u10C00C00C(
    BuiltInId::imageAtomicMax_Image2DMS1_Int2_Int1_Int1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00u10C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_01D10C00C00C(
    BuiltInId::imageAtomicMax_IImage2DMS1_Int2_Int1_Int1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01D10C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_01M10C00C00C(
    BuiltInId::imageAtomicMax_UImage2DMS1_Int2_Int1_Int1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01M10C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_00v20C00C00C(
    BuiltInId::imageAtomicMax_Image2DMSArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00v20C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_01E20C00C00C(
    BuiltInId::imageAtomicMax_IImage2DMSArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01E20C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMax_01N20C00C00C(
    BuiltInId::imageAtomicMax_UImage2DMSArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicMax,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01N20C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicAnd_00q10C00D(
    BuiltInId::imageAtomicAnd_Image2D1_Int2_UInt1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00q10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_00z10C00D(
    BuiltInId::imageAtomicAnd_IImage2D1_Int2_UInt1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00z10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_01I10C00D(
    BuiltInId::imageAtomicAnd_UImage2D1_Int2_UInt1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01I10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_00r20C00D(
    BuiltInId::imageAtomicAnd_Image3D1_Int3_UInt1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00r20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_01A20C00D(
    BuiltInId::imageAtomicAnd_IImage3D1_Int3_UInt1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01A20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_01J20C00D(
    BuiltInId::imageAtomicAnd_UImage3D1_Int3_UInt1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01J20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_00t20C00D(
    BuiltInId::imageAtomicAnd_ImageCube1_Int3_UInt1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00t20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_01C20C00D(
    BuiltInId::imageAtomicAnd_IImageCube1_Int3_UInt1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01C20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_01L20C00D(
    BuiltInId::imageAtomicAnd_UImageCube1_Int3_UInt1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01L20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_00y00C00D(
    BuiltInId::imageAtomicAnd_ImageBuffer1_Int1_UInt1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00y00C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_01H00C00D(
    BuiltInId::imageAtomicAnd_IImageBuffer1_Int1_UInt1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01H00C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_01Q00C00D(
    BuiltInId::imageAtomicAnd_UImageBuffer1_Int1_UInt1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01Q00C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_00s20C00D(
    BuiltInId::imageAtomicAnd_Image2DArray1_Int3_UInt1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00s20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_01B20C00D(
    BuiltInId::imageAtomicAnd_IImage2DArray1_Int3_UInt1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01B20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_01K20C00D(
    BuiltInId::imageAtomicAnd_UImage2DArray1_Int3_UInt1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01K20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_00w20C00D(
    BuiltInId::imageAtomicAnd_ImageCubeArray1_Int3_UInt1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00w20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_01F20C00D(
    BuiltInId::imageAtomicAnd_IImageCubeArray1_Int3_UInt1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01F20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_01O20C00D(
    BuiltInId::imageAtomicAnd_UImageCubeArray1_Int3_UInt1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01O20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_00x10C00D(
    BuiltInId::imageAtomicAnd_ImageRect1_Int2_UInt1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00x10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_01G10C00D(
    BuiltInId::imageAtomicAnd_IImageRect1_Int2_UInt1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01G10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_01P10C00D(
    BuiltInId::imageAtomicAnd_UImageRect1_Int2_UInt1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01P10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_00u10C00C00D(
    BuiltInId::imageAtomicAnd_Image2DMS1_Int2_Int1_UInt1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00u10C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_01D10C00C00D(
    BuiltInId::imageAtomicAnd_IImage2DMS1_Int2_Int1_UInt1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01D10C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_01M10C00C00D(
    BuiltInId::imageAtomicAnd_UImage2DMS1_Int2_Int1_UInt1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01M10C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_00v20C00C00D(
    BuiltInId::imageAtomicAnd_Image2DMSArray1_Int3_Int1_UInt1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00v20C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_01E20C00C00D(
    BuiltInId::imageAtomicAnd_IImage2DMSArray1_Int3_Int1_UInt1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01E20C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_01N20C00C00D(
    BuiltInId::imageAtomicAnd_UImage2DMSArray1_Int3_Int1_UInt1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01N20C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_00q10C00C(
    BuiltInId::imageAtomicAnd_Image2D1_Int2_Int1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00q10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_00z10C00C(
    BuiltInId::imageAtomicAnd_IImage2D1_Int2_Int1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00z10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_01I10C00C(
    BuiltInId::imageAtomicAnd_UImage2D1_Int2_Int1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01I10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_00r20C00C(
    BuiltInId::imageAtomicAnd_Image3D1_Int3_Int1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00r20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_01A20C00C(
    BuiltInId::imageAtomicAnd_IImage3D1_Int3_Int1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01A20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_01J20C00C(
    BuiltInId::imageAtomicAnd_UImage3D1_Int3_Int1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01J20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_00t20C00C(
    BuiltInId::imageAtomicAnd_ImageCube1_Int3_Int1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00t20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_01C20C00C(
    BuiltInId::imageAtomicAnd_IImageCube1_Int3_Int1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01C20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_01L20C00C(
    BuiltInId::imageAtomicAnd_UImageCube1_Int3_Int1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01L20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_00y00C00C(
    BuiltInId::imageAtomicAnd_ImageBuffer1_Int1_Int1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00y00C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_01H00C00C(
    BuiltInId::imageAtomicAnd_IImageBuffer1_Int1_Int1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01H00C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_01Q00C00C(
    BuiltInId::imageAtomicAnd_UImageBuffer1_Int1_Int1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01Q00C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_00s20C00C(
    BuiltInId::imageAtomicAnd_Image2DArray1_Int3_Int1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00s20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_01B20C00C(
    BuiltInId::imageAtomicAnd_IImage2DArray1_Int3_Int1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01B20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_01K20C00C(
    BuiltInId::imageAtomicAnd_UImage2DArray1_Int3_Int1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01K20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_00w20C00C(
    BuiltInId::imageAtomicAnd_ImageCubeArray1_Int3_Int1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00w20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_01F20C00C(
    BuiltInId::imageAtomicAnd_IImageCubeArray1_Int3_Int1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01F20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_01O20C00C(
    BuiltInId::imageAtomicAnd_UImageCubeArray1_Int3_Int1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01O20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_00x10C00C(
    BuiltInId::imageAtomicAnd_ImageRect1_Int2_Int1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00x10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_01G10C00C(
    BuiltInId::imageAtomicAnd_IImageRect1_Int2_Int1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01G10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_01P10C00C(
    BuiltInId::imageAtomicAnd_UImageRect1_Int2_Int1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01P10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_00u10C00C00C(
    BuiltInId::imageAtomicAnd_Image2DMS1_Int2_Int1_Int1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00u10C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_01D10C00C00C(
    BuiltInId::imageAtomicAnd_IImage2DMS1_Int2_Int1_Int1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01D10C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_01M10C00C00C(
    BuiltInId::imageAtomicAnd_UImage2DMS1_Int2_Int1_Int1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01M10C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_00v20C00C00C(
    BuiltInId::imageAtomicAnd_Image2DMSArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00v20C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_01E20C00C00C(
    BuiltInId::imageAtomicAnd_IImage2DMSArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01E20C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAnd_01N20C00C00C(
    BuiltInId::imageAtomicAnd_UImage2DMSArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicAnd,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01N20C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicOr_00q10C00D(
    BuiltInId::imageAtomicOr_Image2D1_Int2_UInt1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00q10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_00z10C00D(
    BuiltInId::imageAtomicOr_IImage2D1_Int2_UInt1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00z10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_01I10C00D(
    BuiltInId::imageAtomicOr_UImage2D1_Int2_UInt1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01I10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_00r20C00D(
    BuiltInId::imageAtomicOr_Image3D1_Int3_UInt1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00r20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_01A20C00D(
    BuiltInId::imageAtomicOr_IImage3D1_Int3_UInt1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01A20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_01J20C00D(
    BuiltInId::imageAtomicOr_UImage3D1_Int3_UInt1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01J20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_00t20C00D(
    BuiltInId::imageAtomicOr_ImageCube1_Int3_UInt1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00t20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_01C20C00D(
    BuiltInId::imageAtomicOr_IImageCube1_Int3_UInt1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01C20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_01L20C00D(
    BuiltInId::imageAtomicOr_UImageCube1_Int3_UInt1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01L20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_00y00C00D(
    BuiltInId::imageAtomicOr_ImageBuffer1_Int1_UInt1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00y00C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_01H00C00D(
    BuiltInId::imageAtomicOr_IImageBuffer1_Int1_UInt1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01H00C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_01Q00C00D(
    BuiltInId::imageAtomicOr_UImageBuffer1_Int1_UInt1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01Q00C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_00s20C00D(
    BuiltInId::imageAtomicOr_Image2DArray1_Int3_UInt1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00s20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_01B20C00D(
    BuiltInId::imageAtomicOr_IImage2DArray1_Int3_UInt1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01B20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_01K20C00D(
    BuiltInId::imageAtomicOr_UImage2DArray1_Int3_UInt1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01K20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_00w20C00D(
    BuiltInId::imageAtomicOr_ImageCubeArray1_Int3_UInt1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00w20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_01F20C00D(
    BuiltInId::imageAtomicOr_IImageCubeArray1_Int3_UInt1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01F20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_01O20C00D(
    BuiltInId::imageAtomicOr_UImageCubeArray1_Int3_UInt1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01O20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_00x10C00D(
    BuiltInId::imageAtomicOr_ImageRect1_Int2_UInt1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00x10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_01G10C00D(
    BuiltInId::imageAtomicOr_IImageRect1_Int2_UInt1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01G10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_01P10C00D(
    BuiltInId::imageAtomicOr_UImageRect1_Int2_UInt1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01P10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_00u10C00C00D(
    BuiltInId::imageAtomicOr_Image2DMS1_Int2_Int1_UInt1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00u10C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_01D10C00C00D(
    BuiltInId::imageAtomicOr_IImage2DMS1_Int2_Int1_UInt1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01D10C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_01M10C00C00D(
    BuiltInId::imageAtomicOr_UImage2DMS1_Int2_Int1_UInt1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01M10C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_00v20C00C00D(
    BuiltInId::imageAtomicOr_Image2DMSArray1_Int3_Int1_UInt1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00v20C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_01E20C00C00D(
    BuiltInId::imageAtomicOr_IImage2DMSArray1_Int3_Int1_UInt1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01E20C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_01N20C00C00D(
    BuiltInId::imageAtomicOr_UImage2DMSArray1_Int3_Int1_UInt1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01N20C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_00q10C00C(
    BuiltInId::imageAtomicOr_Image2D1_Int2_Int1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00q10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_00z10C00C(
    BuiltInId::imageAtomicOr_IImage2D1_Int2_Int1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00z10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_01I10C00C(
    BuiltInId::imageAtomicOr_UImage2D1_Int2_Int1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01I10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_00r20C00C(
    BuiltInId::imageAtomicOr_Image3D1_Int3_Int1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00r20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_01A20C00C(
    BuiltInId::imageAtomicOr_IImage3D1_Int3_Int1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01A20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_01J20C00C(
    BuiltInId::imageAtomicOr_UImage3D1_Int3_Int1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01J20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_00t20C00C(
    BuiltInId::imageAtomicOr_ImageCube1_Int3_Int1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00t20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_01C20C00C(
    BuiltInId::imageAtomicOr_IImageCube1_Int3_Int1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01C20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_01L20C00C(
    BuiltInId::imageAtomicOr_UImageCube1_Int3_Int1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01L20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_00y00C00C(
    BuiltInId::imageAtomicOr_ImageBuffer1_Int1_Int1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00y00C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_01H00C00C(
    BuiltInId::imageAtomicOr_IImageBuffer1_Int1_Int1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01H00C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_01Q00C00C(
    BuiltInId::imageAtomicOr_UImageBuffer1_Int1_Int1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01Q00C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_00s20C00C(
    BuiltInId::imageAtomicOr_Image2DArray1_Int3_Int1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00s20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_01B20C00C(
    BuiltInId::imageAtomicOr_IImage2DArray1_Int3_Int1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01B20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_01K20C00C(
    BuiltInId::imageAtomicOr_UImage2DArray1_Int3_Int1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01K20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_00w20C00C(
    BuiltInId::imageAtomicOr_ImageCubeArray1_Int3_Int1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00w20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_01F20C00C(
    BuiltInId::imageAtomicOr_IImageCubeArray1_Int3_Int1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01F20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_01O20C00C(
    BuiltInId::imageAtomicOr_UImageCubeArray1_Int3_Int1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01O20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_00x10C00C(
    BuiltInId::imageAtomicOr_ImageRect1_Int2_Int1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00x10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_01G10C00C(
    BuiltInId::imageAtomicOr_IImageRect1_Int2_Int1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01G10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_01P10C00C(
    BuiltInId::imageAtomicOr_UImageRect1_Int2_Int1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01P10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_00u10C00C00C(
    BuiltInId::imageAtomicOr_Image2DMS1_Int2_Int1_Int1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00u10C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_01D10C00C00C(
    BuiltInId::imageAtomicOr_IImage2DMS1_Int2_Int1_Int1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01D10C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_01M10C00C00C(
    BuiltInId::imageAtomicOr_UImage2DMS1_Int2_Int1_Int1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01M10C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_00v20C00C00C(
    BuiltInId::imageAtomicOr_Image2DMSArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00v20C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_01E20C00C00C(
    BuiltInId::imageAtomicOr_IImage2DMSArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01E20C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOr_01N20C00C00C(
    BuiltInId::imageAtomicOr_UImage2DMSArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicOr,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01N20C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicXor_00q10C00D(
    BuiltInId::imageAtomicXor_Image2D1_Int2_UInt1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00q10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_00z10C00D(
    BuiltInId::imageAtomicXor_IImage2D1_Int2_UInt1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00z10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_01I10C00D(
    BuiltInId::imageAtomicXor_UImage2D1_Int2_UInt1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01I10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_00r20C00D(
    BuiltInId::imageAtomicXor_Image3D1_Int3_UInt1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00r20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_01A20C00D(
    BuiltInId::imageAtomicXor_IImage3D1_Int3_UInt1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01A20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_01J20C00D(
    BuiltInId::imageAtomicXor_UImage3D1_Int3_UInt1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01J20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_00t20C00D(
    BuiltInId::imageAtomicXor_ImageCube1_Int3_UInt1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00t20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_01C20C00D(
    BuiltInId::imageAtomicXor_IImageCube1_Int3_UInt1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01C20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_01L20C00D(
    BuiltInId::imageAtomicXor_UImageCube1_Int3_UInt1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01L20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_00y00C00D(
    BuiltInId::imageAtomicXor_ImageBuffer1_Int1_UInt1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00y00C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_01H00C00D(
    BuiltInId::imageAtomicXor_IImageBuffer1_Int1_UInt1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01H00C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_01Q00C00D(
    BuiltInId::imageAtomicXor_UImageBuffer1_Int1_UInt1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01Q00C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_00s20C00D(
    BuiltInId::imageAtomicXor_Image2DArray1_Int3_UInt1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00s20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_01B20C00D(
    BuiltInId::imageAtomicXor_IImage2DArray1_Int3_UInt1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01B20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_01K20C00D(
    BuiltInId::imageAtomicXor_UImage2DArray1_Int3_UInt1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01K20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_00w20C00D(
    BuiltInId::imageAtomicXor_ImageCubeArray1_Int3_UInt1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00w20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_01F20C00D(
    BuiltInId::imageAtomicXor_IImageCubeArray1_Int3_UInt1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01F20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_01O20C00D(
    BuiltInId::imageAtomicXor_UImageCubeArray1_Int3_UInt1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01O20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_00x10C00D(
    BuiltInId::imageAtomicXor_ImageRect1_Int2_UInt1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00x10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_01G10C00D(
    BuiltInId::imageAtomicXor_IImageRect1_Int2_UInt1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01G10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_01P10C00D(
    BuiltInId::imageAtomicXor_UImageRect1_Int2_UInt1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01P10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_00u10C00C00D(
    BuiltInId::imageAtomicXor_Image2DMS1_Int2_Int1_UInt1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00u10C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_01D10C00C00D(
    BuiltInId::imageAtomicXor_IImage2DMS1_Int2_Int1_UInt1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01D10C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_01M10C00C00D(
    BuiltInId::imageAtomicXor_UImage2DMS1_Int2_Int1_UInt1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01M10C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_00v20C00C00D(
    BuiltInId::imageAtomicXor_Image2DMSArray1_Int3_Int1_UInt1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00v20C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_01E20C00C00D(
    BuiltInId::imageAtomicXor_IImage2DMSArray1_Int3_Int1_UInt1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01E20C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_01N20C00C00D(
    BuiltInId::imageAtomicXor_UImage2DMSArray1_Int3_Int1_UInt1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01N20C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_00q10C00C(
    BuiltInId::imageAtomicXor_Image2D1_Int2_Int1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00q10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_00z10C00C(
    BuiltInId::imageAtomicXor_IImage2D1_Int2_Int1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00z10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_01I10C00C(
    BuiltInId::imageAtomicXor_UImage2D1_Int2_Int1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01I10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_00r20C00C(
    BuiltInId::imageAtomicXor_Image3D1_Int3_Int1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00r20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_01A20C00C(
    BuiltInId::imageAtomicXor_IImage3D1_Int3_Int1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01A20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_01J20C00C(
    BuiltInId::imageAtomicXor_UImage3D1_Int3_Int1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01J20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_00t20C00C(
    BuiltInId::imageAtomicXor_ImageCube1_Int3_Int1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00t20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_01C20C00C(
    BuiltInId::imageAtomicXor_IImageCube1_Int3_Int1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01C20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_01L20C00C(
    BuiltInId::imageAtomicXor_UImageCube1_Int3_Int1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01L20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_00y00C00C(
    BuiltInId::imageAtomicXor_ImageBuffer1_Int1_Int1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00y00C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_01H00C00C(
    BuiltInId::imageAtomicXor_IImageBuffer1_Int1_Int1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01H00C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_01Q00C00C(
    BuiltInId::imageAtomicXor_UImageBuffer1_Int1_Int1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01Q00C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_00s20C00C(
    BuiltInId::imageAtomicXor_Image2DArray1_Int3_Int1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00s20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_01B20C00C(
    BuiltInId::imageAtomicXor_IImage2DArray1_Int3_Int1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01B20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_01K20C00C(
    BuiltInId::imageAtomicXor_UImage2DArray1_Int3_Int1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01K20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_00w20C00C(
    BuiltInId::imageAtomicXor_ImageCubeArray1_Int3_Int1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00w20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_01F20C00C(
    BuiltInId::imageAtomicXor_IImageCubeArray1_Int3_Int1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01F20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_01O20C00C(
    BuiltInId::imageAtomicXor_UImageCubeArray1_Int3_Int1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01O20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_00x10C00C(
    BuiltInId::imageAtomicXor_ImageRect1_Int2_Int1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00x10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_01G10C00C(
    BuiltInId::imageAtomicXor_IImageRect1_Int2_Int1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01G10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_01P10C00C(
    BuiltInId::imageAtomicXor_UImageRect1_Int2_Int1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01P10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_00u10C00C00C(
    BuiltInId::imageAtomicXor_Image2DMS1_Int2_Int1_Int1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00u10C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_01D10C00C00C(
    BuiltInId::imageAtomicXor_IImage2DMS1_Int2_Int1_Int1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01D10C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_01M10C00C00C(
    BuiltInId::imageAtomicXor_UImage2DMS1_Int2_Int1_Int1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01M10C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_00v20C00C00C(
    BuiltInId::imageAtomicXor_Image2DMSArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00v20C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_01E20C00C00C(
    BuiltInId::imageAtomicXor_IImage2DMSArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01E20C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXor_01N20C00C00C(
    BuiltInId::imageAtomicXor_UImage2DMSArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicXor,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01N20C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicExchange_00q10C00D(
    BuiltInId::imageAtomicExchange_Image2D1_Int2_UInt1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00q10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_00z10C00D(
    BuiltInId::imageAtomicExchange_IImage2D1_Int2_UInt1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00z10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01I10C00D(
    BuiltInId::imageAtomicExchange_UImage2D1_Int2_UInt1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01I10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_00r20C00D(
    BuiltInId::imageAtomicExchange_Image3D1_Int3_UInt1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00r20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01A20C00D(
    BuiltInId::imageAtomicExchange_IImage3D1_Int3_UInt1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01A20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01J20C00D(
    BuiltInId::imageAtomicExchange_UImage3D1_Int3_UInt1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01J20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_00t20C00D(
    BuiltInId::imageAtomicExchange_ImageCube1_Int3_UInt1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00t20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01C20C00D(
    BuiltInId::imageAtomicExchange_IImageCube1_Int3_UInt1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01C20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01L20C00D(
    BuiltInId::imageAtomicExchange_UImageCube1_Int3_UInt1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01L20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_00y00C00D(
    BuiltInId::imageAtomicExchange_ImageBuffer1_Int1_UInt1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00y00C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01H00C00D(
    BuiltInId::imageAtomicExchange_IImageBuffer1_Int1_UInt1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01H00C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01Q00C00D(
    BuiltInId::imageAtomicExchange_UImageBuffer1_Int1_UInt1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01Q00C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_00s20C00D(
    BuiltInId::imageAtomicExchange_Image2DArray1_Int3_UInt1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00s20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01B20C00D(
    BuiltInId::imageAtomicExchange_IImage2DArray1_Int3_UInt1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01B20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01K20C00D(
    BuiltInId::imageAtomicExchange_UImage2DArray1_Int3_UInt1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01K20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_00w20C00D(
    BuiltInId::imageAtomicExchange_ImageCubeArray1_Int3_UInt1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00w20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01F20C00D(
    BuiltInId::imageAtomicExchange_IImageCubeArray1_Int3_UInt1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01F20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01O20C00D(
    BuiltInId::imageAtomicExchange_UImageCubeArray1_Int3_UInt1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01O20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_00x10C00D(
    BuiltInId::imageAtomicExchange_ImageRect1_Int2_UInt1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00x10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01G10C00D(
    BuiltInId::imageAtomicExchange_IImageRect1_Int2_UInt1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01G10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01P10C00D(
    BuiltInId::imageAtomicExchange_UImageRect1_Int2_UInt1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01P10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_00u10C00C00D(
    BuiltInId::imageAtomicExchange_Image2DMS1_Int2_Int1_UInt1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00u10C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01D10C00C00D(
    BuiltInId::imageAtomicExchange_IImage2DMS1_Int2_Int1_UInt1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01D10C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01M10C00C00D(
    BuiltInId::imageAtomicExchange_UImage2DMS1_Int2_Int1_UInt1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01M10C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_00v20C00C00D(
    BuiltInId::imageAtomicExchange_Image2DMSArray1_Int3_Int1_UInt1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00v20C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01E20C00C00D(
    BuiltInId::imageAtomicExchange_IImage2DMSArray1_Int3_Int1_UInt1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01E20C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01N20C00C00D(
    BuiltInId::imageAtomicExchange_UImage2DMSArray1_Int3_Int1_UInt1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01N20C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_00q10C00C(
    BuiltInId::imageAtomicExchange_Image2D1_Int2_Int1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00q10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_00z10C00C(
    BuiltInId::imageAtomicExchange_IImage2D1_Int2_Int1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00z10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01I10C00C(
    BuiltInId::imageAtomicExchange_UImage2D1_Int2_Int1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01I10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_00r20C00C(
    BuiltInId::imageAtomicExchange_Image3D1_Int3_Int1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00r20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01A20C00C(
    BuiltInId::imageAtomicExchange_IImage3D1_Int3_Int1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01A20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01J20C00C(
    BuiltInId::imageAtomicExchange_UImage3D1_Int3_Int1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01J20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_00t20C00C(
    BuiltInId::imageAtomicExchange_ImageCube1_Int3_Int1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00t20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01C20C00C(
    BuiltInId::imageAtomicExchange_IImageCube1_Int3_Int1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01C20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01L20C00C(
    BuiltInId::imageAtomicExchange_UImageCube1_Int3_Int1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01L20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_00y00C00C(
    BuiltInId::imageAtomicExchange_ImageBuffer1_Int1_Int1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00y00C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01H00C00C(
    BuiltInId::imageAtomicExchange_IImageBuffer1_Int1_Int1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01H00C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01Q00C00C(
    BuiltInId::imageAtomicExchange_UImageBuffer1_Int1_Int1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01Q00C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_00s20C00C(
    BuiltInId::imageAtomicExchange_Image2DArray1_Int3_Int1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00s20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01B20C00C(
    BuiltInId::imageAtomicExchange_IImage2DArray1_Int3_Int1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01B20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01K20C00C(
    BuiltInId::imageAtomicExchange_UImage2DArray1_Int3_Int1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01K20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_00w20C00C(
    BuiltInId::imageAtomicExchange_ImageCubeArray1_Int3_Int1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00w20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01F20C00C(
    BuiltInId::imageAtomicExchange_IImageCubeArray1_Int3_Int1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01F20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01O20C00C(
    BuiltInId::imageAtomicExchange_UImageCubeArray1_Int3_Int1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01O20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_00x10C00C(
    BuiltInId::imageAtomicExchange_ImageRect1_Int2_Int1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00x10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01G10C00C(
    BuiltInId::imageAtomicExchange_IImageRect1_Int2_Int1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01G10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01P10C00C(
    BuiltInId::imageAtomicExchange_UImageRect1_Int2_Int1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01P10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_00u10C00C00C(
    BuiltInId::imageAtomicExchange_Image2DMS1_Int2_Int1_Int1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00u10C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01D10C00C00C(
    BuiltInId::imageAtomicExchange_IImage2DMS1_Int2_Int1_Int1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01D10C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01M10C00C00C(
    BuiltInId::imageAtomicExchange_UImage2DMS1_Int2_Int1_Int1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01M10C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_00v20C00C00C(
    BuiltInId::imageAtomicExchange_Image2DMSArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00v20C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01E20C00C00C(
    BuiltInId::imageAtomicExchange_IImage2DMSArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01E20C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01N20C00C00C(
    BuiltInId::imageAtomicExchange_UImage2DMSArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01N20C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_00q10C00B(
    BuiltInId::imageAtomicExchange_Image2D1_Int2_Float1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00q10C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_00z10C00B(
    BuiltInId::imageAtomicExchange_IImage2D1_Int2_Float1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00z10C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01I10C00B(
    BuiltInId::imageAtomicExchange_UImage2D1_Int2_Float1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01I10C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_00r20C00B(
    BuiltInId::imageAtomicExchange_Image3D1_Int3_Float1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00r20C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01A20C00B(
    BuiltInId::imageAtomicExchange_IImage3D1_Int3_Float1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01A20C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01J20C00B(
    BuiltInId::imageAtomicExchange_UImage3D1_Int3_Float1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01J20C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_00t20C00B(
    BuiltInId::imageAtomicExchange_ImageCube1_Int3_Float1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00t20C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01C20C00B(
    BuiltInId::imageAtomicExchange_IImageCube1_Int3_Float1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01C20C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01L20C00B(
    BuiltInId::imageAtomicExchange_UImageCube1_Int3_Float1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01L20C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_00y00C00B(
    BuiltInId::imageAtomicExchange_ImageBuffer1_Int1_Float1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00y00C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01H00C00B(
    BuiltInId::imageAtomicExchange_IImageBuffer1_Int1_Float1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01H00C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01Q00C00B(
    BuiltInId::imageAtomicExchange_UImageBuffer1_Int1_Float1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01Q00C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_00s20C00B(
    BuiltInId::imageAtomicExchange_Image2DArray1_Int3_Float1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00s20C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01B20C00B(
    BuiltInId::imageAtomicExchange_IImage2DArray1_Int3_Float1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01B20C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01K20C00B(
    BuiltInId::imageAtomicExchange_UImage2DArray1_Int3_Float1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01K20C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_00w20C00B(
    BuiltInId::imageAtomicExchange_ImageCubeArray1_Int3_Float1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00w20C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01F20C00B(
    BuiltInId::imageAtomicExchange_IImageCubeArray1_Int3_Float1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01F20C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01O20C00B(
    BuiltInId::imageAtomicExchange_UImageCubeArray1_Int3_Float1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01O20C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_00x10C00B(
    BuiltInId::imageAtomicExchange_ImageRect1_Int2_Float1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00x10C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01G10C00B(
    BuiltInId::imageAtomicExchange_IImageRect1_Int2_Float1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01G10C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01P10C00B(
    BuiltInId::imageAtomicExchange_UImageRect1_Int2_Float1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01P10C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_00u10C00C00B(
    BuiltInId::imageAtomicExchange_Image2DMS1_Int2_Int1_Float1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00u10C00C00B,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01D10C00C00B(
    BuiltInId::imageAtomicExchange_IImage2DMS1_Int2_Int1_Float1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01D10C00C00B,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01M10C00C00B(
    BuiltInId::imageAtomicExchange_UImage2DMS1_Int2_Int1_Float1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01M10C00C00B,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_00v20C00C00B(
    BuiltInId::imageAtomicExchange_Image2DMSArray1_Int3_Int1_Float1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00v20C00C00B,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01E20C00C00B(
    BuiltInId::imageAtomicExchange_IImage2DMSArray1_Int3_Int1_Float1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01E20C00C00B,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchange_01N20C00C00B(
    BuiltInId::imageAtomicExchange_UImage2DMSArray1_Int3_Int1_Float1,
    BuiltInName::imageAtomicExchange,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01N20C00C00B,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicCompSwap_00q10C00D00D(
    BuiltInId::imageAtomicCompSwap_Image2D1_Int2_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00q10C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_00z10C00D00D(
    BuiltInId::imageAtomicCompSwap_IImage2D1_Int2_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00z10C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_01I10C00D00D(
    BuiltInId::imageAtomicCompSwap_UImage2D1_Int2_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01I10C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_00r20C00D00D(
    BuiltInId::imageAtomicCompSwap_Image3D1_Int3_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00r20C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_01A20C00D00D(
    BuiltInId::imageAtomicCompSwap_IImage3D1_Int3_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01A20C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_01J20C00D00D(
    BuiltInId::imageAtomicCompSwap_UImage3D1_Int3_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01J20C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_00t20C00D00D(
    BuiltInId::imageAtomicCompSwap_ImageCube1_Int3_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00t20C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_01C20C00D00D(
    BuiltInId::imageAtomicCompSwap_IImageCube1_Int3_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01C20C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_01L20C00D00D(
    BuiltInId::imageAtomicCompSwap_UImageCube1_Int3_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01L20C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_00y00C00D00D(
    BuiltInId::imageAtomicCompSwap_ImageBuffer1_Int1_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00y00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_01H00C00D00D(
    BuiltInId::imageAtomicCompSwap_IImageBuffer1_Int1_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01H00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_01Q00C00D00D(
    BuiltInId::imageAtomicCompSwap_UImageBuffer1_Int1_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01Q00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_00s20C00D00D(
    BuiltInId::imageAtomicCompSwap_Image2DArray1_Int3_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00s20C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_01B20C00D00D(
    BuiltInId::imageAtomicCompSwap_IImage2DArray1_Int3_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01B20C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_01K20C00D00D(
    BuiltInId::imageAtomicCompSwap_UImage2DArray1_Int3_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01K20C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_00w20C00D00D(
    BuiltInId::imageAtomicCompSwap_ImageCubeArray1_Int3_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00w20C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_01F20C00D00D(
    BuiltInId::imageAtomicCompSwap_IImageCubeArray1_Int3_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01F20C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_01O20C00D00D(
    BuiltInId::imageAtomicCompSwap_UImageCubeArray1_Int3_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01O20C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_00x10C00D00D(
    BuiltInId::imageAtomicCompSwap_ImageRect1_Int2_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00x10C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_01G10C00D00D(
    BuiltInId::imageAtomicCompSwap_IImageRect1_Int2_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01G10C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_01P10C00D00D(
    BuiltInId::imageAtomicCompSwap_UImageRect1_Int2_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01P10C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_00u10C00C00D00D(
    BuiltInId::imageAtomicCompSwap_Image2DMS1_Int2_Int1_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00u10C00C00D00D,
    5,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_01D10C00C00D00D(
    BuiltInId::imageAtomicCompSwap_IImage2DMS1_Int2_Int1_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01D10C00C00D00D,
    5,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_01M10C00C00D00D(
    BuiltInId::imageAtomicCompSwap_UImage2DMS1_Int2_Int1_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01M10C00C00D00D,
    5,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_00v20C00C00D00D(
    BuiltInId::imageAtomicCompSwap_Image2DMSArray1_Int3_Int1_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00v20C00C00D00D,
    5,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_01E20C00C00D00D(
    BuiltInId::imageAtomicCompSwap_IImage2DMSArray1_Int3_Int1_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01E20C00C00D00D,
    5,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_01N20C00C00D00D(
    BuiltInId::imageAtomicCompSwap_UImage2DMSArray1_Int3_Int1_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01N20C00C00D00D,
    5,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_00q10C00C00C(
    BuiltInId::imageAtomicCompSwap_Image2D1_Int2_Int1_Int1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00q10C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_00z10C00C00C(
    BuiltInId::imageAtomicCompSwap_IImage2D1_Int2_Int1_Int1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00z10C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_01I10C00C00C(
    BuiltInId::imageAtomicCompSwap_UImage2D1_Int2_Int1_Int1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01I10C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_00r20C00C00C(
    BuiltInId::imageAtomicCompSwap_Image3D1_Int3_Int1_Int1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00r20C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_01A20C00C00C(
    BuiltInId::imageAtomicCompSwap_IImage3D1_Int3_Int1_Int1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01A20C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_01J20C00C00C(
    BuiltInId::imageAtomicCompSwap_UImage3D1_Int3_Int1_Int1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01J20C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_00t20C00C00C(
    BuiltInId::imageAtomicCompSwap_ImageCube1_Int3_Int1_Int1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00t20C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_01C20C00C00C(
    BuiltInId::imageAtomicCompSwap_IImageCube1_Int3_Int1_Int1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01C20C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_01L20C00C00C(
    BuiltInId::imageAtomicCompSwap_UImageCube1_Int3_Int1_Int1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01L20C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_00y00C00C00C(
    BuiltInId::imageAtomicCompSwap_ImageBuffer1_Int1_Int1_Int1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00y00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_01H00C00C00C(
    BuiltInId::imageAtomicCompSwap_IImageBuffer1_Int1_Int1_Int1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01H00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_01Q00C00C00C(
    BuiltInId::imageAtomicCompSwap_UImageBuffer1_Int1_Int1_Int1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01Q00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_00s20C00C00C(
    BuiltInId::imageAtomicCompSwap_Image2DArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00s20C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_01B20C00C00C(
    BuiltInId::imageAtomicCompSwap_IImage2DArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01B20C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_01K20C00C00C(
    BuiltInId::imageAtomicCompSwap_UImage2DArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01K20C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_00w20C00C00C(
    BuiltInId::imageAtomicCompSwap_ImageCubeArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00w20C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_01F20C00C00C(
    BuiltInId::imageAtomicCompSwap_IImageCubeArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01F20C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_01O20C00C00C(
    BuiltInId::imageAtomicCompSwap_UImageCubeArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01O20C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_00x10C00C00C(
    BuiltInId::imageAtomicCompSwap_ImageRect1_Int2_Int1_Int1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00x10C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_01G10C00C00C(
    BuiltInId::imageAtomicCompSwap_IImageRect1_Int2_Int1_Int1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01G10C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_01P10C00C00C(
    BuiltInId::imageAtomicCompSwap_UImageRect1_Int2_Int1_Int1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01P10C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_00u10C00C00C00C(
    BuiltInId::imageAtomicCompSwap_Image2DMS1_Int2_Int1_Int1_Int1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00u10C00C00C00C,
    5,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_01D10C00C00C00C(
    BuiltInId::imageAtomicCompSwap_IImage2DMS1_Int2_Int1_Int1_Int1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01D10C00C00C00C,
    5,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_01M10C00C00C00C(
    BuiltInId::imageAtomicCompSwap_UImage2DMS1_Int2_Int1_Int1_Int1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01M10C00C00C00C,
    5,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_00v20C00C00C00C(
    BuiltInId::imageAtomicCompSwap_Image2DMSArray1_Int3_Int1_Int1_Int1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00v20C00C00C00C,
    5,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_01E20C00C00C00C(
    BuiltInId::imageAtomicCompSwap_IImage2DMSArray1_Int3_Int1_Int1_Int1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01E20C00C00C00C,
    5,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwap_01N20C00C00C00C(
    BuiltInId::imageAtomicCompSwap_UImage2DMSArray1_Int3_Int1_Int1_Int1,
    BuiltInName::imageAtomicCompSwap,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01N20C00C00C00C,
    5,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicAddExt_00q10C00D(
    BuiltInId::imageAtomicAddExt_Image2D1_Int2_UInt1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00q10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_00z10C00D(
    BuiltInId::imageAtomicAddExt_IImage2D1_Int2_UInt1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00z10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_01I10C00D(
    BuiltInId::imageAtomicAddExt_UImage2D1_Int2_UInt1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01I10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_00r20C00D(
    BuiltInId::imageAtomicAddExt_Image3D1_Int3_UInt1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00r20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_01A20C00D(
    BuiltInId::imageAtomicAddExt_IImage3D1_Int3_UInt1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01A20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_01J20C00D(
    BuiltInId::imageAtomicAddExt_UImage3D1_Int3_UInt1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01J20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_00t20C00D(
    BuiltInId::imageAtomicAddExt_ImageCube1_Int3_UInt1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00t20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_01C20C00D(
    BuiltInId::imageAtomicAddExt_IImageCube1_Int3_UInt1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01C20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_01L20C00D(
    BuiltInId::imageAtomicAddExt_UImageCube1_Int3_UInt1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01L20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_00y00C00D(
    BuiltInId::imageAtomicAddExt_ImageBuffer1_Int1_UInt1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00y00C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_01H00C00D(
    BuiltInId::imageAtomicAddExt_IImageBuffer1_Int1_UInt1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01H00C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_01Q00C00D(
    BuiltInId::imageAtomicAddExt_UImageBuffer1_Int1_UInt1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01Q00C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_00s20C00D(
    BuiltInId::imageAtomicAddExt_Image2DArray1_Int3_UInt1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00s20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_01B20C00D(
    BuiltInId::imageAtomicAddExt_IImage2DArray1_Int3_UInt1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01B20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_01K20C00D(
    BuiltInId::imageAtomicAddExt_UImage2DArray1_Int3_UInt1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01K20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_00w20C00D(
    BuiltInId::imageAtomicAddExt_ImageCubeArray1_Int3_UInt1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00w20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_01F20C00D(
    BuiltInId::imageAtomicAddExt_IImageCubeArray1_Int3_UInt1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01F20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_01O20C00D(
    BuiltInId::imageAtomicAddExt_UImageCubeArray1_Int3_UInt1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01O20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_00x10C00D(
    BuiltInId::imageAtomicAddExt_ImageRect1_Int2_UInt1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00x10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_01G10C00D(
    BuiltInId::imageAtomicAddExt_IImageRect1_Int2_UInt1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01G10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_01P10C00D(
    BuiltInId::imageAtomicAddExt_UImageRect1_Int2_UInt1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01P10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_00u10C00C00D(
    BuiltInId::imageAtomicAddExt_Image2DMS1_Int2_Int1_UInt1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00u10C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_01D10C00C00D(
    BuiltInId::imageAtomicAddExt_IImage2DMS1_Int2_Int1_UInt1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01D10C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_01M10C00C00D(
    BuiltInId::imageAtomicAddExt_UImage2DMS1_Int2_Int1_UInt1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01M10C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_00v20C00C00D(
    BuiltInId::imageAtomicAddExt_Image2DMSArray1_Int3_Int1_UInt1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00v20C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_01E20C00C00D(
    BuiltInId::imageAtomicAddExt_IImage2DMSArray1_Int3_Int1_UInt1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01E20C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_01N20C00C00D(
    BuiltInId::imageAtomicAddExt_UImage2DMSArray1_Int3_Int1_UInt1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01N20C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_00q10C00C(
    BuiltInId::imageAtomicAddExt_Image2D1_Int2_Int1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00q10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_00z10C00C(
    BuiltInId::imageAtomicAddExt_IImage2D1_Int2_Int1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00z10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_01I10C00C(
    BuiltInId::imageAtomicAddExt_UImage2D1_Int2_Int1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01I10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_00r20C00C(
    BuiltInId::imageAtomicAddExt_Image3D1_Int3_Int1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00r20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_01A20C00C(
    BuiltInId::imageAtomicAddExt_IImage3D1_Int3_Int1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01A20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_01J20C00C(
    BuiltInId::imageAtomicAddExt_UImage3D1_Int3_Int1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01J20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_00t20C00C(
    BuiltInId::imageAtomicAddExt_ImageCube1_Int3_Int1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00t20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_01C20C00C(
    BuiltInId::imageAtomicAddExt_IImageCube1_Int3_Int1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01C20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_01L20C00C(
    BuiltInId::imageAtomicAddExt_UImageCube1_Int3_Int1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01L20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_00y00C00C(
    BuiltInId::imageAtomicAddExt_ImageBuffer1_Int1_Int1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00y00C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_01H00C00C(
    BuiltInId::imageAtomicAddExt_IImageBuffer1_Int1_Int1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01H00C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_01Q00C00C(
    BuiltInId::imageAtomicAddExt_UImageBuffer1_Int1_Int1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01Q00C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_00s20C00C(
    BuiltInId::imageAtomicAddExt_Image2DArray1_Int3_Int1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00s20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_01B20C00C(
    BuiltInId::imageAtomicAddExt_IImage2DArray1_Int3_Int1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01B20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_01K20C00C(
    BuiltInId::imageAtomicAddExt_UImage2DArray1_Int3_Int1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01K20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_00w20C00C(
    BuiltInId::imageAtomicAddExt_ImageCubeArray1_Int3_Int1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00w20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_01F20C00C(
    BuiltInId::imageAtomicAddExt_IImageCubeArray1_Int3_Int1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01F20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_01O20C00C(
    BuiltInId::imageAtomicAddExt_UImageCubeArray1_Int3_Int1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01O20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_00x10C00C(
    BuiltInId::imageAtomicAddExt_ImageRect1_Int2_Int1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00x10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_01G10C00C(
    BuiltInId::imageAtomicAddExt_IImageRect1_Int2_Int1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01G10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_01P10C00C(
    BuiltInId::imageAtomicAddExt_UImageRect1_Int2_Int1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01P10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_00u10C00C00C(
    BuiltInId::imageAtomicAddExt_Image2DMS1_Int2_Int1_Int1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00u10C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_01D10C00C00C(
    BuiltInId::imageAtomicAddExt_IImage2DMS1_Int2_Int1_Int1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01D10C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_01M10C00C00C(
    BuiltInId::imageAtomicAddExt_UImage2DMS1_Int2_Int1_Int1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01M10C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_00v20C00C00C(
    BuiltInId::imageAtomicAddExt_Image2DMSArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00v20C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_01E20C00C00C(
    BuiltInId::imageAtomicAddExt_IImage2DMSArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01E20C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicAddExt_01N20C00C00C(
    BuiltInId::imageAtomicAddExt_UImage2DMSArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicAddExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01N20C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAdd,
    false);
constexpr const TFunction imageAtomicMinExt_00q10C00D(
    BuiltInId::imageAtomicMinExt_Image2D1_Int2_UInt1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00q10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_00z10C00D(
    BuiltInId::imageAtomicMinExt_IImage2D1_Int2_UInt1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00z10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_01I10C00D(
    BuiltInId::imageAtomicMinExt_UImage2D1_Int2_UInt1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01I10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_00r20C00D(
    BuiltInId::imageAtomicMinExt_Image3D1_Int3_UInt1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00r20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_01A20C00D(
    BuiltInId::imageAtomicMinExt_IImage3D1_Int3_UInt1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01A20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_01J20C00D(
    BuiltInId::imageAtomicMinExt_UImage3D1_Int3_UInt1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01J20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_00t20C00D(
    BuiltInId::imageAtomicMinExt_ImageCube1_Int3_UInt1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00t20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_01C20C00D(
    BuiltInId::imageAtomicMinExt_IImageCube1_Int3_UInt1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01C20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_01L20C00D(
    BuiltInId::imageAtomicMinExt_UImageCube1_Int3_UInt1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01L20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_00y00C00D(
    BuiltInId::imageAtomicMinExt_ImageBuffer1_Int1_UInt1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00y00C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_01H00C00D(
    BuiltInId::imageAtomicMinExt_IImageBuffer1_Int1_UInt1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01H00C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_01Q00C00D(
    BuiltInId::imageAtomicMinExt_UImageBuffer1_Int1_UInt1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01Q00C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_00s20C00D(
    BuiltInId::imageAtomicMinExt_Image2DArray1_Int3_UInt1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00s20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_01B20C00D(
    BuiltInId::imageAtomicMinExt_IImage2DArray1_Int3_UInt1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01B20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_01K20C00D(
    BuiltInId::imageAtomicMinExt_UImage2DArray1_Int3_UInt1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01K20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_00w20C00D(
    BuiltInId::imageAtomicMinExt_ImageCubeArray1_Int3_UInt1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00w20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_01F20C00D(
    BuiltInId::imageAtomicMinExt_IImageCubeArray1_Int3_UInt1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01F20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_01O20C00D(
    BuiltInId::imageAtomicMinExt_UImageCubeArray1_Int3_UInt1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01O20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_00x10C00D(
    BuiltInId::imageAtomicMinExt_ImageRect1_Int2_UInt1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00x10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_01G10C00D(
    BuiltInId::imageAtomicMinExt_IImageRect1_Int2_UInt1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01G10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_01P10C00D(
    BuiltInId::imageAtomicMinExt_UImageRect1_Int2_UInt1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01P10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_00u10C00C00D(
    BuiltInId::imageAtomicMinExt_Image2DMS1_Int2_Int1_UInt1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00u10C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_01D10C00C00D(
    BuiltInId::imageAtomicMinExt_IImage2DMS1_Int2_Int1_UInt1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01D10C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_01M10C00C00D(
    BuiltInId::imageAtomicMinExt_UImage2DMS1_Int2_Int1_UInt1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01M10C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_00v20C00C00D(
    BuiltInId::imageAtomicMinExt_Image2DMSArray1_Int3_Int1_UInt1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00v20C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_01E20C00C00D(
    BuiltInId::imageAtomicMinExt_IImage2DMSArray1_Int3_Int1_UInt1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01E20C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_01N20C00C00D(
    BuiltInId::imageAtomicMinExt_UImage2DMSArray1_Int3_Int1_UInt1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01N20C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_00q10C00C(
    BuiltInId::imageAtomicMinExt_Image2D1_Int2_Int1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00q10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_00z10C00C(
    BuiltInId::imageAtomicMinExt_IImage2D1_Int2_Int1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00z10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_01I10C00C(
    BuiltInId::imageAtomicMinExt_UImage2D1_Int2_Int1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01I10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_00r20C00C(
    BuiltInId::imageAtomicMinExt_Image3D1_Int3_Int1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00r20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_01A20C00C(
    BuiltInId::imageAtomicMinExt_IImage3D1_Int3_Int1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01A20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_01J20C00C(
    BuiltInId::imageAtomicMinExt_UImage3D1_Int3_Int1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01J20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_00t20C00C(
    BuiltInId::imageAtomicMinExt_ImageCube1_Int3_Int1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00t20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_01C20C00C(
    BuiltInId::imageAtomicMinExt_IImageCube1_Int3_Int1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01C20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_01L20C00C(
    BuiltInId::imageAtomicMinExt_UImageCube1_Int3_Int1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01L20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_00y00C00C(
    BuiltInId::imageAtomicMinExt_ImageBuffer1_Int1_Int1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00y00C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_01H00C00C(
    BuiltInId::imageAtomicMinExt_IImageBuffer1_Int1_Int1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01H00C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_01Q00C00C(
    BuiltInId::imageAtomicMinExt_UImageBuffer1_Int1_Int1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01Q00C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_00s20C00C(
    BuiltInId::imageAtomicMinExt_Image2DArray1_Int3_Int1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00s20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_01B20C00C(
    BuiltInId::imageAtomicMinExt_IImage2DArray1_Int3_Int1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01B20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_01K20C00C(
    BuiltInId::imageAtomicMinExt_UImage2DArray1_Int3_Int1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01K20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_00w20C00C(
    BuiltInId::imageAtomicMinExt_ImageCubeArray1_Int3_Int1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00w20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_01F20C00C(
    BuiltInId::imageAtomicMinExt_IImageCubeArray1_Int3_Int1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01F20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_01O20C00C(
    BuiltInId::imageAtomicMinExt_UImageCubeArray1_Int3_Int1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01O20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_00x10C00C(
    BuiltInId::imageAtomicMinExt_ImageRect1_Int2_Int1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00x10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_01G10C00C(
    BuiltInId::imageAtomicMinExt_IImageRect1_Int2_Int1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01G10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_01P10C00C(
    BuiltInId::imageAtomicMinExt_UImageRect1_Int2_Int1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01P10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_00u10C00C00C(
    BuiltInId::imageAtomicMinExt_Image2DMS1_Int2_Int1_Int1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00u10C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_01D10C00C00C(
    BuiltInId::imageAtomicMinExt_IImage2DMS1_Int2_Int1_Int1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01D10C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_01M10C00C00C(
    BuiltInId::imageAtomicMinExt_UImage2DMS1_Int2_Int1_Int1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01M10C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_00v20C00C00C(
    BuiltInId::imageAtomicMinExt_Image2DMSArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00v20C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_01E20C00C00C(
    BuiltInId::imageAtomicMinExt_IImage2DMSArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01E20C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMinExt_01N20C00C00C(
    BuiltInId::imageAtomicMinExt_UImage2DMSArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicMinExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01N20C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMin,
    false);
constexpr const TFunction imageAtomicMaxExt_00q10C00D(
    BuiltInId::imageAtomicMaxExt_Image2D1_Int2_UInt1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00q10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_00z10C00D(
    BuiltInId::imageAtomicMaxExt_IImage2D1_Int2_UInt1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00z10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_01I10C00D(
    BuiltInId::imageAtomicMaxExt_UImage2D1_Int2_UInt1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01I10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_00r20C00D(
    BuiltInId::imageAtomicMaxExt_Image3D1_Int3_UInt1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00r20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_01A20C00D(
    BuiltInId::imageAtomicMaxExt_IImage3D1_Int3_UInt1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01A20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_01J20C00D(
    BuiltInId::imageAtomicMaxExt_UImage3D1_Int3_UInt1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01J20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_00t20C00D(
    BuiltInId::imageAtomicMaxExt_ImageCube1_Int3_UInt1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00t20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_01C20C00D(
    BuiltInId::imageAtomicMaxExt_IImageCube1_Int3_UInt1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01C20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_01L20C00D(
    BuiltInId::imageAtomicMaxExt_UImageCube1_Int3_UInt1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01L20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_00y00C00D(
    BuiltInId::imageAtomicMaxExt_ImageBuffer1_Int1_UInt1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00y00C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_01H00C00D(
    BuiltInId::imageAtomicMaxExt_IImageBuffer1_Int1_UInt1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01H00C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_01Q00C00D(
    BuiltInId::imageAtomicMaxExt_UImageBuffer1_Int1_UInt1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01Q00C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_00s20C00D(
    BuiltInId::imageAtomicMaxExt_Image2DArray1_Int3_UInt1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00s20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_01B20C00D(
    BuiltInId::imageAtomicMaxExt_IImage2DArray1_Int3_UInt1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01B20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_01K20C00D(
    BuiltInId::imageAtomicMaxExt_UImage2DArray1_Int3_UInt1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01K20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_00w20C00D(
    BuiltInId::imageAtomicMaxExt_ImageCubeArray1_Int3_UInt1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00w20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_01F20C00D(
    BuiltInId::imageAtomicMaxExt_IImageCubeArray1_Int3_UInt1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01F20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_01O20C00D(
    BuiltInId::imageAtomicMaxExt_UImageCubeArray1_Int3_UInt1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01O20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_00x10C00D(
    BuiltInId::imageAtomicMaxExt_ImageRect1_Int2_UInt1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00x10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_01G10C00D(
    BuiltInId::imageAtomicMaxExt_IImageRect1_Int2_UInt1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01G10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_01P10C00D(
    BuiltInId::imageAtomicMaxExt_UImageRect1_Int2_UInt1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01P10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_00u10C00C00D(
    BuiltInId::imageAtomicMaxExt_Image2DMS1_Int2_Int1_UInt1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00u10C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_01D10C00C00D(
    BuiltInId::imageAtomicMaxExt_IImage2DMS1_Int2_Int1_UInt1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01D10C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_01M10C00C00D(
    BuiltInId::imageAtomicMaxExt_UImage2DMS1_Int2_Int1_UInt1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01M10C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_00v20C00C00D(
    BuiltInId::imageAtomicMaxExt_Image2DMSArray1_Int3_Int1_UInt1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00v20C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_01E20C00C00D(
    BuiltInId::imageAtomicMaxExt_IImage2DMSArray1_Int3_Int1_UInt1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01E20C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_01N20C00C00D(
    BuiltInId::imageAtomicMaxExt_UImage2DMSArray1_Int3_Int1_UInt1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01N20C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_00q10C00C(
    BuiltInId::imageAtomicMaxExt_Image2D1_Int2_Int1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00q10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_00z10C00C(
    BuiltInId::imageAtomicMaxExt_IImage2D1_Int2_Int1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00z10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_01I10C00C(
    BuiltInId::imageAtomicMaxExt_UImage2D1_Int2_Int1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01I10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_00r20C00C(
    BuiltInId::imageAtomicMaxExt_Image3D1_Int3_Int1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00r20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_01A20C00C(
    BuiltInId::imageAtomicMaxExt_IImage3D1_Int3_Int1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01A20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_01J20C00C(
    BuiltInId::imageAtomicMaxExt_UImage3D1_Int3_Int1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01J20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_00t20C00C(
    BuiltInId::imageAtomicMaxExt_ImageCube1_Int3_Int1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00t20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_01C20C00C(
    BuiltInId::imageAtomicMaxExt_IImageCube1_Int3_Int1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01C20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_01L20C00C(
    BuiltInId::imageAtomicMaxExt_UImageCube1_Int3_Int1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01L20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_00y00C00C(
    BuiltInId::imageAtomicMaxExt_ImageBuffer1_Int1_Int1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00y00C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_01H00C00C(
    BuiltInId::imageAtomicMaxExt_IImageBuffer1_Int1_Int1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01H00C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_01Q00C00C(
    BuiltInId::imageAtomicMaxExt_UImageBuffer1_Int1_Int1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01Q00C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_00s20C00C(
    BuiltInId::imageAtomicMaxExt_Image2DArray1_Int3_Int1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00s20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_01B20C00C(
    BuiltInId::imageAtomicMaxExt_IImage2DArray1_Int3_Int1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01B20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_01K20C00C(
    BuiltInId::imageAtomicMaxExt_UImage2DArray1_Int3_Int1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01K20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_00w20C00C(
    BuiltInId::imageAtomicMaxExt_ImageCubeArray1_Int3_Int1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00w20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_01F20C00C(
    BuiltInId::imageAtomicMaxExt_IImageCubeArray1_Int3_Int1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01F20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_01O20C00C(
    BuiltInId::imageAtomicMaxExt_UImageCubeArray1_Int3_Int1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01O20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_00x10C00C(
    BuiltInId::imageAtomicMaxExt_ImageRect1_Int2_Int1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00x10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_01G10C00C(
    BuiltInId::imageAtomicMaxExt_IImageRect1_Int2_Int1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01G10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_01P10C00C(
    BuiltInId::imageAtomicMaxExt_UImageRect1_Int2_Int1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01P10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_00u10C00C00C(
    BuiltInId::imageAtomicMaxExt_Image2DMS1_Int2_Int1_Int1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00u10C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_01D10C00C00C(
    BuiltInId::imageAtomicMaxExt_IImage2DMS1_Int2_Int1_Int1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01D10C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_01M10C00C00C(
    BuiltInId::imageAtomicMaxExt_UImage2DMS1_Int2_Int1_Int1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01M10C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_00v20C00C00C(
    BuiltInId::imageAtomicMaxExt_Image2DMSArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00v20C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_01E20C00C00C(
    BuiltInId::imageAtomicMaxExt_IImage2DMSArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01E20C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicMaxExt_01N20C00C00C(
    BuiltInId::imageAtomicMaxExt_UImage2DMSArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicMaxExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01N20C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicMax,
    false);
constexpr const TFunction imageAtomicAndExt_00q10C00D(
    BuiltInId::imageAtomicAndExt_Image2D1_Int2_UInt1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00q10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_00z10C00D(
    BuiltInId::imageAtomicAndExt_IImage2D1_Int2_UInt1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00z10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_01I10C00D(
    BuiltInId::imageAtomicAndExt_UImage2D1_Int2_UInt1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01I10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_00r20C00D(
    BuiltInId::imageAtomicAndExt_Image3D1_Int3_UInt1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00r20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_01A20C00D(
    BuiltInId::imageAtomicAndExt_IImage3D1_Int3_UInt1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01A20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_01J20C00D(
    BuiltInId::imageAtomicAndExt_UImage3D1_Int3_UInt1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01J20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_00t20C00D(
    BuiltInId::imageAtomicAndExt_ImageCube1_Int3_UInt1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00t20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_01C20C00D(
    BuiltInId::imageAtomicAndExt_IImageCube1_Int3_UInt1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01C20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_01L20C00D(
    BuiltInId::imageAtomicAndExt_UImageCube1_Int3_UInt1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01L20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_00y00C00D(
    BuiltInId::imageAtomicAndExt_ImageBuffer1_Int1_UInt1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00y00C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_01H00C00D(
    BuiltInId::imageAtomicAndExt_IImageBuffer1_Int1_UInt1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01H00C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_01Q00C00D(
    BuiltInId::imageAtomicAndExt_UImageBuffer1_Int1_UInt1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01Q00C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_00s20C00D(
    BuiltInId::imageAtomicAndExt_Image2DArray1_Int3_UInt1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00s20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_01B20C00D(
    BuiltInId::imageAtomicAndExt_IImage2DArray1_Int3_UInt1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01B20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_01K20C00D(
    BuiltInId::imageAtomicAndExt_UImage2DArray1_Int3_UInt1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01K20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_00w20C00D(
    BuiltInId::imageAtomicAndExt_ImageCubeArray1_Int3_UInt1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00w20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_01F20C00D(
    BuiltInId::imageAtomicAndExt_IImageCubeArray1_Int3_UInt1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01F20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_01O20C00D(
    BuiltInId::imageAtomicAndExt_UImageCubeArray1_Int3_UInt1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01O20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_00x10C00D(
    BuiltInId::imageAtomicAndExt_ImageRect1_Int2_UInt1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00x10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_01G10C00D(
    BuiltInId::imageAtomicAndExt_IImageRect1_Int2_UInt1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01G10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_01P10C00D(
    BuiltInId::imageAtomicAndExt_UImageRect1_Int2_UInt1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01P10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_00u10C00C00D(
    BuiltInId::imageAtomicAndExt_Image2DMS1_Int2_Int1_UInt1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00u10C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_01D10C00C00D(
    BuiltInId::imageAtomicAndExt_IImage2DMS1_Int2_Int1_UInt1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01D10C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_01M10C00C00D(
    BuiltInId::imageAtomicAndExt_UImage2DMS1_Int2_Int1_UInt1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01M10C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_00v20C00C00D(
    BuiltInId::imageAtomicAndExt_Image2DMSArray1_Int3_Int1_UInt1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00v20C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_01E20C00C00D(
    BuiltInId::imageAtomicAndExt_IImage2DMSArray1_Int3_Int1_UInt1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01E20C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_01N20C00C00D(
    BuiltInId::imageAtomicAndExt_UImage2DMSArray1_Int3_Int1_UInt1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01N20C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_00q10C00C(
    BuiltInId::imageAtomicAndExt_Image2D1_Int2_Int1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00q10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_00z10C00C(
    BuiltInId::imageAtomicAndExt_IImage2D1_Int2_Int1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00z10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_01I10C00C(
    BuiltInId::imageAtomicAndExt_UImage2D1_Int2_Int1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01I10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_00r20C00C(
    BuiltInId::imageAtomicAndExt_Image3D1_Int3_Int1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00r20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_01A20C00C(
    BuiltInId::imageAtomicAndExt_IImage3D1_Int3_Int1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01A20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_01J20C00C(
    BuiltInId::imageAtomicAndExt_UImage3D1_Int3_Int1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01J20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_00t20C00C(
    BuiltInId::imageAtomicAndExt_ImageCube1_Int3_Int1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00t20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_01C20C00C(
    BuiltInId::imageAtomicAndExt_IImageCube1_Int3_Int1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01C20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_01L20C00C(
    BuiltInId::imageAtomicAndExt_UImageCube1_Int3_Int1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01L20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_00y00C00C(
    BuiltInId::imageAtomicAndExt_ImageBuffer1_Int1_Int1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00y00C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_01H00C00C(
    BuiltInId::imageAtomicAndExt_IImageBuffer1_Int1_Int1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01H00C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_01Q00C00C(
    BuiltInId::imageAtomicAndExt_UImageBuffer1_Int1_Int1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01Q00C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_00s20C00C(
    BuiltInId::imageAtomicAndExt_Image2DArray1_Int3_Int1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00s20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_01B20C00C(
    BuiltInId::imageAtomicAndExt_IImage2DArray1_Int3_Int1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01B20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_01K20C00C(
    BuiltInId::imageAtomicAndExt_UImage2DArray1_Int3_Int1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01K20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_00w20C00C(
    BuiltInId::imageAtomicAndExt_ImageCubeArray1_Int3_Int1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00w20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_01F20C00C(
    BuiltInId::imageAtomicAndExt_IImageCubeArray1_Int3_Int1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01F20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_01O20C00C(
    BuiltInId::imageAtomicAndExt_UImageCubeArray1_Int3_Int1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01O20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_00x10C00C(
    BuiltInId::imageAtomicAndExt_ImageRect1_Int2_Int1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00x10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_01G10C00C(
    BuiltInId::imageAtomicAndExt_IImageRect1_Int2_Int1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01G10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_01P10C00C(
    BuiltInId::imageAtomicAndExt_UImageRect1_Int2_Int1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01P10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_00u10C00C00C(
    BuiltInId::imageAtomicAndExt_Image2DMS1_Int2_Int1_Int1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00u10C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_01D10C00C00C(
    BuiltInId::imageAtomicAndExt_IImage2DMS1_Int2_Int1_Int1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01D10C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_01M10C00C00C(
    BuiltInId::imageAtomicAndExt_UImage2DMS1_Int2_Int1_Int1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01M10C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_00v20C00C00C(
    BuiltInId::imageAtomicAndExt_Image2DMSArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00v20C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_01E20C00C00C(
    BuiltInId::imageAtomicAndExt_IImage2DMSArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01E20C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicAndExt_01N20C00C00C(
    BuiltInId::imageAtomicAndExt_UImage2DMSArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicAndExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01N20C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicAnd,
    false);
constexpr const TFunction imageAtomicOrExt_00q10C00D(
    BuiltInId::imageAtomicOrExt_Image2D1_Int2_UInt1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00q10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_00z10C00D(
    BuiltInId::imageAtomicOrExt_IImage2D1_Int2_UInt1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00z10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_01I10C00D(
    BuiltInId::imageAtomicOrExt_UImage2D1_Int2_UInt1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01I10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_00r20C00D(
    BuiltInId::imageAtomicOrExt_Image3D1_Int3_UInt1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00r20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_01A20C00D(
    BuiltInId::imageAtomicOrExt_IImage3D1_Int3_UInt1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01A20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_01J20C00D(
    BuiltInId::imageAtomicOrExt_UImage3D1_Int3_UInt1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01J20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_00t20C00D(
    BuiltInId::imageAtomicOrExt_ImageCube1_Int3_UInt1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00t20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_01C20C00D(
    BuiltInId::imageAtomicOrExt_IImageCube1_Int3_UInt1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01C20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_01L20C00D(
    BuiltInId::imageAtomicOrExt_UImageCube1_Int3_UInt1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01L20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_00y00C00D(
    BuiltInId::imageAtomicOrExt_ImageBuffer1_Int1_UInt1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00y00C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_01H00C00D(
    BuiltInId::imageAtomicOrExt_IImageBuffer1_Int1_UInt1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01H00C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_01Q00C00D(
    BuiltInId::imageAtomicOrExt_UImageBuffer1_Int1_UInt1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01Q00C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_00s20C00D(
    BuiltInId::imageAtomicOrExt_Image2DArray1_Int3_UInt1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00s20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_01B20C00D(
    BuiltInId::imageAtomicOrExt_IImage2DArray1_Int3_UInt1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01B20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_01K20C00D(
    BuiltInId::imageAtomicOrExt_UImage2DArray1_Int3_UInt1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01K20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_00w20C00D(
    BuiltInId::imageAtomicOrExt_ImageCubeArray1_Int3_UInt1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00w20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_01F20C00D(
    BuiltInId::imageAtomicOrExt_IImageCubeArray1_Int3_UInt1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01F20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_01O20C00D(
    BuiltInId::imageAtomicOrExt_UImageCubeArray1_Int3_UInt1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01O20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_00x10C00D(
    BuiltInId::imageAtomicOrExt_ImageRect1_Int2_UInt1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00x10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_01G10C00D(
    BuiltInId::imageAtomicOrExt_IImageRect1_Int2_UInt1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01G10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_01P10C00D(
    BuiltInId::imageAtomicOrExt_UImageRect1_Int2_UInt1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01P10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_00u10C00C00D(
    BuiltInId::imageAtomicOrExt_Image2DMS1_Int2_Int1_UInt1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00u10C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_01D10C00C00D(
    BuiltInId::imageAtomicOrExt_IImage2DMS1_Int2_Int1_UInt1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01D10C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_01M10C00C00D(
    BuiltInId::imageAtomicOrExt_UImage2DMS1_Int2_Int1_UInt1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01M10C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_00v20C00C00D(
    BuiltInId::imageAtomicOrExt_Image2DMSArray1_Int3_Int1_UInt1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00v20C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_01E20C00C00D(
    BuiltInId::imageAtomicOrExt_IImage2DMSArray1_Int3_Int1_UInt1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01E20C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_01N20C00C00D(
    BuiltInId::imageAtomicOrExt_UImage2DMSArray1_Int3_Int1_UInt1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01N20C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_00q10C00C(
    BuiltInId::imageAtomicOrExt_Image2D1_Int2_Int1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00q10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_00z10C00C(
    BuiltInId::imageAtomicOrExt_IImage2D1_Int2_Int1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00z10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_01I10C00C(
    BuiltInId::imageAtomicOrExt_UImage2D1_Int2_Int1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01I10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_00r20C00C(
    BuiltInId::imageAtomicOrExt_Image3D1_Int3_Int1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00r20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_01A20C00C(
    BuiltInId::imageAtomicOrExt_IImage3D1_Int3_Int1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01A20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_01J20C00C(
    BuiltInId::imageAtomicOrExt_UImage3D1_Int3_Int1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01J20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_00t20C00C(
    BuiltInId::imageAtomicOrExt_ImageCube1_Int3_Int1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00t20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_01C20C00C(
    BuiltInId::imageAtomicOrExt_IImageCube1_Int3_Int1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01C20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_01L20C00C(
    BuiltInId::imageAtomicOrExt_UImageCube1_Int3_Int1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01L20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_00y00C00C(
    BuiltInId::imageAtomicOrExt_ImageBuffer1_Int1_Int1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00y00C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_01H00C00C(
    BuiltInId::imageAtomicOrExt_IImageBuffer1_Int1_Int1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01H00C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_01Q00C00C(
    BuiltInId::imageAtomicOrExt_UImageBuffer1_Int1_Int1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01Q00C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_00s20C00C(
    BuiltInId::imageAtomicOrExt_Image2DArray1_Int3_Int1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00s20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_01B20C00C(
    BuiltInId::imageAtomicOrExt_IImage2DArray1_Int3_Int1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01B20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_01K20C00C(
    BuiltInId::imageAtomicOrExt_UImage2DArray1_Int3_Int1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01K20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_00w20C00C(
    BuiltInId::imageAtomicOrExt_ImageCubeArray1_Int3_Int1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00w20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_01F20C00C(
    BuiltInId::imageAtomicOrExt_IImageCubeArray1_Int3_Int1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01F20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_01O20C00C(
    BuiltInId::imageAtomicOrExt_UImageCubeArray1_Int3_Int1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01O20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_00x10C00C(
    BuiltInId::imageAtomicOrExt_ImageRect1_Int2_Int1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00x10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_01G10C00C(
    BuiltInId::imageAtomicOrExt_IImageRect1_Int2_Int1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01G10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_01P10C00C(
    BuiltInId::imageAtomicOrExt_UImageRect1_Int2_Int1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01P10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_00u10C00C00C(
    BuiltInId::imageAtomicOrExt_Image2DMS1_Int2_Int1_Int1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00u10C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_01D10C00C00C(
    BuiltInId::imageAtomicOrExt_IImage2DMS1_Int2_Int1_Int1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01D10C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_01M10C00C00C(
    BuiltInId::imageAtomicOrExt_UImage2DMS1_Int2_Int1_Int1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01M10C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_00v20C00C00C(
    BuiltInId::imageAtomicOrExt_Image2DMSArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00v20C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_01E20C00C00C(
    BuiltInId::imageAtomicOrExt_IImage2DMSArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01E20C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicOrExt_01N20C00C00C(
    BuiltInId::imageAtomicOrExt_UImage2DMSArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicOrExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01N20C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicOr,
    false);
constexpr const TFunction imageAtomicXorExt_00q10C00D(
    BuiltInId::imageAtomicXorExt_Image2D1_Int2_UInt1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00q10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_00z10C00D(
    BuiltInId::imageAtomicXorExt_IImage2D1_Int2_UInt1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00z10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_01I10C00D(
    BuiltInId::imageAtomicXorExt_UImage2D1_Int2_UInt1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01I10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_00r20C00D(
    BuiltInId::imageAtomicXorExt_Image3D1_Int3_UInt1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00r20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_01A20C00D(
    BuiltInId::imageAtomicXorExt_IImage3D1_Int3_UInt1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01A20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_01J20C00D(
    BuiltInId::imageAtomicXorExt_UImage3D1_Int3_UInt1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01J20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_00t20C00D(
    BuiltInId::imageAtomicXorExt_ImageCube1_Int3_UInt1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00t20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_01C20C00D(
    BuiltInId::imageAtomicXorExt_IImageCube1_Int3_UInt1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01C20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_01L20C00D(
    BuiltInId::imageAtomicXorExt_UImageCube1_Int3_UInt1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01L20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_00y00C00D(
    BuiltInId::imageAtomicXorExt_ImageBuffer1_Int1_UInt1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00y00C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_01H00C00D(
    BuiltInId::imageAtomicXorExt_IImageBuffer1_Int1_UInt1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01H00C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_01Q00C00D(
    BuiltInId::imageAtomicXorExt_UImageBuffer1_Int1_UInt1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01Q00C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_00s20C00D(
    BuiltInId::imageAtomicXorExt_Image2DArray1_Int3_UInt1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00s20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_01B20C00D(
    BuiltInId::imageAtomicXorExt_IImage2DArray1_Int3_UInt1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01B20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_01K20C00D(
    BuiltInId::imageAtomicXorExt_UImage2DArray1_Int3_UInt1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01K20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_00w20C00D(
    BuiltInId::imageAtomicXorExt_ImageCubeArray1_Int3_UInt1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00w20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_01F20C00D(
    BuiltInId::imageAtomicXorExt_IImageCubeArray1_Int3_UInt1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01F20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_01O20C00D(
    BuiltInId::imageAtomicXorExt_UImageCubeArray1_Int3_UInt1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01O20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_00x10C00D(
    BuiltInId::imageAtomicXorExt_ImageRect1_Int2_UInt1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00x10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_01G10C00D(
    BuiltInId::imageAtomicXorExt_IImageRect1_Int2_UInt1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01G10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_01P10C00D(
    BuiltInId::imageAtomicXorExt_UImageRect1_Int2_UInt1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01P10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_00u10C00C00D(
    BuiltInId::imageAtomicXorExt_Image2DMS1_Int2_Int1_UInt1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00u10C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_01D10C00C00D(
    BuiltInId::imageAtomicXorExt_IImage2DMS1_Int2_Int1_UInt1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01D10C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_01M10C00C00D(
    BuiltInId::imageAtomicXorExt_UImage2DMS1_Int2_Int1_UInt1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01M10C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_00v20C00C00D(
    BuiltInId::imageAtomicXorExt_Image2DMSArray1_Int3_Int1_UInt1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00v20C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_01E20C00C00D(
    BuiltInId::imageAtomicXorExt_IImage2DMSArray1_Int3_Int1_UInt1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01E20C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_01N20C00C00D(
    BuiltInId::imageAtomicXorExt_UImage2DMSArray1_Int3_Int1_UInt1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01N20C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_00q10C00C(
    BuiltInId::imageAtomicXorExt_Image2D1_Int2_Int1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00q10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_00z10C00C(
    BuiltInId::imageAtomicXorExt_IImage2D1_Int2_Int1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00z10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_01I10C00C(
    BuiltInId::imageAtomicXorExt_UImage2D1_Int2_Int1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01I10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_00r20C00C(
    BuiltInId::imageAtomicXorExt_Image3D1_Int3_Int1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00r20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_01A20C00C(
    BuiltInId::imageAtomicXorExt_IImage3D1_Int3_Int1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01A20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_01J20C00C(
    BuiltInId::imageAtomicXorExt_UImage3D1_Int3_Int1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01J20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_00t20C00C(
    BuiltInId::imageAtomicXorExt_ImageCube1_Int3_Int1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00t20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_01C20C00C(
    BuiltInId::imageAtomicXorExt_IImageCube1_Int3_Int1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01C20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_01L20C00C(
    BuiltInId::imageAtomicXorExt_UImageCube1_Int3_Int1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01L20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_00y00C00C(
    BuiltInId::imageAtomicXorExt_ImageBuffer1_Int1_Int1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00y00C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_01H00C00C(
    BuiltInId::imageAtomicXorExt_IImageBuffer1_Int1_Int1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01H00C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_01Q00C00C(
    BuiltInId::imageAtomicXorExt_UImageBuffer1_Int1_Int1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01Q00C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_00s20C00C(
    BuiltInId::imageAtomicXorExt_Image2DArray1_Int3_Int1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00s20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_01B20C00C(
    BuiltInId::imageAtomicXorExt_IImage2DArray1_Int3_Int1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01B20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_01K20C00C(
    BuiltInId::imageAtomicXorExt_UImage2DArray1_Int3_Int1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01K20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_00w20C00C(
    BuiltInId::imageAtomicXorExt_ImageCubeArray1_Int3_Int1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00w20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_01F20C00C(
    BuiltInId::imageAtomicXorExt_IImageCubeArray1_Int3_Int1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01F20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_01O20C00C(
    BuiltInId::imageAtomicXorExt_UImageCubeArray1_Int3_Int1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01O20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_00x10C00C(
    BuiltInId::imageAtomicXorExt_ImageRect1_Int2_Int1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00x10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_01G10C00C(
    BuiltInId::imageAtomicXorExt_IImageRect1_Int2_Int1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01G10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_01P10C00C(
    BuiltInId::imageAtomicXorExt_UImageRect1_Int2_Int1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01P10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_00u10C00C00C(
    BuiltInId::imageAtomicXorExt_Image2DMS1_Int2_Int1_Int1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00u10C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_01D10C00C00C(
    BuiltInId::imageAtomicXorExt_IImage2DMS1_Int2_Int1_Int1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01D10C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_01M10C00C00C(
    BuiltInId::imageAtomicXorExt_UImage2DMS1_Int2_Int1_Int1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01M10C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_00v20C00C00C(
    BuiltInId::imageAtomicXorExt_Image2DMSArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00v20C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_01E20C00C00C(
    BuiltInId::imageAtomicXorExt_IImage2DMSArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01E20C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicXorExt_01N20C00C00C(
    BuiltInId::imageAtomicXorExt_UImage2DMSArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicXorExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01N20C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicXor,
    false);
constexpr const TFunction imageAtomicExchangeExt_00q10C00D(
    BuiltInId::imageAtomicExchangeExt_Image2D1_Int2_UInt1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00q10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_00z10C00D(
    BuiltInId::imageAtomicExchangeExt_IImage2D1_Int2_UInt1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00z10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01I10C00D(
    BuiltInId::imageAtomicExchangeExt_UImage2D1_Int2_UInt1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01I10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_00r20C00D(
    BuiltInId::imageAtomicExchangeExt_Image3D1_Int3_UInt1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00r20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01A20C00D(
    BuiltInId::imageAtomicExchangeExt_IImage3D1_Int3_UInt1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01A20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01J20C00D(
    BuiltInId::imageAtomicExchangeExt_UImage3D1_Int3_UInt1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01J20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_00t20C00D(
    BuiltInId::imageAtomicExchangeExt_ImageCube1_Int3_UInt1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00t20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01C20C00D(
    BuiltInId::imageAtomicExchangeExt_IImageCube1_Int3_UInt1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01C20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01L20C00D(
    BuiltInId::imageAtomicExchangeExt_UImageCube1_Int3_UInt1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01L20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_00y00C00D(
    BuiltInId::imageAtomicExchangeExt_ImageBuffer1_Int1_UInt1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00y00C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01H00C00D(
    BuiltInId::imageAtomicExchangeExt_IImageBuffer1_Int1_UInt1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01H00C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01Q00C00D(
    BuiltInId::imageAtomicExchangeExt_UImageBuffer1_Int1_UInt1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01Q00C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_00s20C00D(
    BuiltInId::imageAtomicExchangeExt_Image2DArray1_Int3_UInt1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00s20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01B20C00D(
    BuiltInId::imageAtomicExchangeExt_IImage2DArray1_Int3_UInt1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01B20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01K20C00D(
    BuiltInId::imageAtomicExchangeExt_UImage2DArray1_Int3_UInt1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01K20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_00w20C00D(
    BuiltInId::imageAtomicExchangeExt_ImageCubeArray1_Int3_UInt1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00w20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01F20C00D(
    BuiltInId::imageAtomicExchangeExt_IImageCubeArray1_Int3_UInt1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01F20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01O20C00D(
    BuiltInId::imageAtomicExchangeExt_UImageCubeArray1_Int3_UInt1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01O20C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_00x10C00D(
    BuiltInId::imageAtomicExchangeExt_ImageRect1_Int2_UInt1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00x10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01G10C00D(
    BuiltInId::imageAtomicExchangeExt_IImageRect1_Int2_UInt1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01G10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01P10C00D(
    BuiltInId::imageAtomicExchangeExt_UImageRect1_Int2_UInt1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01P10C00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_00u10C00C00D(
    BuiltInId::imageAtomicExchangeExt_Image2DMS1_Int2_Int1_UInt1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00u10C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01D10C00C00D(
    BuiltInId::imageAtomicExchangeExt_IImage2DMS1_Int2_Int1_UInt1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01D10C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01M10C00C00D(
    BuiltInId::imageAtomicExchangeExt_UImage2DMS1_Int2_Int1_UInt1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01M10C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_00v20C00C00D(
    BuiltInId::imageAtomicExchangeExt_Image2DMSArray1_Int3_Int1_UInt1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00v20C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01E20C00C00D(
    BuiltInId::imageAtomicExchangeExt_IImage2DMSArray1_Int3_Int1_UInt1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01E20C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01N20C00C00D(
    BuiltInId::imageAtomicExchangeExt_UImage2DMSArray1_Int3_Int1_UInt1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01N20C00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_00q10C00C(
    BuiltInId::imageAtomicExchangeExt_Image2D1_Int2_Int1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00q10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_00z10C00C(
    BuiltInId::imageAtomicExchangeExt_IImage2D1_Int2_Int1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00z10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01I10C00C(
    BuiltInId::imageAtomicExchangeExt_UImage2D1_Int2_Int1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01I10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_00r20C00C(
    BuiltInId::imageAtomicExchangeExt_Image3D1_Int3_Int1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00r20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01A20C00C(
    BuiltInId::imageAtomicExchangeExt_IImage3D1_Int3_Int1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01A20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01J20C00C(
    BuiltInId::imageAtomicExchangeExt_UImage3D1_Int3_Int1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01J20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_00t20C00C(
    BuiltInId::imageAtomicExchangeExt_ImageCube1_Int3_Int1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00t20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01C20C00C(
    BuiltInId::imageAtomicExchangeExt_IImageCube1_Int3_Int1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01C20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01L20C00C(
    BuiltInId::imageAtomicExchangeExt_UImageCube1_Int3_Int1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01L20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_00y00C00C(
    BuiltInId::imageAtomicExchangeExt_ImageBuffer1_Int1_Int1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00y00C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01H00C00C(
    BuiltInId::imageAtomicExchangeExt_IImageBuffer1_Int1_Int1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01H00C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01Q00C00C(
    BuiltInId::imageAtomicExchangeExt_UImageBuffer1_Int1_Int1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01Q00C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_00s20C00C(
    BuiltInId::imageAtomicExchangeExt_Image2DArray1_Int3_Int1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00s20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01B20C00C(
    BuiltInId::imageAtomicExchangeExt_IImage2DArray1_Int3_Int1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01B20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01K20C00C(
    BuiltInId::imageAtomicExchangeExt_UImage2DArray1_Int3_Int1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01K20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_00w20C00C(
    BuiltInId::imageAtomicExchangeExt_ImageCubeArray1_Int3_Int1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00w20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01F20C00C(
    BuiltInId::imageAtomicExchangeExt_IImageCubeArray1_Int3_Int1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01F20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01O20C00C(
    BuiltInId::imageAtomicExchangeExt_UImageCubeArray1_Int3_Int1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01O20C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_00x10C00C(
    BuiltInId::imageAtomicExchangeExt_ImageRect1_Int2_Int1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00x10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01G10C00C(
    BuiltInId::imageAtomicExchangeExt_IImageRect1_Int2_Int1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01G10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01P10C00C(
    BuiltInId::imageAtomicExchangeExt_UImageRect1_Int2_Int1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01P10C00C00C,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_00u10C00C00C(
    BuiltInId::imageAtomicExchangeExt_Image2DMS1_Int2_Int1_Int1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00u10C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01D10C00C00C(
    BuiltInId::imageAtomicExchangeExt_IImage2DMS1_Int2_Int1_Int1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01D10C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01M10C00C00C(
    BuiltInId::imageAtomicExchangeExt_UImage2DMS1_Int2_Int1_Int1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01M10C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_00v20C00C00C(
    BuiltInId::imageAtomicExchangeExt_Image2DMSArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00v20C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01E20C00C00C(
    BuiltInId::imageAtomicExchangeExt_IImage2DMSArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01E20C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01N20C00C00C(
    BuiltInId::imageAtomicExchangeExt_UImage2DMSArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01N20C00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_00q10C00B(
    BuiltInId::imageAtomicExchangeExt_Image2D1_Int2_Float1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00q10C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_00z10C00B(
    BuiltInId::imageAtomicExchangeExt_IImage2D1_Int2_Float1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00z10C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01I10C00B(
    BuiltInId::imageAtomicExchangeExt_UImage2D1_Int2_Float1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01I10C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_00r20C00B(
    BuiltInId::imageAtomicExchangeExt_Image3D1_Int3_Float1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00r20C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01A20C00B(
    BuiltInId::imageAtomicExchangeExt_IImage3D1_Int3_Float1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01A20C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01J20C00B(
    BuiltInId::imageAtomicExchangeExt_UImage3D1_Int3_Float1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01J20C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_00t20C00B(
    BuiltInId::imageAtomicExchangeExt_ImageCube1_Int3_Float1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00t20C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01C20C00B(
    BuiltInId::imageAtomicExchangeExt_IImageCube1_Int3_Float1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01C20C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01L20C00B(
    BuiltInId::imageAtomicExchangeExt_UImageCube1_Int3_Float1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01L20C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_00y00C00B(
    BuiltInId::imageAtomicExchangeExt_ImageBuffer1_Int1_Float1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00y00C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01H00C00B(
    BuiltInId::imageAtomicExchangeExt_IImageBuffer1_Int1_Float1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01H00C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01Q00C00B(
    BuiltInId::imageAtomicExchangeExt_UImageBuffer1_Int1_Float1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01Q00C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_00s20C00B(
    BuiltInId::imageAtomicExchangeExt_Image2DArray1_Int3_Float1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00s20C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01B20C00B(
    BuiltInId::imageAtomicExchangeExt_IImage2DArray1_Int3_Float1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01B20C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01K20C00B(
    BuiltInId::imageAtomicExchangeExt_UImage2DArray1_Int3_Float1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01K20C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_00w20C00B(
    BuiltInId::imageAtomicExchangeExt_ImageCubeArray1_Int3_Float1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00w20C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01F20C00B(
    BuiltInId::imageAtomicExchangeExt_IImageCubeArray1_Int3_Float1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01F20C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01O20C00B(
    BuiltInId::imageAtomicExchangeExt_UImageCubeArray1_Int3_Float1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01O20C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_00x10C00B(
    BuiltInId::imageAtomicExchangeExt_ImageRect1_Int2_Float1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00x10C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01G10C00B(
    BuiltInId::imageAtomicExchangeExt_IImageRect1_Int2_Float1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01G10C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01P10C00B(
    BuiltInId::imageAtomicExchangeExt_UImageRect1_Int2_Float1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01P10C00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_00u10C00C00B(
    BuiltInId::imageAtomicExchangeExt_Image2DMS1_Int2_Int1_Float1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00u10C00C00B,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01D10C00C00B(
    BuiltInId::imageAtomicExchangeExt_IImage2DMS1_Int2_Int1_Float1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01D10C00C00B,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01M10C00C00B(
    BuiltInId::imageAtomicExchangeExt_UImage2DMS1_Int2_Int1_Float1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01M10C00C00B,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_00v20C00C00B(
    BuiltInId::imageAtomicExchangeExt_Image2DMSArray1_Int3_Int1_Float1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00v20C00C00B,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01E20C00C00B(
    BuiltInId::imageAtomicExchangeExt_IImage2DMSArray1_Int3_Int1_Float1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01E20C00C00B,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicExchangeExt_01N20C00C00B(
    BuiltInId::imageAtomicExchangeExt_UImage2DMSArray1_Int3_Int1_Float1,
    BuiltInName::imageAtomicExchangeExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01N20C00C00B,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicExchange,
    false);
constexpr const TFunction imageAtomicCompSwapExt_00q10C00D00D(
    BuiltInId::imageAtomicCompSwapExt_Image2D1_Int2_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00q10C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_00z10C00D00D(
    BuiltInId::imageAtomicCompSwapExt_IImage2D1_Int2_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00z10C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_01I10C00D00D(
    BuiltInId::imageAtomicCompSwapExt_UImage2D1_Int2_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01I10C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_00r20C00D00D(
    BuiltInId::imageAtomicCompSwapExt_Image3D1_Int3_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00r20C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_01A20C00D00D(
    BuiltInId::imageAtomicCompSwapExt_IImage3D1_Int3_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01A20C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_01J20C00D00D(
    BuiltInId::imageAtomicCompSwapExt_UImage3D1_Int3_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01J20C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_00t20C00D00D(
    BuiltInId::imageAtomicCompSwapExt_ImageCube1_Int3_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00t20C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_01C20C00D00D(
    BuiltInId::imageAtomicCompSwapExt_IImageCube1_Int3_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01C20C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_01L20C00D00D(
    BuiltInId::imageAtomicCompSwapExt_UImageCube1_Int3_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01L20C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_00y00C00D00D(
    BuiltInId::imageAtomicCompSwapExt_ImageBuffer1_Int1_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00y00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_01H00C00D00D(
    BuiltInId::imageAtomicCompSwapExt_IImageBuffer1_Int1_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01H00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_01Q00C00D00D(
    BuiltInId::imageAtomicCompSwapExt_UImageBuffer1_Int1_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01Q00C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_00s20C00D00D(
    BuiltInId::imageAtomicCompSwapExt_Image2DArray1_Int3_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00s20C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_01B20C00D00D(
    BuiltInId::imageAtomicCompSwapExt_IImage2DArray1_Int3_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01B20C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_01K20C00D00D(
    BuiltInId::imageAtomicCompSwapExt_UImage2DArray1_Int3_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01K20C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_00w20C00D00D(
    BuiltInId::imageAtomicCompSwapExt_ImageCubeArray1_Int3_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00w20C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_01F20C00D00D(
    BuiltInId::imageAtomicCompSwapExt_IImageCubeArray1_Int3_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01F20C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_01O20C00D00D(
    BuiltInId::imageAtomicCompSwapExt_UImageCubeArray1_Int3_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01O20C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_00x10C00D00D(
    BuiltInId::imageAtomicCompSwapExt_ImageRect1_Int2_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00x10C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_01G10C00D00D(
    BuiltInId::imageAtomicCompSwapExt_IImageRect1_Int2_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01G10C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_01P10C00D00D(
    BuiltInId::imageAtomicCompSwapExt_UImageRect1_Int2_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01P10C00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_00u10C00C00D00D(
    BuiltInId::imageAtomicCompSwapExt_Image2DMS1_Int2_Int1_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00u10C00C00D00D,
    5,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_01D10C00C00D00D(
    BuiltInId::imageAtomicCompSwapExt_IImage2DMS1_Int2_Int1_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01D10C00C00D00D,
    5,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_01M10C00C00D00D(
    BuiltInId::imageAtomicCompSwapExt_UImage2DMS1_Int2_Int1_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01M10C00C00D00D,
    5,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_00v20C00C00D00D(
    BuiltInId::imageAtomicCompSwapExt_Image2DMSArray1_Int3_Int1_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00v20C00C00D00D,
    5,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_01E20C00C00D00D(
    BuiltInId::imageAtomicCompSwapExt_IImage2DMSArray1_Int3_Int1_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01E20C00C00D00D,
    5,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_01N20C00C00D00D(
    BuiltInId::imageAtomicCompSwapExt_UImage2DMSArray1_Int3_Int1_UInt1_UInt1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01N20C00C00D00D,
    5,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_00q10C00C00C(
    BuiltInId::imageAtomicCompSwapExt_Image2D1_Int2_Int1_Int1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00q10C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_00z10C00C00C(
    BuiltInId::imageAtomicCompSwapExt_IImage2D1_Int2_Int1_Int1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00z10C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_01I10C00C00C(
    BuiltInId::imageAtomicCompSwapExt_UImage2D1_Int2_Int1_Int1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01I10C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_00r20C00C00C(
    BuiltInId::imageAtomicCompSwapExt_Image3D1_Int3_Int1_Int1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00r20C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_01A20C00C00C(
    BuiltInId::imageAtomicCompSwapExt_IImage3D1_Int3_Int1_Int1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01A20C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_01J20C00C00C(
    BuiltInId::imageAtomicCompSwapExt_UImage3D1_Int3_Int1_Int1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01J20C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_00t20C00C00C(
    BuiltInId::imageAtomicCompSwapExt_ImageCube1_Int3_Int1_Int1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00t20C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_01C20C00C00C(
    BuiltInId::imageAtomicCompSwapExt_IImageCube1_Int3_Int1_Int1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01C20C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_01L20C00C00C(
    BuiltInId::imageAtomicCompSwapExt_UImageCube1_Int3_Int1_Int1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01L20C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_00y00C00C00C(
    BuiltInId::imageAtomicCompSwapExt_ImageBuffer1_Int1_Int1_Int1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00y00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_01H00C00C00C(
    BuiltInId::imageAtomicCompSwapExt_IImageBuffer1_Int1_Int1_Int1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01H00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_01Q00C00C00C(
    BuiltInId::imageAtomicCompSwapExt_UImageBuffer1_Int1_Int1_Int1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01Q00C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_00s20C00C00C(
    BuiltInId::imageAtomicCompSwapExt_Image2DArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00s20C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_01B20C00C00C(
    BuiltInId::imageAtomicCompSwapExt_IImage2DArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01B20C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_01K20C00C00C(
    BuiltInId::imageAtomicCompSwapExt_UImage2DArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01K20C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_00w20C00C00C(
    BuiltInId::imageAtomicCompSwapExt_ImageCubeArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00w20C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_01F20C00C00C(
    BuiltInId::imageAtomicCompSwapExt_IImageCubeArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01F20C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_01O20C00C00C(
    BuiltInId::imageAtomicCompSwapExt_UImageCubeArray1_Int3_Int1_Int1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01O20C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_00x10C00C00C(
    BuiltInId::imageAtomicCompSwapExt_ImageRect1_Int2_Int1_Int1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00x10C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_01G10C00C00C(
    BuiltInId::imageAtomicCompSwapExt_IImageRect1_Int2_Int1_Int1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01G10C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_01P10C00C00C(
    BuiltInId::imageAtomicCompSwapExt_UImageRect1_Int2_Int1_Int1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01P10C00C00C,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_00u10C00C00C00C(
    BuiltInId::imageAtomicCompSwapExt_Image2DMS1_Int2_Int1_Int1_Int1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00u10C00C00C00C,
    5,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_01D10C00C00C00C(
    BuiltInId::imageAtomicCompSwapExt_IImage2DMS1_Int2_Int1_Int1_Int1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01D10C00C00C00C,
    5,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_01M10C00C00C00C(
    BuiltInId::imageAtomicCompSwapExt_UImage2DMS1_Int2_Int1_Int1_Int1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01M10C00C00C00C,
    5,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_00v20C00C00C00C(
    BuiltInId::imageAtomicCompSwapExt_Image2DMSArray1_Int3_Int1_Int1_Int1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p00v20C00C00C00C,
    5,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_01E20C00C00C00C(
    BuiltInId::imageAtomicCompSwapExt_IImage2DMSArray1_Int3_Int1_Int1_Int1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01E20C00C00C00C,
    5,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction imageAtomicCompSwapExt_01N20C00C00C00C(
    BuiltInId::imageAtomicCompSwapExt_UImage2DMSArray1_Int3_Int1_Int1_Int1,
    BuiltInName::imageAtomicCompSwapExt,
    std::array<TExtension, 1u>{{TExtension::OES_shader_image_atomic}},
    BuiltInParameters::p01N20C00C00C00C,
    5,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImageAtomicCompSwap,
    false);
constexpr const TFunction pixelLocalLoadANGLE_01R(
    BuiltInId::pixelLocalLoadANGLE_PixelLocalANGLE1,
    BuiltInName::pixelLocalLoadANGLE,
    std::array<TExtension, 1u>{{TExtension::ANGLE_shader_pixel_local_storage}},
    BuiltInParameters::p01R30B,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpPixelLocalLoadANGLE,
    true);
constexpr const TFunction pixelLocalLoadANGLE_01S(
    BuiltInId::pixelLocalLoadANGLE_IPixelLocalANGLE1,
    BuiltInName::pixelLocalLoadANGLE,
    std::array<TExtension, 1u>{{TExtension::ANGLE_shader_pixel_local_storage}},
    BuiltInParameters::p01S30C,
    1,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpPixelLocalLoadANGLE,
    true);
constexpr const TFunction pixelLocalLoadANGLE_01T(
    BuiltInId::pixelLocalLoadANGLE_UPixelLocalANGLE1,
    BuiltInName::pixelLocalLoadANGLE,
    std::array<TExtension, 1u>{{TExtension::ANGLE_shader_pixel_local_storage}},
    BuiltInParameters::p01T30D,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpPixelLocalLoadANGLE,
    true);
constexpr const TFunction pixelLocalStoreANGLE_01R30B(
    BuiltInId::pixelLocalStoreANGLE_PixelLocalANGLE1_Float4,
    BuiltInName::pixelLocalStoreANGLE,
    std::array<TExtension, 1u>{{TExtension::ANGLE_shader_pixel_local_storage}},
    BuiltInParameters::p01R30B,
    2,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpPixelLocalStoreANGLE,
    false);
constexpr const TFunction pixelLocalStoreANGLE_01S30C(
    BuiltInId::pixelLocalStoreANGLE_IPixelLocalANGLE1_Int4,
    BuiltInName::pixelLocalStoreANGLE,
    std::array<TExtension, 1u>{{TExtension::ANGLE_shader_pixel_local_storage}},
    BuiltInParameters::p01S30C,
    2,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpPixelLocalStoreANGLE,
    false);
constexpr const TFunction pixelLocalStoreANGLE_01T30D(
    BuiltInId::pixelLocalStoreANGLE_UPixelLocalANGLE1_UInt4,
    BuiltInName::pixelLocalStoreANGLE,
    std::array<TExtension, 1u>{{TExtension::ANGLE_shader_pixel_local_storage}},
    BuiltInParameters::p01T30D,
    2,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpPixelLocalStoreANGLE,
    false);
constexpr const TFunction beginInvocationInterlockNV_(
    BuiltInId::beginInvocationInterlockNV,
    BuiltInName::beginInvocationInterlockNV,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::empty,
    0,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpBeginInvocationInterlockNV,
    false);
constexpr const TFunction endInvocationInterlockNV_(
    BuiltInId::endInvocationInterlockNV,
    BuiltInName::endInvocationInterlockNV,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::empty,
    0,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpEndInvocationInterlockNV,
    false);
constexpr const TFunction beginFragmentShaderOrderingINTEL_(
    BuiltInId::beginFragmentShaderOrderingINTEL,
    BuiltInName::beginFragmentShaderOrderingINTEL,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::empty,
    0,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpBeginFragmentShaderOrderingINTEL,
    false);
constexpr const TFunction beginInvocationInterlockARB_(
    BuiltInId::beginInvocationInterlockARB,
    BuiltInName::beginInvocationInterlockARB,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::empty,
    0,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpBeginInvocationInterlockARB,
    false);
constexpr const TFunction endInvocationInterlockARB_(
    BuiltInId::endInvocationInterlockARB,
    BuiltInName::endInvocationInterlockARB,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::empty,
    0,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpEndInvocationInterlockARB,
    false);
constexpr const TFunction memoryBarrier_(BuiltInId::memoryBarrier,
                                         BuiltInName::memoryBarrier,
                                         std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                         BuiltInParameters::empty,
                                         0,
                                         StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
                                         EOpMemoryBarrier,
                                         false);
constexpr const TFunction memoryBarrierAtomicCounter_(
    BuiltInId::memoryBarrierAtomicCounter,
    BuiltInName::memoryBarrierAtomicCounter,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::empty,
    0,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpMemoryBarrierAtomicCounter,
    false);
constexpr const TFunction memoryBarrierBuffer_(
    BuiltInId::memoryBarrierBuffer,
    BuiltInName::memoryBarrierBuffer,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::empty,
    0,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpMemoryBarrierBuffer,
    false);
constexpr const TFunction memoryBarrierImage_(
    BuiltInId::memoryBarrierImage,
    BuiltInName::memoryBarrierImage,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::empty,
    0,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpMemoryBarrierImage,
    false);
constexpr const TFunction barrier_(BuiltInId::barrier,
                                   BuiltInName::barrier,
                                   std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                   BuiltInParameters::empty,
                                   0,
                                   StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpBarrier,
                                   false);
constexpr const TFunction memoryBarrierShared_(
    BuiltInId::memoryBarrierShared,
    BuiltInName::memoryBarrierShared,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::empty,
    0,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpMemoryBarrierShared,
    false);
constexpr const TFunction groupMemoryBarrier_(
    BuiltInId::groupMemoryBarrier,
    BuiltInName::groupMemoryBarrier,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::empty,
    0,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpGroupMemoryBarrier,
    false);
constexpr const TFunction barrierTCS_(BuiltInId::barrierTCS,
                                      BuiltInName::barrierTCS,
                                      std::array<TExtension, 2u>{
                                          {TExtension::EXT_tessellation_shader,
                                           TExtension::OES_tessellation_shader}},
                                      BuiltInParameters::empty,
                                      0,
                                      StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
                                      EOpBarrierTCS,
                                      false);
constexpr const TFunction barrierTCSES3_2_(
    BuiltInId::barrierTCSES3_2,
    BuiltInName::barrierTCSES3_2,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::empty,
    0,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpBarrierTCS,
    false);
constexpr const TFunction EmitVertex_(BuiltInId::EmitVertex,
                                      BuiltInName::EmitVertex,
                                      std::array<TExtension, 2u>{{TExtension::EXT_geometry_shader,
                                                                  TExtension::OES_geometry_shader}},
                                      BuiltInParameters::empty,
                                      0,
                                      StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
                                      EOpEmitVertex,
                                      false);
constexpr const TFunction EmitVertexES3_2_(
    BuiltInId::EmitVertexES3_2,
    BuiltInName::EmitVertexES3_2,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::empty,
    0,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpEmitVertex,
    false);
constexpr const TFunction EndPrimitive_(
    BuiltInId::EndPrimitive,
    BuiltInName::EndPrimitive,
    std::array<TExtension, 2u>{{TExtension::EXT_geometry_shader, TExtension::OES_geometry_shader}},
    BuiltInParameters::empty,
    0,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpEndPrimitive,
    false);
constexpr const TFunction EndPrimitiveES3_2_(
    BuiltInId::EndPrimitiveES3_2,
    BuiltInName::EndPrimitiveES3_2,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::empty,
    0,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpEndPrimitive,
    false);
constexpr const TFunction subpassLoad_01U(
    BuiltInId::subpassLoad_SubpassInput1,
    BuiltInName::subpassLoad,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p01U,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpSubpassLoad,
    true);
constexpr const TFunction subpassLoad_01V(BuiltInId::subpassLoad_ISubpassInput1,
                                          BuiltInName::subpassLoad,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p01V,
                                          1,
                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                          EOpSubpassLoad,
                                          true);
constexpr const TFunction subpassLoad_01W(BuiltInId::subpassLoad_USubpassInput1,
                                          BuiltInName::subpassLoad,
                                          std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                          BuiltInParameters::p01W,
                                          1,
                                          StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                          EOpSubpassLoad,
                                          true);
constexpr const TFunction numSamples_(BuiltInId::numSamples,
                                      BuiltInName::numSamples,
                                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                      BuiltInParameters::empty,
                                      0,
                                      StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                      EOpNumSamples,
                                      true);
constexpr const TFunction samplePosition_00D(
    BuiltInId::samplePosition_UInt1,
    BuiltInName::samplePosition,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00D00C00C,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpSamplePosition,
    true);
constexpr const TFunction interpolateAtCenter_00B(
    BuiltInId::interpolateAtCenter_Float1,
    BuiltInName::interpolateAtCenter,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p00B00B00B,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpInterpolateAtCenter,
    true);
constexpr const TFunction interpolateAtCenter_10B(
    BuiltInId::interpolateAtCenter_Float2,
    BuiltInName::interpolateAtCenter,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p10B00B00B,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpInterpolateAtCenter,
    true);
constexpr const TFunction interpolateAtCenter_20B(
    BuiltInId::interpolateAtCenter_Float3,
    BuiltInName::interpolateAtCenter,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p20B00B00B,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpInterpolateAtCenter,
    true);
constexpr const TFunction interpolateAtCenter_30B(
    BuiltInId::interpolateAtCenter_Float4,
    BuiltInName::interpolateAtCenter,
    std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
    BuiltInParameters::p30B00B00B,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpInterpolateAtCenter,
    true);
constexpr const TFunction saturate_00B(BuiltInId::saturate_Float1,
                                       BuiltInName::saturate,
                                       std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                       BuiltInParameters::p00B00B00B,
                                       1,
                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                       EOpSaturate,
                                       true);
constexpr const TFunction saturate_10B(BuiltInId::saturate_Float2,
                                       BuiltInName::saturate,
                                       std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                       BuiltInParameters::p10B00B00B,
                                       1,
                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                       EOpSaturate,
                                       true);
constexpr const TFunction saturate_20B(BuiltInId::saturate_Float3,
                                       BuiltInName::saturate,
                                       std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                       BuiltInParameters::p20B00B00B,
                                       1,
                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                       EOpSaturate,
                                       true);
constexpr const TFunction saturate_30B(BuiltInId::saturate_Float4,
                                       BuiltInName::saturate,
                                       std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                                       BuiltInParameters::p30B00B00B,
                                       1,
                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                       EOpSaturate,
                                       true);

}  // namespace Func

namespace BuiltInArray
{
using namespace Func;
using Rule = SymbolRule;

// Rules used to initialize the mangled name array.
constexpr SymbolRule kRules[] = {
    Rule::Get<0, Shader::ALL, 0>(&radians_00B),
    Rule::Get<0, Shader::ALL, 0>(&radians_10B),
    Rule::Get<0, Shader::ALL, 0>(&radians_20B),
    Rule::Get<0, Shader::ALL, 0>(&radians_30B),
    Rule::Get<0, Shader::ALL, 0>(&degrees_00B),
    Rule::Get<0, Shader::ALL, 0>(&degrees_10B),
    Rule::Get<0, Shader::ALL, 0>(&degrees_20B),
    Rule::Get<0, Shader::ALL, 0>(&degrees_30B),
    Rule::Get<0, Shader::ALL, 0>(&sin_00B),
    Rule::Get<0, Shader::ALL, 0>(&sin_10B),
    Rule::Get<0, Shader::ALL, 0>(&sin_20B),
    Rule::Get<0, Shader::ALL, 0>(&sin_30B),
    Rule::Get<0, Shader::ALL, 0>(&cos_00B),
    Rule::Get<0, Shader::ALL, 0>(&cos_10B),
    Rule::Get<0, Shader::ALL, 0>(&cos_20B),
    Rule::Get<0, Shader::ALL, 0>(&cos_30B),
    Rule::Get<0, Shader::ALL, 0>(&tan_00B),
    Rule::Get<0, Shader::ALL, 0>(&tan_10B),
    Rule::Get<0, Shader::ALL, 0>(&tan_20B),
    Rule::Get<0, Shader::ALL, 0>(&tan_30B),
    Rule::Get<0, Shader::ALL, 0>(&asin_00B),
    Rule::Get<0, Shader::ALL, 0>(&asin_10B),
    Rule::Get<0, Shader::ALL, 0>(&asin_20B),
    Rule::Get<0, Shader::ALL, 0>(&asin_30B),
    Rule::Get<0, Shader::ALL, 0>(&acos_00B),
    Rule::Get<0, Shader::ALL, 0>(&acos_10B),
    Rule::Get<0, Shader::ALL, 0>(&acos_20B),
    Rule::Get<0, Shader::ALL, 0>(&acos_30B),
    Rule::Get<0, Shader::ALL, 0>(&atan_00B00B),
    Rule::Get<0, Shader::ALL, 0>(&atan_10B10B),
    Rule::Get<0, Shader::ALL, 0>(&atan_20B20B),
    Rule::Get<0, Shader::ALL, 0>(&atan_30B30B),
    Rule::Get<0, Shader::ALL, 0>(&atan_00B),
    Rule::Get<0, Shader::ALL, 0>(&atan_10B),
    Rule::Get<0, Shader::ALL, 0>(&atan_20B),
    Rule::Get<0, Shader::ALL, 0>(&atan_30B),
    Rule::Get<300, Shader::ALL, 0>(&sinh_00B),
    Rule::Get<300, Shader::ALL, 0>(&sinh_10B),
    Rule::Get<300, Shader::ALL, 0>(&sinh_20B),
    Rule::Get<300, Shader::ALL, 0>(&sinh_30B),
    Rule::Get<300, Shader::ALL, 0>(&cosh_00B),
    Rule::Get<300, Shader::ALL, 0>(&cosh_10B),
    Rule::Get<300, Shader::ALL, 0>(&cosh_20B),
    Rule::Get<300, Shader::ALL, 0>(&cosh_30B),
    Rule::Get<300, Shader::ALL, 0>(&tanh_00B),
    Rule::Get<300, Shader::ALL, 0>(&tanh_10B),
    Rule::Get<300, Shader::ALL, 0>(&tanh_20B),
    Rule::Get<300, Shader::ALL, 0>(&tanh_30B),
    Rule::Get<300, Shader::ALL, 0>(&asinh_00B),
    Rule::Get<300, Shader::ALL, 0>(&asinh_10B),
    Rule::Get<300, Shader::ALL, 0>(&asinh_20B),
    Rule::Get<300, Shader::ALL, 0>(&asinh_30B),
    Rule::Get<300, Shader::ALL, 0>(&acosh_00B),
    Rule::Get<300, Shader::ALL, 0>(&acosh_10B),
    Rule::Get<300, Shader::ALL, 0>(&acosh_20B),
    Rule::Get<300, Shader::ALL, 0>(&acosh_30B),
    Rule::Get<300, Shader::ALL, 0>(&atanh_00B),
    Rule::Get<300, Shader::ALL, 0>(&atanh_10B),
    Rule::Get<300, Shader::ALL, 0>(&atanh_20B),
    Rule::Get<300, Shader::ALL, 0>(&atanh_30B),
    Rule::Get<0, Shader::ALL, 0>(&pow_00B00B),
    Rule::Get<0, Shader::ALL, 0>(&pow_10B10B),
    Rule::Get<0, Shader::ALL, 0>(&pow_20B20B),
    Rule::Get<0, Shader::ALL, 0>(&pow_30B30B),
    Rule::Get<0, Shader::ALL, 0>(&exp_00B),
    Rule::Get<0, Shader::ALL, 0>(&exp_10B),
    Rule::Get<0, Shader::ALL, 0>(&exp_20B),
    Rule::Get<0, Shader::ALL, 0>(&exp_30B),
    Rule::Get<0, Shader::ALL, 0>(&log_00B),
    Rule::Get<0, Shader::ALL, 0>(&log_10B),
    Rule::Get<0, Shader::ALL, 0>(&log_20B),
    Rule::Get<0, Shader::ALL, 0>(&log_30B),
    Rule::Get<0, Shader::ALL, 0>(&exp2_00B),
    Rule::Get<0, Shader::ALL, 0>(&exp2_10B),
    Rule::Get<0, Shader::ALL, 0>(&exp2_20B),
    Rule::Get<0, Shader::ALL, 0>(&exp2_30B),
    Rule::Get<0, Shader::ALL, 0>(&log2_00B),
    Rule::Get<0, Shader::ALL, 0>(&log2_10B),
    Rule::Get<0, Shader::ALL, 0>(&log2_20B),
    Rule::Get<0, Shader::ALL, 0>(&log2_30B),
    Rule::Get<0, Shader::ALL, 0>(&sqrt_00B),
    Rule::Get<0, Shader::ALL, 0>(&sqrt_10B),
    Rule::Get<0, Shader::ALL, 0>(&sqrt_20B),
    Rule::Get<0, Shader::ALL, 0>(&sqrt_30B),
    Rule::Get<0, Shader::ALL, 0>(&inversesqrt_00B),
    Rule::Get<0, Shader::ALL, 0>(&inversesqrt_10B),
    Rule::Get<0, Shader::ALL, 0>(&inversesqrt_20B),
    Rule::Get<0, Shader::ALL, 0>(&inversesqrt_30B),
    Rule::Get<0, Shader::ALL, 0>(&abs_00B),
    Rule::Get<0, Shader::ALL, 0>(&abs_10B),
    Rule::Get<0, Shader::ALL, 0>(&abs_20B),
    Rule::Get<0, Shader::ALL, 0>(&abs_30B),
    Rule::Get<300, Shader::ALL, 0>(&abs_00C),
    Rule::Get<300, Shader::ALL, 0>(&abs_10C),
    Rule::Get<300, Shader::ALL, 0>(&abs_20C),
    Rule::Get<300, Shader::ALL, 0>(&abs_30C),
    Rule::Get<0, Shader::ALL, 0>(&sign_00B),
    Rule::Get<0, Shader::ALL, 0>(&sign_10B),
    Rule::Get<0, Shader::ALL, 0>(&sign_20B),
    Rule::Get<0, Shader::ALL, 0>(&sign_30B),
    Rule::Get<300, Shader::ALL, 0>(&sign_00C),
    Rule::Get<300, Shader::ALL, 0>(&sign_10C),
    Rule::Get<300, Shader::ALL, 0>(&sign_20C),
    Rule::Get<300, Shader::ALL, 0>(&sign_30C),
    Rule::Get<0, Shader::ALL, 0>(&floor_00B),
    Rule::Get<0, Shader::ALL, 0>(&floor_10B),
    Rule::Get<0, Shader::ALL, 0>(&floor_20B),
    Rule::Get<0, Shader::ALL, 0>(&floor_30B),
    Rule::Get<300, Shader::ALL, 0>(&trunc_00B),
    Rule::Get<300, Shader::ALL, 0>(&trunc_10B),
    Rule::Get<300, Shader::ALL, 0>(&trunc_20B),
    Rule::Get<300, Shader::ALL, 0>(&trunc_30B),
    Rule::Get<300, Shader::ALL, 0>(&round_00B),
    Rule::Get<300, Shader::ALL, 0>(&round_10B),
    Rule::Get<300, Shader::ALL, 0>(&round_20B),
    Rule::Get<300, Shader::ALL, 0>(&round_30B),
    Rule::Get<300, Shader::ALL, 0>(&roundEven_00B),
    Rule::Get<300, Shader::ALL, 0>(&roundEven_10B),
    Rule::Get<300, Shader::ALL, 0>(&roundEven_20B),
    Rule::Get<300, Shader::ALL, 0>(&roundEven_30B),
    Rule::Get<0, Shader::ALL, 0>(&ceil_00B),
    Rule::Get<0, Shader::ALL, 0>(&ceil_10B),
    Rule::Get<0, Shader::ALL, 0>(&ceil_20B),
    Rule::Get<0, Shader::ALL, 0>(&ceil_30B),
    Rule::Get<0, Shader::ALL, 0>(&fract_00B),
    Rule::Get<0, Shader::ALL, 0>(&fract_10B),
    Rule::Get<0, Shader::ALL, 0>(&fract_20B),
    Rule::Get<0, Shader::ALL, 0>(&fract_30B),
    Rule::Get<0, Shader::ALL, 0>(&mod_00B00B),
    Rule::Get<0, Shader::ALL, 0>(&mod_10B00B),
    Rule::Get<0, Shader::ALL, 0>(&mod_20B00B),
    Rule::Get<0, Shader::ALL, 0>(&mod_30B00B),
    Rule::Get<0, Shader::ALL, 0>(&mod_10B10B),
    Rule::Get<0, Shader::ALL, 0>(&mod_20B20B),
    Rule::Get<0, Shader::ALL, 0>(&mod_30B30B),
    Rule::Get<0, Shader::ALL, 0>(&min_00B00B),
    Rule::Get<0, Shader::ALL, 0>(&min_10B00B),
    Rule::Get<0, Shader::ALL, 0>(&min_20B00B),
    Rule::Get<0, Shader::ALL, 0>(&min_30B00B),
    Rule::Get<0, Shader::ALL, 0>(&min_10B10B),
    Rule::Get<0, Shader::ALL, 0>(&min_20B20B),
    Rule::Get<0, Shader::ALL, 0>(&min_30B30B),
    Rule::Get<300, Shader::ALL, 0>(&min_00C00C),
    Rule::Get<300, Shader::ALL, 0>(&min_10C10C),
    Rule::Get<300, Shader::ALL, 0>(&min_20C20C),
    Rule::Get<300, Shader::ALL, 0>(&min_30C30C),
    Rule::Get<300, Shader::ALL, 0>(&min_10C00C),
    Rule::Get<300, Shader::ALL, 0>(&min_20C00C),
    Rule::Get<300, Shader::ALL, 0>(&min_30C00C),
    Rule::Get<300, Shader::ALL, 0>(&min_00D00D),
    Rule::Get<300, Shader::ALL, 0>(&min_10D10D),
    Rule::Get<300, Shader::ALL, 0>(&min_20D20D),
    Rule::Get<300, Shader::ALL, 0>(&min_30D30D),
    Rule::Get<300, Shader::ALL, 0>(&min_10D00D),
    Rule::Get<300, Shader::ALL, 0>(&min_20D00D),
    Rule::Get<300, Shader::ALL, 0>(&min_30D00D),
    Rule::Get<0, Shader::ALL, 0>(&max_00B00B),
    Rule::Get<0, Shader::ALL, 0>(&max_10B00B),
    Rule::Get<0, Shader::ALL, 0>(&max_20B00B),
    Rule::Get<0, Shader::ALL, 0>(&max_30B00B),
    Rule::Get<0, Shader::ALL, 0>(&max_10B10B),
    Rule::Get<0, Shader::ALL, 0>(&max_20B20B),
    Rule::Get<0, Shader::ALL, 0>(&max_30B30B),
    Rule::Get<300, Shader::ALL, 0>(&max_00C00C),
    Rule::Get<300, Shader::ALL, 0>(&max_10C10C),
    Rule::Get<300, Shader::ALL, 0>(&max_20C20C),
    Rule::Get<300, Shader::ALL, 0>(&max_30C30C),
    Rule::Get<300, Shader::ALL, 0>(&max_10C00C),
    Rule::Get<300, Shader::ALL, 0>(&max_20C00C),
    Rule::Get<300, Shader::ALL, 0>(&max_30C00C),
    Rule::Get<300, Shader::ALL, 0>(&max_00D00D),
    Rule::Get<300, Shader::ALL, 0>(&max_10D10D),
    Rule::Get<300, Shader::ALL, 0>(&max_20D20D),
    Rule::Get<300, Shader::ALL, 0>(&max_30D30D),
    Rule::Get<300, Shader::ALL, 0>(&max_10D00D),
    Rule::Get<300, Shader::ALL, 0>(&max_20D00D),
    Rule::Get<300, Shader::ALL, 0>(&max_30D00D),
    Rule::Get<0, Shader::ALL, 0>(&clamp_00B00B00B),
    Rule::Get<0, Shader::ALL, 0>(&clamp_10B00B00B),
    Rule::Get<0, Shader::ALL, 0>(&clamp_20B00B00B),
    Rule::Get<0, Shader::ALL, 0>(&clamp_30B00B00B),
    Rule::Get<0, Shader::ALL, 0>(&clamp_10B10B10B),
    Rule::Get<0, Shader::ALL, 0>(&clamp_20B20B20B),
    Rule::Get<0, Shader::ALL, 0>(&clamp_30B30B30B),
    Rule::Get<300, Shader::ALL, 0>(&clamp_00C00C00C),
    Rule::Get<300, Shader::ALL, 0>(&clamp_10C00C00C),
    Rule::Get<300, Shader::ALL, 0>(&clamp_20C00C00C),
    Rule::Get<300, Shader::ALL, 0>(&clamp_30C00C00C),
    Rule::Get<300, Shader::ALL, 0>(&clamp_10C10C10C),
    Rule::Get<300, Shader::ALL, 0>(&clamp_20C20C20C),
    Rule::Get<300, Shader::ALL, 0>(&clamp_30C30C30C),
    Rule::Get<300, Shader::ALL, 0>(&clamp_00D00D00D),
    Rule::Get<300, Shader::ALL, 0>(&clamp_10D00D00D),
    Rule::Get<300, Shader::ALL, 0>(&clamp_20D00D00D),
    Rule::Get<300, Shader::ALL, 0>(&clamp_30D00D00D),
    Rule::Get<300, Shader::ALL, 0>(&clamp_10D10D10D),
    Rule::Get<300, Shader::ALL, 0>(&clamp_20D20D20D),
    Rule::Get<300, Shader::ALL, 0>(&clamp_30D30D30D),
    Rule::Get<0, Shader::ALL, 0>(&mix_00B00B00B),
    Rule::Get<0, Shader::ALL, 0>(&mix_10B10B00B),
    Rule::Get<0, Shader::ALL, 0>(&mix_20B20B00B),
    Rule::Get<0, Shader::ALL, 0>(&mix_30B30B00B),
    Rule::Get<0, Shader::ALL, 0>(&mix_10B10B10B),
    Rule::Get<0, Shader::ALL, 0>(&mix_20B20B20B),
    Rule::Get<0, Shader::ALL, 0>(&mix_30B30B30B),
    Rule::Get<300, Shader::ALL, 0>(&mix_00B00B00E),
    Rule::Get<300, Shader::ALL, 0>(&mix_10B10B10E),
    Rule::Get<300, Shader::ALL, 0>(&mix_20B20B20E),
    Rule::Get<300, Shader::ALL, 0>(&mix_30B30B30E),
    Rule::Get<310, Shader::ALL, 0>(&mix_00C00C00E),
    Rule::Get<310, Shader::ALL, 0>(&mix_10C10C10E),
    Rule::Get<310, Shader::ALL, 0>(&mix_20C20C20E),
    Rule::Get<310, Shader::ALL, 0>(&mix_30C30C30E),
    Rule::Get<310, Shader::ALL, 0>(&mix_00D00D00E),
    Rule::Get<310, Shader::ALL, 0>(&mix_10D10D10E),
    Rule::Get<310, Shader::ALL, 0>(&mix_20D20D20E),
    Rule::Get<310, Shader::ALL, 0>(&mix_30D30D30E),
    Rule::Get<310, Shader::ALL, 0>(&mix_00E00E00E),
    Rule::Get<310, Shader::ALL, 0>(&mix_10E10E10E),
    Rule::Get<310, Shader::ALL, 0>(&mix_20E20E20E),
    Rule::Get<310, Shader::ALL, 0>(&mix_30E30E30E),
    Rule::Get<0, Shader::ALL, 0>(&step_00B00B),
    Rule::Get<0, Shader::ALL, 0>(&step_10B10B),
    Rule::Get<0, Shader::ALL, 0>(&step_20B20B),
    Rule::Get<0, Shader::ALL, 0>(&step_30B30B),
    Rule::Get<0, Shader::ALL, 0>(&step_00B10B),
    Rule::Get<0, Shader::ALL, 0>(&step_00B20B),
    Rule::Get<0, Shader::ALL, 0>(&step_00B30B),
    Rule::Get<0, Shader::ALL, 0>(&smoothstep_00B00B00B),
    Rule::Get<0, Shader::ALL, 0>(&smoothstep_10B10B10B),
    Rule::Get<0, Shader::ALL, 0>(&smoothstep_20B20B20B),
    Rule::Get<0, Shader::ALL, 0>(&smoothstep_30B30B30B),
    Rule::Get<0, Shader::ALL, 0>(&smoothstep_00B00B10B),
    Rule::Get<0, Shader::ALL, 0>(&smoothstep_00B00B20B),
    Rule::Get<0, Shader::ALL, 0>(&smoothstep_00B00B30B),
    Rule::Get<300, Shader::ALL, 0>(&modf_00B00B),
    Rule::Get<300, Shader::ALL, 0>(&modf_10B10B),
    Rule::Get<300, Shader::ALL, 0>(&modf_20B20B),
    Rule::Get<300, Shader::ALL, 0>(&modf_30B30B),
    Rule::Get<300, Shader::ALL, 0>(&isnan_00B),
    Rule::Get<300, Shader::ALL, 0>(&isnan_10B),
    Rule::Get<300, Shader::ALL, 0>(&isnan_20B),
    Rule::Get<300, Shader::ALL, 0>(&isnan_30B),
    Rule::Get<300, Shader::ALL, 0>(&isinf_00B),
    Rule::Get<300, Shader::ALL, 0>(&isinf_10B),
    Rule::Get<300, Shader::ALL, 0>(&isinf_20B),
    Rule::Get<300, Shader::ALL, 0>(&isinf_30B),
    Rule::Get<300, Shader::ALL, 0>(&floatBitsToInt_00B),
    Rule::Get<300, Shader::ALL, 0>(&floatBitsToInt_10B),
    Rule::Get<300, Shader::ALL, 0>(&floatBitsToInt_20B),
    Rule::Get<300, Shader::ALL, 0>(&floatBitsToInt_30B),
    Rule::Get<300, Shader::ALL, 0>(&floatBitsToUint_00B),
    Rule::Get<300, Shader::ALL, 0>(&floatBitsToUint_10B),
    Rule::Get<300, Shader::ALL, 0>(&floatBitsToUint_20B),
    Rule::Get<300, Shader::ALL, 0>(&floatBitsToUint_30B),
    Rule::Get<300, Shader::ALL, 0>(&intBitsToFloat_00C),
    Rule::Get<300, Shader::ALL, 0>(&intBitsToFloat_10C),
    Rule::Get<300, Shader::ALL, 0>(&intBitsToFloat_20C),
    Rule::Get<300, Shader::ALL, 0>(&intBitsToFloat_30C),
    Rule::Get<300, Shader::ALL, 0>(&uintBitsToFloat_00D),
    Rule::Get<300, Shader::ALL, 0>(&uintBitsToFloat_10D),
    Rule::Get<300, Shader::ALL, 0>(&uintBitsToFloat_20D),
    Rule::Get<300, Shader::ALL, 0>(&uintBitsToFloat_30D),
    Rule::Get<320, Shader::ALL, 0>(&fma_00B00B00B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(&fmaExt_00B00B00B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_gpu_shader5)>(&fmaExt_00B00B00B),
    Rule::Get<320, Shader::ALL, 0>(&fma_10B10B10B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(&fmaExt_10B10B10B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_gpu_shader5)>(&fmaExt_10B10B10B),
    Rule::Get<320, Shader::ALL, 0>(&fma_20B20B20B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(&fmaExt_20B20B20B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_gpu_shader5)>(&fmaExt_20B20B20B),
    Rule::Get<320, Shader::ALL, 0>(&fma_30B30B30B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(&fmaExt_30B30B30B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_gpu_shader5)>(&fmaExt_30B30B30B),
    Rule::Get<310, Shader::ALL, 0>(&frexp_00B00C),
    Rule::Get<310, Shader::ALL, 0>(&frexp_10B10C),
    Rule::Get<310, Shader::ALL, 0>(&frexp_20B20C),
    Rule::Get<310, Shader::ALL, 0>(&frexp_30B30C),
    Rule::Get<310, Shader::ALL, 0>(&ldexp_00B00C),
    Rule::Get<310, Shader::ALL, 0>(&ldexp_10B10C),
    Rule::Get<310, Shader::ALL, 0>(&ldexp_20B20C),
    Rule::Get<310, Shader::ALL, 0>(&ldexp_30B30C),
    Rule::Get<300, Shader::ALL, 0>(&packSnorm2x16_10B),
    Rule::Get<300, Shader::ALL, 0>(&packHalf2x16_10B),
    Rule::Get<300, Shader::ALL, 0>(&unpackSnorm2x16_00D),
    Rule::Get<300, Shader::ALL, 0>(&unpackHalf2x16_00D),
    Rule::Get<300, Shader::ALL, 0>(&packUnorm2x16_10B),
    Rule::Get<300, Shader::ALL, 0>(&unpackUnorm2x16_00D),
    Rule::Get<310, Shader::ALL, 0>(&packUnorm4x8_30B),
    Rule::Get<310, Shader::ALL, 0>(&packSnorm4x8_30B),
    Rule::Get<310, Shader::ALL, 0>(&unpackUnorm4x8_00D),
    Rule::Get<310, Shader::ALL, 0>(&unpackSnorm4x8_00D),
    Rule::Get<0, Shader::ALL, 0>(&length_00B),
    Rule::Get<0, Shader::ALL, 0>(&length_10B),
    Rule::Get<0, Shader::ALL, 0>(&length_20B),
    Rule::Get<0, Shader::ALL, 0>(&length_30B),
    Rule::Get<0, Shader::ALL, 0>(&distance_00B00B),
    Rule::Get<0, Shader::ALL, 0>(&distance_10B10B),
    Rule::Get<0, Shader::ALL, 0>(&distance_20B20B),
    Rule::Get<0, Shader::ALL, 0>(&distance_30B30B),
    Rule::Get<0, Shader::ALL, 0>(&dot_00B00B),
    Rule::Get<0, Shader::ALL, 0>(&dot_10B10B),
    Rule::Get<0, Shader::ALL, 0>(&dot_20B20B),
    Rule::Get<0, Shader::ALL, 0>(&dot_30B30B),
    Rule::Get<0, Shader::ALL, 0>(&cross_20B20B),
    Rule::Get<0, Shader::ALL, 0>(&normalize_00B),
    Rule::Get<0, Shader::ALL, 0>(&normalize_10B),
    Rule::Get<0, Shader::ALL, 0>(&normalize_20B),
    Rule::Get<0, Shader::ALL, 0>(&normalize_30B),
    Rule::Get<0, Shader::ALL, 0>(&faceforward_00B00B00B),
    Rule::Get<0, Shader::ALL, 0>(&faceforward_10B10B10B),
    Rule::Get<0, Shader::ALL, 0>(&faceforward_20B20B20B),
    Rule::Get<0, Shader::ALL, 0>(&faceforward_30B30B30B),
    Rule::Get<0, Shader::ALL, 0>(&reflect_00B00B),
    Rule::Get<0, Shader::ALL, 0>(&reflect_10B10B),
    Rule::Get<0, Shader::ALL, 0>(&reflect_20B20B),
    Rule::Get<0, Shader::ALL, 0>(&reflect_30B30B),
    Rule::Get<0, Shader::ALL, 0>(&refract_00B00B00B),
    Rule::Get<0, Shader::ALL, 0>(&refract_10B10B00B),
    Rule::Get<0, Shader::ALL, 0>(&refract_20B20B00B),
    Rule::Get<0, Shader::ALL, 0>(&refract_30B30B00B),
    Rule::Get<0, Shader::ALL, 0>(&matrixCompMult_50B50B),
    Rule::Get<0, Shader::ALL, 0>(&matrixCompMult_A0BA0B),
    Rule::Get<0, Shader::ALL, 0>(&matrixCompMult_F0BF0B),
    Rule::Get<300, Shader::ALL, 0>(&matrixCompMult_90B90B),
    Rule::Get<300, Shader::ALL, 0>(&matrixCompMult_60B60B),
    Rule::Get<300, Shader::ALL, 0>(&matrixCompMult_D0BD0B),
    Rule::Get<300, Shader::ALL, 0>(&matrixCompMult_70B70B),
    Rule::Get<300, Shader::ALL, 0>(&matrixCompMult_E0BE0B),
    Rule::Get<300, Shader::ALL, 0>(&matrixCompMult_B0BB0B),
    Rule::Get<300, Shader::ALL, 0>(&outerProduct_10B10B),
    Rule::Get<300, Shader::ALL, 0>(&outerProduct_20B20B),
    Rule::Get<300, Shader::ALL, 0>(&outerProduct_30B30B),
    Rule::Get<300, Shader::ALL, 0>(&outerProduct_20B10B),
    Rule::Get<300, Shader::ALL, 0>(&outerProduct_10B20B),
    Rule::Get<300, Shader::ALL, 0>(&outerProduct_30B10B),
    Rule::Get<300, Shader::ALL, 0>(&outerProduct_10B30B),
    Rule::Get<300, Shader::ALL, 0>(&outerProduct_30B20B),
    Rule::Get<300, Shader::ALL, 0>(&outerProduct_20B30B),
    Rule::Get<300, Shader::ALL, 0>(&transpose_50B),
    Rule::Get<300, Shader::ALL, 0>(&transpose_A0B),
    Rule::Get<300, Shader::ALL, 0>(&transpose_F0B),
    Rule::Get<300, Shader::ALL, 0>(&transpose_60B),
    Rule::Get<300, Shader::ALL, 0>(&transpose_90B),
    Rule::Get<300, Shader::ALL, 0>(&transpose_70B),
    Rule::Get<300, Shader::ALL, 0>(&transpose_D0B),
    Rule::Get<300, Shader::ALL, 0>(&transpose_B0B),
    Rule::Get<300, Shader::ALL, 0>(&transpose_E0B),
    Rule::Get<300, Shader::ALL, 0>(&determinant_50B),
    Rule::Get<300, Shader::ALL, 0>(&determinant_A0B),
    Rule::Get<300, Shader::ALL, 0>(&determinant_F0B),
    Rule::Get<300, Shader::ALL, 0>(&inverse_50B),
    Rule::Get<300, Shader::ALL, 0>(&inverse_A0B),
    Rule::Get<300, Shader::ALL, 0>(&inverse_F0B),
    Rule::Get<0, Shader::ALL, 0>(&lessThan_10B10B),
    Rule::Get<0, Shader::ALL, 0>(&lessThan_20B20B),
    Rule::Get<0, Shader::ALL, 0>(&lessThan_30B30B),
    Rule::Get<0, Shader::ALL, 0>(&lessThan_10C10C),
    Rule::Get<0, Shader::ALL, 0>(&lessThan_20C20C),
    Rule::Get<0, Shader::ALL, 0>(&lessThan_30C30C),
    Rule::Get<300, Shader::ALL, 0>(&lessThan_10D10D),
    Rule::Get<300, Shader::ALL, 0>(&lessThan_20D20D),
    Rule::Get<300, Shader::ALL, 0>(&lessThan_30D30D),
    Rule::Get<0, Shader::ALL, 0>(&lessThanEqual_10B10B),
    Rule::Get<0, Shader::ALL, 0>(&lessThanEqual_20B20B),
    Rule::Get<0, Shader::ALL, 0>(&lessThanEqual_30B30B),
    Rule::Get<0, Shader::ALL, 0>(&lessThanEqual_10C10C),
    Rule::Get<0, Shader::ALL, 0>(&lessThanEqual_20C20C),
    Rule::Get<0, Shader::ALL, 0>(&lessThanEqual_30C30C),
    Rule::Get<300, Shader::ALL, 0>(&lessThanEqual_10D10D),
    Rule::Get<300, Shader::ALL, 0>(&lessThanEqual_20D20D),
    Rule::Get<300, Shader::ALL, 0>(&lessThanEqual_30D30D),
    Rule::Get<0, Shader::ALL, 0>(&greaterThan_10B10B),
    Rule::Get<0, Shader::ALL, 0>(&greaterThan_20B20B),
    Rule::Get<0, Shader::ALL, 0>(&greaterThan_30B30B),
    Rule::Get<0, Shader::ALL, 0>(&greaterThan_10C10C),
    Rule::Get<0, Shader::ALL, 0>(&greaterThan_20C20C),
    Rule::Get<0, Shader::ALL, 0>(&greaterThan_30C30C),
    Rule::Get<300, Shader::ALL, 0>(&greaterThan_10D10D),
    Rule::Get<300, Shader::ALL, 0>(&greaterThan_20D20D),
    Rule::Get<300, Shader::ALL, 0>(&greaterThan_30D30D),
    Rule::Get<0, Shader::ALL, 0>(&greaterThanEqual_10B10B),
    Rule::Get<0, Shader::ALL, 0>(&greaterThanEqual_20B20B),
    Rule::Get<0, Shader::ALL, 0>(&greaterThanEqual_30B30B),
    Rule::Get<0, Shader::ALL, 0>(&greaterThanEqual_10C10C),
    Rule::Get<0, Shader::ALL, 0>(&greaterThanEqual_20C20C),
    Rule::Get<0, Shader::ALL, 0>(&greaterThanEqual_30C30C),
    Rule::Get<300, Shader::ALL, 0>(&greaterThanEqual_10D10D),
    Rule::Get<300, Shader::ALL, 0>(&greaterThanEqual_20D20D),
    Rule::Get<300, Shader::ALL, 0>(&greaterThanEqual_30D30D),
    Rule::Get<0, Shader::ALL, 0>(&equal_10B10B),
    Rule::Get<0, Shader::ALL, 0>(&equal_20B20B),
    Rule::Get<0, Shader::ALL, 0>(&equal_30B30B),
    Rule::Get<0, Shader::ALL, 0>(&equal_10C10C),
    Rule::Get<0, Shader::ALL, 0>(&equal_20C20C),
    Rule::Get<0, Shader::ALL, 0>(&equal_30C30C),
    Rule::Get<300, Shader::ALL, 0>(&equal_10D10D),
    Rule::Get<300, Shader::ALL, 0>(&equal_20D20D),
    Rule::Get<300, Shader::ALL, 0>(&equal_30D30D),
    Rule::Get<0, Shader::ALL, 0>(&equal_10E10E),
    Rule::Get<0, Shader::ALL, 0>(&equal_20E20E),
    Rule::Get<0, Shader::ALL, 0>(&equal_30E30E),
    Rule::Get<0, Shader::ALL, 0>(&notEqual_10B10B),
    Rule::Get<0, Shader::ALL, 0>(&notEqual_20B20B),
    Rule::Get<0, Shader::ALL, 0>(&notEqual_30B30B),
    Rule::Get<0, Shader::ALL, 0>(&notEqual_10C10C),
    Rule::Get<0, Shader::ALL, 0>(&notEqual_20C20C),
    Rule::Get<0, Shader::ALL, 0>(&notEqual_30C30C),
    Rule::Get<300, Shader::ALL, 0>(&notEqual_10D10D),
    Rule::Get<300, Shader::ALL, 0>(&notEqual_20D20D),
    Rule::Get<300, Shader::ALL, 0>(&notEqual_30D30D),
    Rule::Get<0, Shader::ALL, 0>(&notEqual_10E10E),
    Rule::Get<0, Shader::ALL, 0>(&notEqual_20E20E),
    Rule::Get<0, Shader::ALL, 0>(&notEqual_30E30E),
    Rule::Get<0, Shader::ALL, 0>(&any_10E),
    Rule::Get<0, Shader::ALL, 0>(&any_20E),
    Rule::Get<0, Shader::ALL, 0>(&any_30E),
    Rule::Get<0, Shader::ALL, 0>(&all_10E),
    Rule::Get<0, Shader::ALL, 0>(&all_20E),
    Rule::Get<0, Shader::ALL, 0>(&all_30E),
    Rule::Get<0, Shader::ALL, 0>(&notFunc_10E),
    Rule::Get<0, Shader::ALL, 0>(&notFunc_20E),
    Rule::Get<0, Shader::ALL, 0>(&notFunc_30E),
    Rule::Get<310, Shader::ALL, 0>(&bitfieldExtract_00C00C00C),
    Rule::Get<310, Shader::ALL, 0>(&bitfieldExtract_10C00C00C),
    Rule::Get<310, Shader::ALL, 0>(&bitfieldExtract_20C00C00C),
    Rule::Get<310, Shader::ALL, 0>(&bitfieldExtract_30C00C00C),
    Rule::Get<310, Shader::ALL, 0>(&bitfieldExtract_00D00C00C),
    Rule::Get<310, Shader::ALL, 0>(&bitfieldExtract_10D00C00C),
    Rule::Get<310, Shader::ALL, 0>(&bitfieldExtract_20D00C00C),
    Rule::Get<310, Shader::ALL, 0>(&bitfieldExtract_30D00C00C),
    Rule::Get<310, Shader::ALL, 0>(&bitfieldInsert_00C00C00C00C),
    Rule::Get<310, Shader::ALL, 0>(&bitfieldInsert_10C10C00C00C),
    Rule::Get<310, Shader::ALL, 0>(&bitfieldInsert_20C20C00C00C),
    Rule::Get<310, Shader::ALL, 0>(&bitfieldInsert_30C30C00C00C),
    Rule::Get<310, Shader::ALL, 0>(&bitfieldInsert_00D00D00C00C),
    Rule::Get<310, Shader::ALL, 0>(&bitfieldInsert_10D10D00C00C),
    Rule::Get<310, Shader::ALL, 0>(&bitfieldInsert_20D20D00C00C),
    Rule::Get<310, Shader::ALL, 0>(&bitfieldInsert_30D30D00C00C),
    Rule::Get<310, Shader::ALL, 0>(&bitfieldReverse_00C),
    Rule::Get<310, Shader::ALL, 0>(&bitfieldReverse_10C),
    Rule::Get<310, Shader::ALL, 0>(&bitfieldReverse_20C),
    Rule::Get<310, Shader::ALL, 0>(&bitfieldReverse_30C),
    Rule::Get<310, Shader::ALL, 0>(&bitfieldReverse_00D),
    Rule::Get<310, Shader::ALL, 0>(&bitfieldReverse_10D),
    Rule::Get<310, Shader::ALL, 0>(&bitfieldReverse_20D),
    Rule::Get<310, Shader::ALL, 0>(&bitfieldReverse_30D),
    Rule::Get<310, Shader::ALL, 0>(&bitCount_00C),
    Rule::Get<310, Shader::ALL, 0>(&bitCount_10C),
    Rule::Get<310, Shader::ALL, 0>(&bitCount_20C),
    Rule::Get<310, Shader::ALL, 0>(&bitCount_30C),
    Rule::Get<310, Shader::ALL, 0>(&bitCount_00D),
    Rule::Get<310, Shader::ALL, 0>(&bitCount_10D),
    Rule::Get<310, Shader::ALL, 0>(&bitCount_20D),
    Rule::Get<310, Shader::ALL, 0>(&bitCount_30D),
    Rule::Get<310, Shader::ALL, 0>(&findLSB_00C),
    Rule::Get<310, Shader::ALL, 0>(&findLSB_10C),
    Rule::Get<310, Shader::ALL, 0>(&findLSB_20C),
    Rule::Get<310, Shader::ALL, 0>(&findLSB_30C),
    Rule::Get<310, Shader::ALL, 0>(&findLSB_00D),
    Rule::Get<310, Shader::ALL, 0>(&findLSB_10D),
    Rule::Get<310, Shader::ALL, 0>(&findLSB_20D),
    Rule::Get<310, Shader::ALL, 0>(&findLSB_30D),
    Rule::Get<310, Shader::ALL, 0>(&findMSB_00C),
    Rule::Get<310, Shader::ALL, 0>(&findMSB_10C),
    Rule::Get<310, Shader::ALL, 0>(&findMSB_20C),
    Rule::Get<310, Shader::ALL, 0>(&findMSB_30C),
    Rule::Get<310, Shader::ALL, 0>(&findMSB_00D),
    Rule::Get<310, Shader::ALL, 0>(&findMSB_10D),
    Rule::Get<310, Shader::ALL, 0>(&findMSB_20D),
    Rule::Get<310, Shader::ALL, 0>(&findMSB_30D),
    Rule::Get<310, Shader::ALL, 0>(&uaddCarry_00D00D00D),
    Rule::Get<310, Shader::ALL, 0>(&uaddCarry_10D10D10D),
    Rule::Get<310, Shader::ALL, 0>(&uaddCarry_20D20D20D),
    Rule::Get<310, Shader::ALL, 0>(&uaddCarry_30D30D30D),
    Rule::Get<310, Shader::ALL, 0>(&usubBorrow_00D00D00D),
    Rule::Get<310, Shader::ALL, 0>(&usubBorrow_10D10D10D),
    Rule::Get<310, Shader::ALL, 0>(&usubBorrow_20D20D20D),
    Rule::Get<310, Shader::ALL, 0>(&usubBorrow_30D30D30D),
    Rule::Get<310, Shader::ALL, 0>(&umulExtended_00D00D00D00D),
    Rule::Get<310, Shader::ALL, 0>(&umulExtended_10D10D10D10D),
    Rule::Get<310, Shader::ALL, 0>(&umulExtended_20D20D20D20D),
    Rule::Get<310, Shader::ALL, 0>(&umulExtended_30D30D30D30D),
    Rule::Get<310, Shader::ALL, 0>(&imulExtended_00C00C00C00C),
    Rule::Get<310, Shader::ALL, 0>(&imulExtended_10C10C10C10C),
    Rule::Get<310, Shader::ALL, 0>(&imulExtended_20C20C20C20C),
    Rule::Get<310, Shader::ALL, 0>(&imulExtended_30C30C30C30C),
    Rule::Get<100, Shader::ALL, 0>(&texture2D_00H10B),
    Rule::Get<100, Shader::ALL, 0>(&texture2DProj_00H20B),
    Rule::Get<100, Shader::ALL, 0>(&texture2DProj_00H30B),
    Rule::Get<100, Shader::ALL, 0>(&textureCube_00J20B),
    Rule::Get<100, Shader::ALL, EXT_INDEX(OES_texture_3D)>(&texture3D_00I20B),
    Rule::Get<100, Shader::ALL, EXT_INDEX(OES_texture_3D)>(&texture3DProj_00I30B),
    Rule::Get<100, Shader::ALL, EXT_INDEX(EXT_shadow_samplers)>(&shadow2DEXT_00c20B),
    Rule::Get<100, Shader::ALL, EXT_INDEX(EXT_shadow_samplers)>(&shadow2DProjEXT_00c30B),
    Rule::Get<100, Shader::ALL, EXT_INDEX(OES_EGL_image_external)>(&texture2D_00L10B),
    Rule::Get<100, Shader::ALL, EXT_INDEX(NV_EGL_stream_consumer_external)>(&texture2D_00L10B),
    Rule::Get<100, Shader::ALL, EXT_INDEX(OES_EGL_image_external)>(&texture2DProj_00L20B),
    Rule::Get<100, Shader::ALL, EXT_INDEX(NV_EGL_stream_consumer_external)>(&texture2DProj_00L20B),
    Rule::Get<100, Shader::ALL, EXT_INDEX(OES_EGL_image_external)>(&texture2DProj_00L30B),
    Rule::Get<100, Shader::ALL, EXT_INDEX(NV_EGL_stream_consumer_external)>(&texture2DProj_00L30B),
    Rule::Get<100, Shader::ALL, EXT_INDEX(ARB_texture_rectangle)>(&texture2DRect_00N10B),
    Rule::Get<100, Shader::ALL, EXT_INDEX(ARB_texture_rectangle)>(&texture2DRectProj_00N20B),
    Rule::Get<100, Shader::ALL, EXT_INDEX(ARB_texture_rectangle)>(&texture2DRectProj_00N30B),
    Rule::Get<100, Shader::ALL, EXT_INDEX(EXT_shader_texture_lod)>(&texture2DGradEXT_00H10B10B10B),
    Rule::Get<100, Shader::ALL, EXT_INDEX(EXT_shader_texture_lod)>(
        &texture2DProjGradEXT_00H20B10B10B),
    Rule::Get<100, Shader::ALL, EXT_INDEX(EXT_shader_texture_lod)>(
        &texture2DProjGradEXT_00H30B10B10B),
    Rule::Get<100, Shader::ALL, EXT_INDEX(EXT_shader_texture_lod)>(
        &textureCubeGradEXT_00J20B20B20B),
    Rule::Get<100, Shader::ALL, 0>(&textureVideoWEBGL_00p10B),
    Rule::Get<100, Shader::FRAGMENT, 0>(&texture2D_00H10B00B),
    Rule::Get<100, Shader::FRAGMENT, 0>(&texture2DProj_00H20B00B),
    Rule::Get<100, Shader::FRAGMENT, 0>(&texture2DProj_00H30B00B),
    Rule::Get<100, Shader::FRAGMENT, 0>(&textureCube_00J20B00B),
    Rule::Get<100, Shader::FRAGMENT, EXT_INDEX(OES_texture_3D)>(&texture3D_00I20B00B),
    Rule::Get<100, Shader::FRAGMENT, EXT_INDEX(OES_texture_3D)>(&texture3DProj_00I30B00B),
    Rule::Get<100, Shader::ALL, EXT_INDEX(OES_texture_3D)>(&texture3DLod_00I20B00B),
    Rule::Get<100, Shader::ALL, EXT_INDEX(OES_texture_3D)>(&texture3DProjLod_00I30B00B),
    Rule::Get<100, Shader::VERTEX, 0>(&texture2DLod_00H10B00B),
    Rule::Get<100, Shader::VERTEX, 0>(&texture2DProjLod_00H20B00B),
    Rule::Get<100, Shader::VERTEX, 0>(&texture2DProjLod_00H30B00B),
    Rule::Get<100, Shader::VERTEX, 0>(&textureCubeLod_00J20B00B),
    Rule::Get<100, Shader::FRAGMENT, EXT_INDEX(EXT_shader_texture_lod)>(&texture2DLodEXT_00H10B00B),
    Rule::Get<100, Shader::FRAGMENT, EXT_INDEX(EXT_shader_texture_lod)>(
        &texture2DProjLodEXT_00H20B00B),
    Rule::Get<100, Shader::FRAGMENT, EXT_INDEX(EXT_shader_texture_lod)>(
        &texture2DProjLodEXT_00H30B00B),
    Rule::Get<100, Shader::FRAGMENT, EXT_INDEX(EXT_shader_texture_lod)>(
        &textureCubeLodEXT_00J20B00B),
    Rule::Get<300, Shader::ALL, 0>(&texture_00H10B),
    Rule::Get<300, Shader::ALL, 0>(&texture_00Q10B),
    Rule::Get<300, Shader::ALL, 0>(&texture_00W10B),
    Rule::Get<300, Shader::ALL, 0>(&texture_00I20B),
    Rule::Get<300, Shader::ALL, 0>(&texture_00R20B),
    Rule::Get<300, Shader::ALL, 0>(&texture_00X20B),
    Rule::Get<300, Shader::ALL, 0>(&texture_00J20B),
    Rule::Get<300, Shader::ALL, 0>(&texture_00S20B),
    Rule::Get<300, Shader::ALL, 0>(&texture_00Y20B),
    Rule::Get<300, Shader::ALL, 0>(&texture_00K20B),
    Rule::Get<300, Shader::ALL, 0>(&texture_00T20B),
    Rule::Get<300, Shader::ALL, 0>(&texture_00Z20B),
    Rule::Get<300, Shader::ALL, 0>(&texture_00c20B),
    Rule::Get<300, Shader::ALL, 0>(&texture_00d30B),
    Rule::Get<300, Shader::ALL, 0>(&texture_00e30B),
    Rule::Get<320, Shader::ALL, 0>(&texture_00g30B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_cube_map_array)>(&textureExt_00g30B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_texture_cube_map_array)>(&textureExt_00g30B),
    Rule::Get<320, Shader::ALL, 0>(&texture_00l30B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_cube_map_array)>(&textureExt_00l30B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_texture_cube_map_array)>(&textureExt_00l30B),
    Rule::Get<320, Shader::ALL, 0>(&texture_00o30B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_cube_map_array)>(&textureExt_00o30B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_texture_cube_map_array)>(&textureExt_00o30B),
    Rule::Get<320, Shader::ALL, 0>(&texture_00h30B00B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_cube_map_array)>(&textureExt_00h30B00B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_texture_cube_map_array)>(&textureExt_00h30B00B),
    Rule::Get<300, Shader::ALL, EXT_INDEX(OES_EGL_image_external_essl3)>(&texture_00L10B),
    Rule::Get<300, Shader::ALL, EXT_INDEX(EXT_YUV_target)>(&texture_00M10B),
    Rule::Get<300, Shader::ALL, EXT_INDEX(ARB_texture_rectangle)>(&texture_00N10B),
    Rule::Get<300, Shader::ALL, 0>(&texture_00p10B),
    Rule::Get<300, Shader::ALL, 0>(&textureProj_00H20B),
    Rule::Get<300, Shader::ALL, 0>(&textureProj_00Q20B),
    Rule::Get<300, Shader::ALL, 0>(&textureProj_00W20B),
    Rule::Get<300, Shader::ALL, 0>(&textureProj_00H30B),
    Rule::Get<300, Shader::ALL, 0>(&textureProj_00Q30B),
    Rule::Get<300, Shader::ALL, 0>(&textureProj_00W30B),
    Rule::Get<300, Shader::ALL, 0>(&textureProj_00I30B),
    Rule::Get<300, Shader::ALL, 0>(&textureProj_00R30B),
    Rule::Get<300, Shader::ALL, 0>(&textureProj_00X30B),
    Rule::Get<300, Shader::ALL, 0>(&textureProj_00c30B),
    Rule::Get<300, Shader::ALL, EXT_INDEX(OES_EGL_image_external_essl3)>(&textureProj_00L20B),
    Rule::Get<300, Shader::ALL, EXT_INDEX(OES_EGL_image_external_essl3)>(&textureProj_00L30B),
    Rule::Get<300, Shader::ALL, EXT_INDEX(EXT_YUV_target)>(&textureProj_00M20B),
    Rule::Get<300, Shader::ALL, EXT_INDEX(EXT_YUV_target)>(&textureProj_00M30B),
    Rule::Get<300, Shader::ALL, EXT_INDEX(ARB_texture_rectangle)>(&textureProj_00N20B),
    Rule::Get<300, Shader::ALL, EXT_INDEX(ARB_texture_rectangle)>(&textureProj_00N30B),
    Rule::Get<300, Shader::ALL, 0>(&textureLod_00H10B00B),
    Rule::Get<300, Shader::ALL, 0>(&textureLod_00Q10B00B),
    Rule::Get<300, Shader::ALL, 0>(&textureLod_00W10B00B),
    Rule::Get<300, Shader::ALL, 0>(&textureLod_00I20B00B),
    Rule::Get<300, Shader::ALL, 0>(&textureLod_00R20B00B),
    Rule::Get<300, Shader::ALL, 0>(&textureLod_00X20B00B),
    Rule::Get<300, Shader::ALL, 0>(&textureLod_00J20B00B),
    Rule::Get<300, Shader::ALL, 0>(&textureLod_00S20B00B),
    Rule::Get<300, Shader::ALL, 0>(&textureLod_00Y20B00B),
    Rule::Get<300, Shader::ALL, 0>(&textureLod_00K20B00B),
    Rule::Get<300, Shader::ALL, 0>(&textureLod_00T20B00B),
    Rule::Get<300, Shader::ALL, 0>(&textureLod_00Z20B00B),
    Rule::Get<300, Shader::ALL, 0>(&textureLod_00c20B00B),
    Rule::Get<300, Shader::ALL, EXT_INDEX(EXT_texture_shadow_lod)>(&textureLod_00d30B00B),
    Rule::Get<300, Shader::ALL, EXT_INDEX(EXT_texture_shadow_lod)>(&textureLod_00e30B00B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_texture_shadow_lod)>(&textureLod_00h30B00B00B),
    Rule::Get<320, Shader::ALL, 0>(&textureLod_00g30B00B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_cube_map_array)>(&textureLodExt_00g30B00B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_texture_cube_map_array)>(&textureLodExt_00g30B00B),
    Rule::Get<320, Shader::ALL, 0>(&textureLod_00l30B00B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_cube_map_array)>(&textureLodExt_00l30B00B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_texture_cube_map_array)>(&textureLodExt_00l30B00B),
    Rule::Get<320, Shader::ALL, 0>(&textureLod_00o30B00B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_cube_map_array)>(&textureLodExt_00o30B00B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_texture_cube_map_array)>(&textureLodExt_00o30B00B),
    Rule::Get<300, Shader::ALL, 0>(&textureSize_00H00C),
    Rule::Get<300, Shader::ALL, 0>(&textureSize_00Q00C),
    Rule::Get<300, Shader::ALL, 0>(&textureSize_00W00C),
    Rule::Get<300, Shader::ALL, 0>(&textureSize_00I00C),
    Rule::Get<300, Shader::ALL, 0>(&textureSize_00R00C),
    Rule::Get<300, Shader::ALL, 0>(&textureSize_00X00C),
    Rule::Get<300, Shader::ALL, 0>(&textureSize_00J00C),
    Rule::Get<300, Shader::ALL, 0>(&textureSize_00S00C),
    Rule::Get<300, Shader::ALL, 0>(&textureSize_00Y00C),
    Rule::Get<300, Shader::ALL, 0>(&textureSize_00K00C),
    Rule::Get<300, Shader::ALL, 0>(&textureSize_00T00C),
    Rule::Get<300, Shader::ALL, 0>(&textureSize_00Z00C),
    Rule::Get<300, Shader::ALL, 0>(&textureSize_00c00C),
    Rule::Get<300, Shader::ALL, 0>(&textureSize_00d00C),
    Rule::Get<300, Shader::ALL, 0>(&textureSize_00e00C),
    Rule::Get<320, Shader::ALL, 0>(&textureSize_00g00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_cube_map_array)>(&textureSizeExt_00g00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_texture_cube_map_array)>(&textureSizeExt_00g00C),
    Rule::Get<320, Shader::ALL, 0>(&textureSize_00l00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_cube_map_array)>(&textureSizeExt_00l00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_texture_cube_map_array)>(&textureSizeExt_00l00C),
    Rule::Get<320, Shader::ALL, 0>(&textureSize_00o00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_cube_map_array)>(&textureSizeExt_00o00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_texture_cube_map_array)>(&textureSizeExt_00o00C),
    Rule::Get<320, Shader::ALL, 0>(&textureSize_00h00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_cube_map_array)>(&textureSizeExt_00h00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_texture_cube_map_array)>(&textureSizeExt_00h00C),
    Rule::Get<320, Shader::ALL, 0>(&textureSize_00f),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_buffer)>(&textureSizeExt_00f),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_texture_buffer)>(&textureSizeExt_00f),
    Rule::Get<320, Shader::ALL, 0>(&textureSize_00k),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_buffer)>(&textureSizeExt_00k),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_texture_buffer)>(&textureSizeExt_00k),
    Rule::Get<320, Shader::ALL, 0>(&textureSize_00n),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_buffer)>(&textureSizeExt_00n),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_texture_buffer)>(&textureSizeExt_00n),
    Rule::Get<310, Shader::ALL, 0>(&textureSize_00O),
    Rule::Get<300, Shader::ALL, EXT_INDEX(ANGLE_texture_multisample)>(&textureSizeExt_00O),
    Rule::Get<310, Shader::ALL, 0>(&textureSize_00U),
    Rule::Get<300, Shader::ALL, EXT_INDEX(ANGLE_texture_multisample)>(&textureSizeExt_00U),
    Rule::Get<310, Shader::ALL, 0>(&textureSize_00a),
    Rule::Get<300, Shader::ALL, EXT_INDEX(ANGLE_texture_multisample)>(&textureSizeExt_00a),
    Rule::Get<320, Shader::ALL, 0>(&textureSize_00P),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_storage_multisample_2d_array)>(
        &textureSizeExt_00P),
    Rule::Get<320, Shader::ALL, 0>(&textureSize_00V),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_storage_multisample_2d_array)>(
        &textureSizeExt_00V),
    Rule::Get<320, Shader::ALL, 0>(&textureSize_00b),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_storage_multisample_2d_array)>(
        &textureSizeExt_00b),
    Rule::Get<300, Shader::ALL, EXT_INDEX(OES_EGL_image_external_essl3)>(&textureSize_00L00C),
    Rule::Get<300, Shader::ALL, EXT_INDEX(EXT_YUV_target)>(&textureSize_00M00C),
    Rule::Get<300, Shader::ALL, 0>(&textureProjLod_00H20B00B),
    Rule::Get<300, Shader::ALL, 0>(&textureProjLod_00Q20B00B),
    Rule::Get<300, Shader::ALL, 0>(&textureProjLod_00W20B00B),
    Rule::Get<300, Shader::ALL, 0>(&textureProjLod_00H30B00B),
    Rule::Get<300, Shader::ALL, 0>(&textureProjLod_00Q30B00B),
    Rule::Get<300, Shader::ALL, 0>(&textureProjLod_00W30B00B),
    Rule::Get<300, Shader::ALL, 0>(&textureProjLod_00I30B00B),
    Rule::Get<300, Shader::ALL, 0>(&textureProjLod_00R30B00B),
    Rule::Get<300, Shader::ALL, 0>(&textureProjLod_00X30B00B),
    Rule::Get<300, Shader::ALL, 0>(&textureProjLod_00c30B00B),
    Rule::Get<300, Shader::ALL, 0>(&texelFetch_00H10C00C),
    Rule::Get<300, Shader::ALL, 0>(&texelFetch_00Q10C00C),
    Rule::Get<300, Shader::ALL, 0>(&texelFetch_00W10C00C),
    Rule::Get<300, Shader::ALL, 0>(&texelFetch_00I20C00C),
    Rule::Get<300, Shader::ALL, 0>(&texelFetch_00R20C00C),
    Rule::Get<300, Shader::ALL, 0>(&texelFetch_00X20C00C),
    Rule::Get<300, Shader::ALL, 0>(&texelFetch_00K20C00C),
    Rule::Get<300, Shader::ALL, 0>(&texelFetch_00T20C00C),
    Rule::Get<300, Shader::ALL, 0>(&texelFetch_00Z20C00C),
    Rule::Get<320, Shader::ALL, 0>(&texelFetch_00f00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_buffer)>(&texelFetchExt_00f00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_texture_buffer)>(&texelFetchExt_00f00C),
    Rule::Get<320, Shader::ALL, 0>(&texelFetch_00k00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_buffer)>(&texelFetchExt_00k00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_texture_buffer)>(&texelFetchExt_00k00C),
    Rule::Get<320, Shader::ALL, 0>(&texelFetch_00n00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_buffer)>(&texelFetchExt_00n00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_texture_buffer)>(&texelFetchExt_00n00C),
    Rule::Get<310, Shader::ALL, 0>(&texelFetch_00O10C00C),
    Rule::Get<300, Shader::ALL, EXT_INDEX(ANGLE_texture_multisample)>(&texelFetchExt_00O10C00C),
    Rule::Get<310, Shader::ALL, 0>(&texelFetch_00U10C00C),
    Rule::Get<300, Shader::ALL, EXT_INDEX(ANGLE_texture_multisample)>(&texelFetchExt_00U10C00C),
    Rule::Get<310, Shader::ALL, 0>(&texelFetch_00a10C00C),
    Rule::Get<300, Shader::ALL, EXT_INDEX(ANGLE_texture_multisample)>(&texelFetchExt_00a10C00C),
    Rule::Get<320, Shader::ALL, 0>(&texelFetch_00P20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_storage_multisample_2d_array)>(
        &texelFetchExt_00P20C00C),
    Rule::Get<320, Shader::ALL, 0>(&texelFetch_00V20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_storage_multisample_2d_array)>(
        &texelFetchExt_00V20C00C),
    Rule::Get<320, Shader::ALL, 0>(&texelFetch_00b20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_storage_multisample_2d_array)>(
        &texelFetchExt_00b20C00C),
    Rule::Get<300, Shader::ALL, EXT_INDEX(OES_EGL_image_external_essl3)>(&texelFetch_00L10C00C),
    Rule::Get<300, Shader::ALL, EXT_INDEX(EXT_YUV_target)>(&texelFetch_00M10C00C),
    Rule::Get<300, Shader::ALL, 0>(&textureGrad_00H10B10B10B),
    Rule::Get<300, Shader::ALL, 0>(&textureGrad_00Q10B10B10B),
    Rule::Get<300, Shader::ALL, 0>(&textureGrad_00W10B10B10B),
    Rule::Get<300, Shader::ALL, 0>(&textureGrad_00I20B20B20B),
    Rule::Get<300, Shader::ALL, 0>(&textureGrad_00R20B20B20B),
    Rule::Get<300, Shader::ALL, 0>(&textureGrad_00X20B20B20B),
    Rule::Get<300, Shader::ALL, 0>(&textureGrad_00J20B20B20B),
    Rule::Get<300, Shader::ALL, 0>(&textureGrad_00S20B20B20B),
    Rule::Get<300, Shader::ALL, 0>(&textureGrad_00Y20B20B20B),
    Rule::Get<300, Shader::ALL, 0>(&textureGrad_00c20B10B10B),
    Rule::Get<300, Shader::ALL, 0>(&textureGrad_00d30B20B20B),
    Rule::Get<300, Shader::ALL, 0>(&textureGrad_00K20B10B10B),
    Rule::Get<300, Shader::ALL, 0>(&textureGrad_00T20B10B10B),
    Rule::Get<300, Shader::ALL, 0>(&textureGrad_00Z20B10B10B),
    Rule::Get<300, Shader::ALL, 0>(&textureGrad_00e30B10B10B),
    Rule::Get<320, Shader::ALL, 0>(&textureGrad_00g30B20B20B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_cube_map_array)>(
        &textureGradExt_00g30B20B20B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_texture_cube_map_array)>(
        &textureGradExt_00g30B20B20B),
    Rule::Get<320, Shader::ALL, 0>(&textureGrad_00l30B20B20B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_cube_map_array)>(
        &textureGradExt_00l30B20B20B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_texture_cube_map_array)>(
        &textureGradExt_00l30B20B20B),
    Rule::Get<320, Shader::ALL, 0>(&textureGrad_00o30B20B20B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_cube_map_array)>(
        &textureGradExt_00o30B20B20B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_texture_cube_map_array)>(
        &textureGradExt_00o30B20B20B),
    Rule::Get<300, Shader::ALL, 0>(&textureProjGrad_00H20B10B10B),
    Rule::Get<300, Shader::ALL, 0>(&textureProjGrad_00Q20B10B10B),
    Rule::Get<300, Shader::ALL, 0>(&textureProjGrad_00W20B10B10B),
    Rule::Get<300, Shader::ALL, 0>(&textureProjGrad_00H30B10B10B),
    Rule::Get<300, Shader::ALL, 0>(&textureProjGrad_00Q30B10B10B),
    Rule::Get<300, Shader::ALL, 0>(&textureProjGrad_00W30B10B10B),
    Rule::Get<300, Shader::ALL, 0>(&textureProjGrad_00I30B20B20B),
    Rule::Get<300, Shader::ALL, 0>(&textureProjGrad_00R30B20B20B),
    Rule::Get<300, Shader::ALL, 0>(&textureProjGrad_00X30B20B20B),
    Rule::Get<300, Shader::ALL, 0>(&textureProjGrad_00c30B10B10B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&texture_00H10B00B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&texture_00Q10B00B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&texture_00W10B00B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&texture_00I20B00B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&texture_00R20B00B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&texture_00X20B00B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&texture_00J20B00B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&texture_00S20B00B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&texture_00Y20B00B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&texture_00K20B00B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&texture_00T20B00B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&texture_00Z20B00B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&textureProj_00H20B00B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&textureProj_00Q20B00B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&textureProj_00W20B00B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&textureProj_00H30B00B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&textureProj_00Q30B00B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&textureProj_00W30B00B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&textureProj_00I30B00B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&textureProj_00R30B00B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&textureProj_00X30B00B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&texture_00c20B00B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&texture_00d30B00B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&textureProj_00c30B00B),
    Rule::Get<300, Shader::FRAGMENT, EXT_INDEX(EXT_texture_shadow_lod)>(&texture_00e30B00B),
    Rule::Get<320, Shader::FRAGMENT, 0>(&texture_00g30B00B),
    Rule::Get<310, Shader::FRAGMENT, EXT_INDEX(OES_texture_cube_map_array)>(&textureExt_00g30B00B),
    Rule::Get<310, Shader::FRAGMENT, EXT_INDEX(EXT_texture_cube_map_array)>(&textureExt_00g30B00B),
    Rule::Get<320, Shader::FRAGMENT, 0>(&texture_00l30B00B),
    Rule::Get<310, Shader::FRAGMENT, EXT_INDEX(OES_texture_cube_map_array)>(&textureExt_00l30B00B),
    Rule::Get<310, Shader::FRAGMENT, EXT_INDEX(EXT_texture_cube_map_array)>(&textureExt_00l30B00B),
    Rule::Get<320, Shader::FRAGMENT, 0>(&texture_00o30B00B),
    Rule::Get<310, Shader::FRAGMENT, EXT_INDEX(OES_texture_cube_map_array)>(&textureExt_00o30B00B),
    Rule::Get<310, Shader::FRAGMENT, EXT_INDEX(EXT_texture_cube_map_array)>(&textureExt_00o30B00B),
    Rule::Get<310, Shader::FRAGMENT, EXT_INDEX(EXT_texture_shadow_lod)>(&texture_00h30B00B00B),
    Rule::Get<300, Shader::FRAGMENT, EXT_INDEX(OES_EGL_image_external_essl3)>(&texture_00L10B00B),
    Rule::Get<300, Shader::FRAGMENT, EXT_INDEX(OES_EGL_image_external_essl3)>(
        &textureProj_00L20B00B),
    Rule::Get<300, Shader::FRAGMENT, EXT_INDEX(OES_EGL_image_external_essl3)>(
        &textureProj_00L30B00B),
    Rule::Get<300, Shader::FRAGMENT, EXT_INDEX(EXT_YUV_target)>(&texture_00M10B00B),
    Rule::Get<300, Shader::FRAGMENT, EXT_INDEX(EXT_YUV_target)>(&textureProj_00M20B00B),
    Rule::Get<300, Shader::FRAGMENT, EXT_INDEX(EXT_YUV_target)>(&textureProj_00M30B00B),
    Rule::Get<300, Shader::ALL, 0>(&textureOffset_00H10B10C),
    Rule::Get<300, Shader::ALL, 0>(&textureOffset_00Q10B10C),
    Rule::Get<300, Shader::ALL, 0>(&textureOffset_00W10B10C),
    Rule::Get<300, Shader::ALL, 0>(&textureOffset_00I20B20C),
    Rule::Get<300, Shader::ALL, 0>(&textureOffset_00R20B20C),
    Rule::Get<300, Shader::ALL, 0>(&textureOffset_00X20B20C),
    Rule::Get<300, Shader::ALL, 0>(&textureOffset_00c20B10C),
    Rule::Get<300, Shader::ALL, 0>(&textureOffset_00K20B10C),
    Rule::Get<300, Shader::ALL, 0>(&textureOffset_00T20B10C),
    Rule::Get<300, Shader::ALL, 0>(&textureOffset_00Z20B10C),
    Rule::Get<300, Shader::ALL, EXT_INDEX(EXT_texture_shadow_lod)>(&textureOffset_00e30B10C),
    Rule::Get<300, Shader::ALL, 0>(&textureProjOffset_00H20B10C),
    Rule::Get<300, Shader::ALL, 0>(&textureProjOffset_00Q20B10C),
    Rule::Get<300, Shader::ALL, 0>(&textureProjOffset_00W20B10C),
    Rule::Get<300, Shader::ALL, 0>(&textureProjOffset_00H30B10C),
    Rule::Get<300, Shader::ALL, 0>(&textureProjOffset_00Q30B10C),
    Rule::Get<300, Shader::ALL, 0>(&textureProjOffset_00W30B10C),
    Rule::Get<300, Shader::ALL, 0>(&textureProjOffset_00I30B20C),
    Rule::Get<300, Shader::ALL, 0>(&textureProjOffset_00R30B20C),
    Rule::Get<300, Shader::ALL, 0>(&textureProjOffset_00X30B20C),
    Rule::Get<300, Shader::ALL, 0>(&textureProjOffset_00c30B10C),
    Rule::Get<300, Shader::ALL, 0>(&textureLodOffset_00H10B00B10C),
    Rule::Get<300, Shader::ALL, 0>(&textureLodOffset_00Q10B00B10C),
    Rule::Get<300, Shader::ALL, 0>(&textureLodOffset_00W10B00B10C),
    Rule::Get<300, Shader::ALL, 0>(&textureLodOffset_00I20B00B20C),
    Rule::Get<300, Shader::ALL, 0>(&textureLodOffset_00R20B00B20C),
    Rule::Get<300, Shader::ALL, 0>(&textureLodOffset_00X20B00B20C),
    Rule::Get<300, Shader::ALL, 0>(&textureLodOffset_00c20B00B10C),
    Rule::Get<300, Shader::ALL, 0>(&textureLodOffset_00K20B00B10C),
    Rule::Get<300, Shader::ALL, 0>(&textureLodOffset_00T20B00B10C),
    Rule::Get<300, Shader::ALL, 0>(&textureLodOffset_00Z20B00B10C),
    Rule::Get<300, Shader::ALL, EXT_INDEX(EXT_texture_shadow_lod)>(&textureLodOffset_00e30B00B10C),
    Rule::Get<300, Shader::ALL, 0>(&textureProjLodOffset_00H20B00B10C),
    Rule::Get<300, Shader::ALL, 0>(&textureProjLodOffset_00Q20B00B10C),
    Rule::Get<300, Shader::ALL, 0>(&textureProjLodOffset_00W20B00B10C),
    Rule::Get<300, Shader::ALL, 0>(&textureProjLodOffset_00H30B00B10C),
    Rule::Get<300, Shader::ALL, 0>(&textureProjLodOffset_00Q30B00B10C),
    Rule::Get<300, Shader::ALL, 0>(&textureProjLodOffset_00W30B00B10C),
    Rule::Get<300, Shader::ALL, 0>(&textureProjLodOffset_00I30B00B20C),
    Rule::Get<300, Shader::ALL, 0>(&textureProjLodOffset_00R30B00B20C),
    Rule::Get<300, Shader::ALL, 0>(&textureProjLodOffset_00X30B00B20C),
    Rule::Get<300, Shader::ALL, 0>(&textureProjLodOffset_00c30B00B10C),
    Rule::Get<300, Shader::ALL, 0>(&texelFetchOffset_00H10C00C10C),
    Rule::Get<300, Shader::ALL, 0>(&texelFetchOffset_00Q10C00C10C),
    Rule::Get<300, Shader::ALL, 0>(&texelFetchOffset_00W10C00C10C),
    Rule::Get<300, Shader::ALL, 0>(&texelFetchOffset_00I20C00C20C),
    Rule::Get<300, Shader::ALL, 0>(&texelFetchOffset_00R20C00C20C),
    Rule::Get<300, Shader::ALL, 0>(&texelFetchOffset_00X20C00C20C),
    Rule::Get<300, Shader::ALL, 0>(&texelFetchOffset_00K20C00C10C),
    Rule::Get<300, Shader::ALL, 0>(&texelFetchOffset_00T20C00C10C),
    Rule::Get<300, Shader::ALL, 0>(&texelFetchOffset_00Z20C00C10C),
    Rule::Get<300, Shader::ALL, 0>(&textureGradOffset_00H10B10B10B10C),
    Rule::Get<300, Shader::ALL, 0>(&textureGradOffset_00Q10B10B10B10C),
    Rule::Get<300, Shader::ALL, 0>(&textureGradOffset_00W10B10B10B10C),
    Rule::Get<300, Shader::ALL, 0>(&textureGradOffset_00I20B20B20B20C),
    Rule::Get<300, Shader::ALL, 0>(&textureGradOffset_00R20B20B20B20C),
    Rule::Get<300, Shader::ALL, 0>(&textureGradOffset_00X20B20B20B20C),
    Rule::Get<300, Shader::ALL, 0>(&textureGradOffset_00c20B10B10B10C),
    Rule::Get<300, Shader::ALL, 0>(&textureGradOffset_00K20B10B10B10C),
    Rule::Get<300, Shader::ALL, 0>(&textureGradOffset_00T20B10B10B10C),
    Rule::Get<300, Shader::ALL, 0>(&textureGradOffset_00Z20B10B10B10C),
    Rule::Get<300, Shader::ALL, 0>(&textureGradOffset_00e30B10B10B10C),
    Rule::Get<300, Shader::ALL, 0>(&textureProjGradOffset_00H20B10B10B10C),
    Rule::Get<300, Shader::ALL, 0>(&textureProjGradOffset_00Q20B10B10B10C),
    Rule::Get<300, Shader::ALL, 0>(&textureProjGradOffset_00W20B10B10B10C),
    Rule::Get<300, Shader::ALL, 0>(&textureProjGradOffset_00H30B10B10B10C),
    Rule::Get<300, Shader::ALL, 0>(&textureProjGradOffset_00Q30B10B10B10C),
    Rule::Get<300, Shader::ALL, 0>(&textureProjGradOffset_00W30B10B10B10C),
    Rule::Get<300, Shader::ALL, 0>(&textureProjGradOffset_00I30B20B20B20C),
    Rule::Get<300, Shader::ALL, 0>(&textureProjGradOffset_00R30B20B20B20C),
    Rule::Get<300, Shader::ALL, 0>(&textureProjGradOffset_00X30B20B20B20C),
    Rule::Get<300, Shader::ALL, 0>(&textureProjGradOffset_00c30B10B10B10C),
    Rule::Get<300, Shader::FRAGMENT, 0>(&textureOffset_00H10B10C00B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&textureOffset_00Q10B10C00B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&textureOffset_00W10B10C00B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&textureOffset_00I20B20C00B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&textureOffset_00R20B20C00B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&textureOffset_00X20B20C00B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&textureOffset_00c20B10C00B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&textureOffset_00K20B10C00B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&textureOffset_00T20B10C00B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&textureOffset_00Z20B10C00B),
    Rule::Get<300, Shader::FRAGMENT, EXT_INDEX(EXT_texture_shadow_lod)>(
        &textureOffset_00e30B10C00B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&textureProjOffset_00H20B10C00B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&textureProjOffset_00Q20B10C00B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&textureProjOffset_00W20B10C00B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&textureProjOffset_00H30B10C00B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&textureProjOffset_00Q30B10C00B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&textureProjOffset_00W30B10C00B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&textureProjOffset_00I30B20C00B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&textureProjOffset_00R30B20C00B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&textureProjOffset_00X30B20C00B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&textureProjOffset_00c30B10C00B),
    Rule::Get<310, Shader::ALL, 0>(&textureGather_00H10B),
    Rule::Get<310, Shader::ALL, 0>(&textureGather_00Q10B),
    Rule::Get<310, Shader::ALL, 0>(&textureGather_00W10B),
    Rule::Get<310, Shader::ALL, 0>(&textureGather_00H10B00C),
    Rule::Get<310, Shader::ALL, 0>(&textureGather_00Q10B00C),
    Rule::Get<310, Shader::ALL, 0>(&textureGather_00W10B00C),
    Rule::Get<310, Shader::ALL, 0>(&textureGather_00K20B),
    Rule::Get<310, Shader::ALL, 0>(&textureGather_00T20B),
    Rule::Get<310, Shader::ALL, 0>(&textureGather_00Z20B),
    Rule::Get<310, Shader::ALL, 0>(&textureGather_00K20B00C),
    Rule::Get<310, Shader::ALL, 0>(&textureGather_00T20B00C),
    Rule::Get<310, Shader::ALL, 0>(&textureGather_00Z20B00C),
    Rule::Get<310, Shader::ALL, 0>(&textureGather_00J20B),
    Rule::Get<310, Shader::ALL, 0>(&textureGather_00S20B),
    Rule::Get<310, Shader::ALL, 0>(&textureGather_00Y20B),
    Rule::Get<310, Shader::ALL, 0>(&textureGather_00J20B00C),
    Rule::Get<310, Shader::ALL, 0>(&textureGather_00S20B00C),
    Rule::Get<310, Shader::ALL, 0>(&textureGather_00Y20B00C),
    Rule::Get<320, Shader::ALL, 0>(&textureGather_00g30B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_cube_map_array)>(&textureGatherExt_00g30B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_texture_cube_map_array)>(&textureGatherExt_00g30B),
    Rule::Get<320, Shader::ALL, 0>(&textureGather_00l30B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_cube_map_array)>(&textureGatherExt_00l30B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_texture_cube_map_array)>(&textureGatherExt_00l30B),
    Rule::Get<320, Shader::ALL, 0>(&textureGather_00o30B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_cube_map_array)>(&textureGatherExt_00o30B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_texture_cube_map_array)>(&textureGatherExt_00o30B),
    Rule::Get<320, Shader::ALL, 0>(&textureGather_00g30B00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_cube_map_array)>(&textureGatherExt_00g30B00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_texture_cube_map_array)>(&textureGatherExt_00g30B00C),
    Rule::Get<320, Shader::ALL, 0>(&textureGather_00l30B00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_cube_map_array)>(&textureGatherExt_00l30B00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_texture_cube_map_array)>(&textureGatherExt_00l30B00C),
    Rule::Get<320, Shader::ALL, 0>(&textureGather_00o30B00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_cube_map_array)>(&textureGatherExt_00o30B00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_texture_cube_map_array)>(&textureGatherExt_00o30B00C),
    Rule::Get<320, Shader::ALL, 0>(&textureGather_00h30B00B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_cube_map_array)>(&textureGatherExt_00h30B00B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_texture_cube_map_array)>(&textureGatherExt_00h30B00B),
    Rule::Get<310, Shader::ALL, 0>(&textureGather_00c10B),
    Rule::Get<310, Shader::ALL, 0>(&textureGather_00c10B00B),
    Rule::Get<310, Shader::ALL, 0>(&textureGather_00e20B),
    Rule::Get<310, Shader::ALL, 0>(&textureGather_00e20B00B),
    Rule::Get<310, Shader::ALL, 0>(&textureGather_00d20B),
    Rule::Get<310, Shader::ALL, 0>(&textureGather_00d20B00B),
    Rule::Get<310, Shader::ALL, 0>(&textureGatherOffset_00H10B10C),
    Rule::Get<310, Shader::ALL, 0>(&textureGatherOffset_00Q10B10C),
    Rule::Get<310, Shader::ALL, 0>(&textureGatherOffset_00W10B10C),
    Rule::Get<310, Shader::ALL, 0>(&textureGatherOffset_00K20B10C),
    Rule::Get<310, Shader::ALL, 0>(&textureGatherOffset_00T20B10C),
    Rule::Get<310, Shader::ALL, 0>(&textureGatherOffset_00Z20B10C),
    Rule::Get<310, Shader::ALL, 0>(&textureGatherOffset_00c10B00B10C),
    Rule::Get<310, Shader::ALL, 0>(&textureGatherOffset_00e20B00B10C),
    Rule::Get<310, Shader::ALL, 0>(&textureGatherOffset_00H10B10C00C),
    Rule::Get<310, Shader::ALL, 0>(&textureGatherOffset_00Q10B10C00C),
    Rule::Get<310, Shader::ALL, 0>(&textureGatherOffset_00W10B10C00C),
    Rule::Get<310, Shader::ALL, 0>(&textureGatherOffset_00K20B10C00C),
    Rule::Get<310, Shader::ALL, 0>(&textureGatherOffset_00T20B10C00C),
    Rule::Get<310, Shader::ALL, 0>(&textureGatherOffset_00Z20B10C00C),
    Rule::Get<320, Shader::ALL, 0>(&textureGatherOffsets_00H10B10Cx4),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(&textureGatherOffsetsExt_00H10B10Cx4),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_gpu_shader5)>(&textureGatherOffsetsExt_00H10B10Cx4),
    Rule::Get<320, Shader::ALL, 0>(&textureGatherOffsets_00Q10B10Cx4),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(&textureGatherOffsetsExt_00Q10B10Cx4),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_gpu_shader5)>(&textureGatherOffsetsExt_00Q10B10Cx4),
    Rule::Get<320, Shader::ALL, 0>(&textureGatherOffsets_00W10B10Cx4),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(&textureGatherOffsetsExt_00W10B10Cx4),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_gpu_shader5)>(&textureGatherOffsetsExt_00W10B10Cx4),
    Rule::Get<320, Shader::ALL, 0>(&textureGatherOffsets_00K20B10Cx4),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(&textureGatherOffsetsExt_00K20B10Cx4),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_gpu_shader5)>(&textureGatherOffsetsExt_00K20B10Cx4),
    Rule::Get<320, Shader::ALL, 0>(&textureGatherOffsets_00T20B10Cx4),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(&textureGatherOffsetsExt_00T20B10Cx4),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_gpu_shader5)>(&textureGatherOffsetsExt_00T20B10Cx4),
    Rule::Get<320, Shader::ALL, 0>(&textureGatherOffsets_00Z20B10Cx4),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(&textureGatherOffsetsExt_00Z20B10Cx4),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_gpu_shader5)>(&textureGatherOffsetsExt_00Z20B10Cx4),
    Rule::Get<320, Shader::ALL, 0>(&textureGatherOffsets_00c10B00B10Cx4),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(
        &textureGatherOffsetsExt_00c10B00B10Cx4),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_gpu_shader5)>(
        &textureGatherOffsetsExt_00c10B00B10Cx4),
    Rule::Get<320, Shader::ALL, 0>(&textureGatherOffsets_00e20B00B10Cx4),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(
        &textureGatherOffsetsExt_00e20B00B10Cx4),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_gpu_shader5)>(
        &textureGatherOffsetsExt_00e20B00B10Cx4),
    Rule::Get<320, Shader::ALL, 0>(&textureGatherOffsets_00H10B10Cx400C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(
        &textureGatherOffsetsExt_00H10B10Cx400C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_gpu_shader5)>(
        &textureGatherOffsetsExt_00H10B10Cx400C),
    Rule::Get<320, Shader::ALL, 0>(&textureGatherOffsets_00Q10B10Cx400C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(
        &textureGatherOffsetsExt_00Q10B10Cx400C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_gpu_shader5)>(
        &textureGatherOffsetsExt_00Q10B10Cx400C),
    Rule::Get<320, Shader::ALL, 0>(&textureGatherOffsets_00W10B10Cx400C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(
        &textureGatherOffsetsExt_00W10B10Cx400C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_gpu_shader5)>(
        &textureGatherOffsetsExt_00W10B10Cx400C),
    Rule::Get<320, Shader::ALL, 0>(&textureGatherOffsets_00K20B10Cx400C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(
        &textureGatherOffsetsExt_00K20B10Cx400C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_gpu_shader5)>(
        &textureGatherOffsetsExt_00K20B10Cx400C),
    Rule::Get<320, Shader::ALL, 0>(&textureGatherOffsets_00T20B10Cx400C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(
        &textureGatherOffsetsExt_00T20B10Cx400C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_gpu_shader5)>(
        &textureGatherOffsetsExt_00T20B10Cx400C),
    Rule::Get<320, Shader::ALL, 0>(&textureGatherOffsets_00Z20B10Cx400C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(
        &textureGatherOffsetsExt_00Z20B10Cx400C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_gpu_shader5)>(
        &textureGatherOffsetsExt_00Z20B10Cx400C),
    Rule::Get<300, Shader::FRAGMENT, EXT_INDEX(EXT_texture_query_lod)>(&textureQueryLOD_00H10B),
    Rule::Get<300, Shader::FRAGMENT, EXT_INDEX(EXT_texture_query_lod)>(&textureQueryLOD_00Q10B),
    Rule::Get<300, Shader::FRAGMENT, EXT_INDEX(EXT_texture_query_lod)>(&textureQueryLOD_00W10B),
    Rule::Get<300, Shader::FRAGMENT, EXT_INDEX(EXT_texture_query_lod)>(&textureQueryLOD_00I20B),
    Rule::Get<300, Shader::FRAGMENT, EXT_INDEX(EXT_texture_query_lod)>(&textureQueryLOD_00R20B),
    Rule::Get<300, Shader::FRAGMENT, EXT_INDEX(EXT_texture_query_lod)>(&textureQueryLOD_00X20B),
    Rule::Get<300, Shader::FRAGMENT, EXT_INDEX(EXT_texture_query_lod)>(&textureQueryLOD_00J20B),
    Rule::Get<300, Shader::FRAGMENT, EXT_INDEX(EXT_texture_query_lod)>(&textureQueryLOD_00S20B),
    Rule::Get<300, Shader::FRAGMENT, EXT_INDEX(EXT_texture_query_lod)>(&textureQueryLOD_00Y20B),
    Rule::Get<300, Shader::FRAGMENT, EXT_INDEX(EXT_texture_query_lod)>(&textureQueryLOD_00K10B),
    Rule::Get<300, Shader::FRAGMENT, EXT_INDEX(EXT_texture_query_lod)>(&textureQueryLOD_00T10B),
    Rule::Get<300, Shader::FRAGMENT, EXT_INDEX(EXT_texture_query_lod)>(&textureQueryLOD_00Z10B),
    Rule::Get<300, Shader::FRAGMENT, EXT_INDEX(EXT_texture_query_lod)>(&textureQueryLOD_00c10B),
    Rule::Get<300, Shader::FRAGMENT, EXT_INDEX(EXT_texture_query_lod)>(&textureQueryLOD_00d20B),
    Rule::Get<300, Shader::FRAGMENT, EXT_INDEX(EXT_texture_query_lod)>(&textureQueryLOD_00e10B),
    Rule::Get<310, Shader::FRAGMENT, EXT_INDEX(EXT_texture_query_lod)>(&textureQueryLOD_00g20B),
    Rule::Get<310, Shader::FRAGMENT, EXT_INDEX(EXT_texture_query_lod)>(&textureQueryLOD_00l20B),
    Rule::Get<310, Shader::FRAGMENT, EXT_INDEX(EXT_texture_query_lod)>(&textureQueryLOD_00o20B),
    Rule::Get<310, Shader::FRAGMENT, EXT_INDEX(EXT_texture_query_lod)>(&textureQueryLOD_00h20B),
    Rule::Get<300, Shader::ALL, EXT_INDEX(EXT_YUV_target)>(&rgb_2_yuv_20B00G),
    Rule::Get<300, Shader::ALL, EXT_INDEX(EXT_YUV_target)>(&yuv_2_rgb_20B00G),
    Rule::Get<300, Shader::FRAGMENT, 0>(&dFdx_00B),
    Rule::Get<100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(&dFdxExt_00B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&dFdx_10B),
    Rule::Get<100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(&dFdxExt_10B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&dFdx_20B),
    Rule::Get<100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(&dFdxExt_20B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&dFdx_30B),
    Rule::Get<100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(&dFdxExt_30B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&dFdy_00B),
    Rule::Get<100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(&dFdyExt_00B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&dFdy_10B),
    Rule::Get<100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(&dFdyExt_10B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&dFdy_20B),
    Rule::Get<100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(&dFdyExt_20B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&dFdy_30B),
    Rule::Get<100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(&dFdyExt_30B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&fwidth_00B),
    Rule::Get<100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(&fwidthExt_00B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&fwidth_10B),
    Rule::Get<100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(&fwidthExt_10B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&fwidth_20B),
    Rule::Get<100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(&fwidthExt_20B),
    Rule::Get<300, Shader::FRAGMENT, 0>(&fwidth_30B),
    Rule::Get<100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(&fwidthExt_30B),
    Rule::Get<320, Shader::FRAGMENT, 0>(&interpolateAtCentroid_00B),
    Rule::Get<300, Shader::FRAGMENT, EXT_INDEX(OES_shader_multisample_interpolation)>(
        &interpolateAtCentroidExt_00B),
    Rule::Get<320, Shader::FRAGMENT, 0>(&interpolateAtCentroid_10B),
    Rule::Get<300, Shader::FRAGMENT, EXT_INDEX(OES_shader_multisample_interpolation)>(
        &interpolateAtCentroidExt_10B),
    Rule::Get<320, Shader::FRAGMENT, 0>(&interpolateAtCentroid_20B),
    Rule::Get<300, Shader::FRAGMENT, EXT_INDEX(OES_shader_multisample_interpolation)>(
        &interpolateAtCentroidExt_20B),
    Rule::Get<320, Shader::FRAGMENT, 0>(&interpolateAtCentroid_30B),
    Rule::Get<300, Shader::FRAGMENT, EXT_INDEX(OES_shader_multisample_interpolation)>(
        &interpolateAtCentroidExt_30B),
    Rule::Get<320, Shader::FRAGMENT, 0>(&interpolateAtSample_00B00C),
    Rule::Get<300, Shader::FRAGMENT, EXT_INDEX(OES_shader_multisample_interpolation)>(
        &interpolateAtSampleExt_00B00C),
    Rule::Get<320, Shader::FRAGMENT, 0>(&interpolateAtSample_10B00C),
    Rule::Get<300, Shader::FRAGMENT, EXT_INDEX(OES_shader_multisample_interpolation)>(
        &interpolateAtSampleExt_10B00C),
    Rule::Get<320, Shader::FRAGMENT, 0>(&interpolateAtSample_20B00C),
    Rule::Get<300, Shader::FRAGMENT, EXT_INDEX(OES_shader_multisample_interpolation)>(
        &interpolateAtSampleExt_20B00C),
    Rule::Get<320, Shader::FRAGMENT, 0>(&interpolateAtSample_30B00C),
    Rule::Get<300, Shader::FRAGMENT, EXT_INDEX(OES_shader_multisample_interpolation)>(
        &interpolateAtSampleExt_30B00C),
    Rule::Get<320, Shader::FRAGMENT, 0>(&interpolateAtOffset_00B10B),
    Rule::Get<300, Shader::FRAGMENT, EXT_INDEX(OES_shader_multisample_interpolation)>(
        &interpolateAtOffsetExt_00B10B),
    Rule::Get<320, Shader::FRAGMENT, 0>(&interpolateAtOffset_10B10B),
    Rule::Get<300, Shader::FRAGMENT, EXT_INDEX(OES_shader_multisample_interpolation)>(
        &interpolateAtOffsetExt_10B10B),
    Rule::Get<320, Shader::FRAGMENT, 0>(&interpolateAtOffset_20B10B),
    Rule::Get<300, Shader::FRAGMENT, EXT_INDEX(OES_shader_multisample_interpolation)>(
        &interpolateAtOffsetExt_20B10B),
    Rule::Get<320, Shader::FRAGMENT, 0>(&interpolateAtOffset_30B10B),
    Rule::Get<300, Shader::FRAGMENT, EXT_INDEX(OES_shader_multisample_interpolation)>(
        &interpolateAtOffsetExt_30B10B),
    Rule::Get<310, Shader::ALL, 0>(&atomicCounter_00F),
    Rule::Get<310, Shader::ALL, 0>(&atomicCounterIncrement_00F),
    Rule::Get<310, Shader::ALL, 0>(&atomicCounterDecrement_00F),
    Rule::Get<310, Shader::ALL, 0>(&atomicAdd_00D00D),
    Rule::Get<310, Shader::ALL, 0>(&atomicAdd_00C00C),
    Rule::Get<310, Shader::ALL, 0>(&atomicMin_00D00D),
    Rule::Get<310, Shader::ALL, 0>(&atomicMin_00C00C),
    Rule::Get<310, Shader::ALL, 0>(&atomicMax_00D00D),
    Rule::Get<310, Shader::ALL, 0>(&atomicMax_00C00C),
    Rule::Get<310, Shader::ALL, 0>(&atomicAnd_00D00D),
    Rule::Get<310, Shader::ALL, 0>(&atomicAnd_00C00C),
    Rule::Get<310, Shader::ALL, 0>(&atomicOr_00D00D),
    Rule::Get<310, Shader::ALL, 0>(&atomicOr_00C00C),
    Rule::Get<310, Shader::ALL, 0>(&atomicXor_00D00D),
    Rule::Get<310, Shader::ALL, 0>(&atomicXor_00C00C),
    Rule::Get<310, Shader::ALL, 0>(&atomicExchange_00D00D),
    Rule::Get<310, Shader::ALL, 0>(&atomicExchange_00C00C),
    Rule::Get<310, Shader::ALL, 0>(&atomicCompSwap_00D00D00D),
    Rule::Get<310, Shader::ALL, 0>(&atomicCompSwap_00C00C00C),
    Rule::Get<310, Shader::ALL, 0>(&imageSize_00q),
    Rule::Get<310, Shader::ALL, 0>(&imageSize_00z),
    Rule::Get<310, Shader::ALL, 0>(&imageSize_01I),
    Rule::Get<310, Shader::ALL, 0>(&imageSize_00r),
    Rule::Get<310, Shader::ALL, 0>(&imageSize_01A),
    Rule::Get<310, Shader::ALL, 0>(&imageSize_01J),
    Rule::Get<310, Shader::ALL, 0>(&imageSize_00s),
    Rule::Get<310, Shader::ALL, 0>(&imageSize_01B),
    Rule::Get<310, Shader::ALL, 0>(&imageSize_01K),
    Rule::Get<310, Shader::ALL, 0>(&imageSize_00t),
    Rule::Get<310, Shader::ALL, 0>(&imageSize_01C),
    Rule::Get<310, Shader::ALL, 0>(&imageSize_01L),
    Rule::Get<320, Shader::ALL, 0>(&imageSize_00w),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_cube_map_array)>(&imageSizeExt_00w),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_texture_cube_map_array)>(&imageSizeExt_00w),
    Rule::Get<320, Shader::ALL, 0>(&imageSize_01F),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_cube_map_array)>(&imageSizeExt_01F),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_texture_cube_map_array)>(&imageSizeExt_01F),
    Rule::Get<320, Shader::ALL, 0>(&imageSize_01O),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_cube_map_array)>(&imageSizeExt_01O),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_texture_cube_map_array)>(&imageSizeExt_01O),
    Rule::Get<320, Shader::ALL, 0>(&imageSize_00y),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_buffer)>(&imageSizeExt_00y),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_texture_buffer)>(&imageSizeExt_00y),
    Rule::Get<320, Shader::ALL, 0>(&imageSize_01H),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_buffer)>(&imageSizeExt_01H),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_texture_buffer)>(&imageSizeExt_01H),
    Rule::Get<320, Shader::ALL, 0>(&imageSize_01Q),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_buffer)>(&imageSizeExt_01Q),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_texture_buffer)>(&imageSizeExt_01Q),
    Rule::Get<310, Shader::ALL, 0>(&imageStore_00q10C30B),
    Rule::Get<310, Shader::ALL, 0>(&imageStore_00z10C30C),
    Rule::Get<310, Shader::ALL, 0>(&imageStore_01I10C30D),
    Rule::Get<310, Shader::ALL, 0>(&imageStore_00r20C30B),
    Rule::Get<310, Shader::ALL, 0>(&imageStore_01A20C30C),
    Rule::Get<310, Shader::ALL, 0>(&imageStore_01J20C30D),
    Rule::Get<310, Shader::ALL, 0>(&imageStore_00s20C30B),
    Rule::Get<310, Shader::ALL, 0>(&imageStore_01B20C30C),
    Rule::Get<310, Shader::ALL, 0>(&imageStore_01K20C30D),
    Rule::Get<310, Shader::ALL, 0>(&imageStore_00t20C30B),
    Rule::Get<310, Shader::ALL, 0>(&imageStore_01C20C30C),
    Rule::Get<310, Shader::ALL, 0>(&imageStore_01L20C30D),
    Rule::Get<320, Shader::ALL, 0>(&imageStore_00w20C30B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_cube_map_array)>(&imageStoreExt_00w20C30B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_texture_cube_map_array)>(&imageStoreExt_00w20C30B),
    Rule::Get<320, Shader::ALL, 0>(&imageStore_01F20C30C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_cube_map_array)>(&imageStoreExt_01F20C30C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_texture_cube_map_array)>(&imageStoreExt_01F20C30C),
    Rule::Get<320, Shader::ALL, 0>(&imageStore_01O20C30D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_cube_map_array)>(&imageStoreExt_01O20C30D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_texture_cube_map_array)>(&imageStoreExt_01O20C30D),
    Rule::Get<320, Shader::ALL, 0>(&imageStore_00y00C30B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_buffer)>(&imageStoreExt_00y00C30B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_texture_buffer)>(&imageStoreExt_00y00C30B),
    Rule::Get<320, Shader::ALL, 0>(&imageStore_01H00C30C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_buffer)>(&imageStoreExt_01H00C30C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_texture_buffer)>(&imageStoreExt_01H00C30C),
    Rule::Get<320, Shader::ALL, 0>(&imageStore_01Q00C30D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_buffer)>(&imageStoreExt_01Q00C30D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_texture_buffer)>(&imageStoreExt_01Q00C30D),
    Rule::Get<310, Shader::ALL, 0>(&imageLoad_00q10C),
    Rule::Get<310, Shader::ALL, 0>(&imageLoad_00z10C),
    Rule::Get<310, Shader::ALL, 0>(&imageLoad_01I10C),
    Rule::Get<310, Shader::ALL, 0>(&imageLoad_00r20C),
    Rule::Get<310, Shader::ALL, 0>(&imageLoad_01A20C),
    Rule::Get<310, Shader::ALL, 0>(&imageLoad_01J20C),
    Rule::Get<310, Shader::ALL, 0>(&imageLoad_00s20C),
    Rule::Get<310, Shader::ALL, 0>(&imageLoad_01B20C),
    Rule::Get<310, Shader::ALL, 0>(&imageLoad_01K20C),
    Rule::Get<310, Shader::ALL, 0>(&imageLoad_00t20C),
    Rule::Get<310, Shader::ALL, 0>(&imageLoad_01C20C),
    Rule::Get<310, Shader::ALL, 0>(&imageLoad_01L20C),
    Rule::Get<320, Shader::ALL, 0>(&imageLoad_00w20C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_cube_map_array)>(&imageLoadExt_00w20C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_texture_cube_map_array)>(&imageLoadExt_00w20C),
    Rule::Get<320, Shader::ALL, 0>(&imageLoad_01F20C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_cube_map_array)>(&imageLoadExt_01F20C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_texture_cube_map_array)>(&imageLoadExt_01F20C),
    Rule::Get<320, Shader::ALL, 0>(&imageLoad_01O20C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_cube_map_array)>(&imageLoadExt_01O20C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_texture_cube_map_array)>(&imageLoadExt_01O20C),
    Rule::Get<320, Shader::ALL, 0>(&imageLoad_00y00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_buffer)>(&imageLoadExt_00y00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_texture_buffer)>(&imageLoadExt_00y00C),
    Rule::Get<320, Shader::ALL, 0>(&imageLoad_01H00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_buffer)>(&imageLoadExt_01H00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_texture_buffer)>(&imageLoadExt_01H00C),
    Rule::Get<320, Shader::ALL, 0>(&imageLoad_01Q00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_texture_buffer)>(&imageLoadExt_01Q00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_texture_buffer)>(&imageLoadExt_01Q00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_00q10C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAddExt_00q10C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_00z10C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAddExt_00z10C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_01I10C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAddExt_01I10C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_00r20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAddExt_00r20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_01A20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAddExt_01A20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_01J20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAddExt_01J20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_00t20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAddExt_00t20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_01C20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAddExt_01C20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_01L20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAddExt_01L20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_00y00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAddExt_00y00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_01H00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAddExt_01H00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_01Q00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAddExt_01Q00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_00s20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAddExt_00s20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_01B20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAddExt_01B20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_01K20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAddExt_01K20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_00w20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAddExt_00w20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_01F20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAddExt_01F20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_01O20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAddExt_01O20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_00x10C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAddExt_00x10C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_01G10C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAddExt_01G10C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_01P10C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAddExt_01P10C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_00u10C00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicAddExt_00u10C00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_01D10C00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicAddExt_01D10C00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_01M10C00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicAddExt_01M10C00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_00v20C00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicAddExt_00v20C00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_01E20C00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicAddExt_01E20C00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_01N20C00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicAddExt_01N20C00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_00q10C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAddExt_00q10C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_00z10C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAddExt_00z10C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_01I10C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAddExt_01I10C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_00r20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAddExt_00r20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_01A20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAddExt_01A20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_01J20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAddExt_01J20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_00t20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAddExt_00t20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_01C20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAddExt_01C20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_01L20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAddExt_01L20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_00y00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAddExt_00y00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_01H00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAddExt_01H00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_01Q00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAddExt_01Q00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_00s20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAddExt_00s20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_01B20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAddExt_01B20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_01K20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAddExt_01K20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_00w20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAddExt_00w20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_01F20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAddExt_01F20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_01O20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAddExt_01O20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_00x10C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAddExt_00x10C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_01G10C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAddExt_01G10C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_01P10C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAddExt_01P10C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_00u10C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicAddExt_00u10C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_01D10C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicAddExt_01D10C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_01M10C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicAddExt_01M10C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_00v20C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicAddExt_00v20C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_01E20C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicAddExt_01E20C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAdd_01N20C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicAddExt_01N20C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_00q10C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMinExt_00q10C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_00z10C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMinExt_00z10C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_01I10C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMinExt_01I10C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_00r20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMinExt_00r20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_01A20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMinExt_01A20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_01J20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMinExt_01J20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_00t20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMinExt_00t20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_01C20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMinExt_01C20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_01L20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMinExt_01L20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_00y00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMinExt_00y00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_01H00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMinExt_01H00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_01Q00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMinExt_01Q00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_00s20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMinExt_00s20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_01B20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMinExt_01B20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_01K20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMinExt_01K20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_00w20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMinExt_00w20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_01F20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMinExt_01F20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_01O20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMinExt_01O20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_00x10C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMinExt_00x10C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_01G10C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMinExt_01G10C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_01P10C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMinExt_01P10C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_00u10C00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicMinExt_00u10C00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_01D10C00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicMinExt_01D10C00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_01M10C00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicMinExt_01M10C00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_00v20C00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicMinExt_00v20C00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_01E20C00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicMinExt_01E20C00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_01N20C00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicMinExt_01N20C00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_00q10C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMinExt_00q10C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_00z10C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMinExt_00z10C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_01I10C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMinExt_01I10C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_00r20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMinExt_00r20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_01A20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMinExt_01A20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_01J20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMinExt_01J20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_00t20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMinExt_00t20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_01C20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMinExt_01C20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_01L20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMinExt_01L20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_00y00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMinExt_00y00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_01H00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMinExt_01H00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_01Q00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMinExt_01Q00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_00s20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMinExt_00s20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_01B20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMinExt_01B20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_01K20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMinExt_01K20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_00w20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMinExt_00w20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_01F20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMinExt_01F20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_01O20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMinExt_01O20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_00x10C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMinExt_00x10C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_01G10C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMinExt_01G10C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_01P10C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMinExt_01P10C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_00u10C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicMinExt_00u10C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_01D10C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicMinExt_01D10C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_01M10C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicMinExt_01M10C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_00v20C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicMinExt_00v20C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_01E20C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicMinExt_01E20C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMin_01N20C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicMinExt_01N20C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_00q10C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMaxExt_00q10C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_00z10C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMaxExt_00z10C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_01I10C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMaxExt_01I10C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_00r20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMaxExt_00r20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_01A20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMaxExt_01A20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_01J20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMaxExt_01J20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_00t20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMaxExt_00t20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_01C20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMaxExt_01C20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_01L20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMaxExt_01L20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_00y00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMaxExt_00y00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_01H00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMaxExt_01H00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_01Q00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMaxExt_01Q00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_00s20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMaxExt_00s20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_01B20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMaxExt_01B20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_01K20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMaxExt_01K20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_00w20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMaxExt_00w20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_01F20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMaxExt_01F20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_01O20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMaxExt_01O20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_00x10C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMaxExt_00x10C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_01G10C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMaxExt_01G10C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_01P10C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMaxExt_01P10C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_00u10C00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicMaxExt_00u10C00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_01D10C00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicMaxExt_01D10C00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_01M10C00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicMaxExt_01M10C00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_00v20C00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicMaxExt_00v20C00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_01E20C00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicMaxExt_01E20C00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_01N20C00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicMaxExt_01N20C00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_00q10C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMaxExt_00q10C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_00z10C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMaxExt_00z10C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_01I10C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMaxExt_01I10C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_00r20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMaxExt_00r20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_01A20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMaxExt_01A20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_01J20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMaxExt_01J20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_00t20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMaxExt_00t20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_01C20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMaxExt_01C20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_01L20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMaxExt_01L20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_00y00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMaxExt_00y00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_01H00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMaxExt_01H00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_01Q00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMaxExt_01Q00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_00s20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMaxExt_00s20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_01B20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMaxExt_01B20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_01K20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMaxExt_01K20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_00w20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMaxExt_00w20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_01F20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMaxExt_01F20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_01O20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMaxExt_01O20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_00x10C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMaxExt_00x10C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_01G10C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMaxExt_01G10C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_01P10C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicMaxExt_01P10C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_00u10C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicMaxExt_00u10C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_01D10C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicMaxExt_01D10C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_01M10C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicMaxExt_01M10C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_00v20C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicMaxExt_00v20C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_01E20C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicMaxExt_01E20C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicMax_01N20C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicMaxExt_01N20C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_00q10C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAndExt_00q10C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_00z10C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAndExt_00z10C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_01I10C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAndExt_01I10C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_00r20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAndExt_00r20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_01A20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAndExt_01A20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_01J20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAndExt_01J20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_00t20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAndExt_00t20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_01C20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAndExt_01C20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_01L20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAndExt_01L20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_00y00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAndExt_00y00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_01H00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAndExt_01H00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_01Q00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAndExt_01Q00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_00s20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAndExt_00s20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_01B20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAndExt_01B20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_01K20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAndExt_01K20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_00w20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAndExt_00w20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_01F20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAndExt_01F20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_01O20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAndExt_01O20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_00x10C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAndExt_00x10C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_01G10C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAndExt_01G10C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_01P10C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAndExt_01P10C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_00u10C00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicAndExt_00u10C00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_01D10C00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicAndExt_01D10C00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_01M10C00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicAndExt_01M10C00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_00v20C00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicAndExt_00v20C00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_01E20C00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicAndExt_01E20C00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_01N20C00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicAndExt_01N20C00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_00q10C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAndExt_00q10C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_00z10C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAndExt_00z10C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_01I10C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAndExt_01I10C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_00r20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAndExt_00r20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_01A20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAndExt_01A20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_01J20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAndExt_01J20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_00t20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAndExt_00t20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_01C20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAndExt_01C20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_01L20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAndExt_01L20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_00y00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAndExt_00y00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_01H00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAndExt_01H00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_01Q00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAndExt_01Q00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_00s20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAndExt_00s20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_01B20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAndExt_01B20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_01K20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAndExt_01K20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_00w20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAndExt_00w20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_01F20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAndExt_01F20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_01O20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAndExt_01O20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_00x10C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAndExt_00x10C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_01G10C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAndExt_01G10C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_01P10C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicAndExt_01P10C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_00u10C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicAndExt_00u10C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_01D10C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicAndExt_01D10C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_01M10C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicAndExt_01M10C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_00v20C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicAndExt_00v20C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_01E20C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicAndExt_01E20C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicAnd_01N20C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicAndExt_01N20C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_00q10C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_00q10C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_00z10C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_00z10C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_01I10C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_01I10C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_00r20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_00r20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_01A20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_01A20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_01J20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_01J20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_00t20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_00t20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_01C20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_01C20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_01L20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_01L20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_00y00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_00y00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_01H00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_01H00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_01Q00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_01Q00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_00s20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_00s20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_01B20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_01B20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_01K20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_01K20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_00w20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_00w20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_01F20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_01F20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_01O20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_01O20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_00x10C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_00x10C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_01G10C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_01G10C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_01P10C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_01P10C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_00u10C00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_00u10C00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_01D10C00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_01D10C00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_01M10C00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_01M10C00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_00v20C00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_00v20C00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_01E20C00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_01E20C00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_01N20C00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_01N20C00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_00q10C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_00q10C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_00z10C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_00z10C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_01I10C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_01I10C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_00r20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_00r20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_01A20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_01A20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_01J20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_01J20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_00t20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_00t20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_01C20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_01C20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_01L20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_01L20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_00y00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_00y00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_01H00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_01H00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_01Q00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_01Q00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_00s20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_00s20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_01B20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_01B20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_01K20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_01K20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_00w20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_00w20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_01F20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_01F20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_01O20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_01O20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_00x10C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_00x10C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_01G10C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_01G10C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_01P10C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_01P10C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_00u10C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_00u10C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_01D10C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_01D10C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_01M10C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_01M10C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_00v20C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_00v20C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_01E20C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_01E20C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicOr_01N20C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicOrExt_01N20C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_00q10C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicXorExt_00q10C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_00z10C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicXorExt_00z10C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_01I10C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicXorExt_01I10C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_00r20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicXorExt_00r20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_01A20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicXorExt_01A20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_01J20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicXorExt_01J20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_00t20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicXorExt_00t20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_01C20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicXorExt_01C20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_01L20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicXorExt_01L20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_00y00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicXorExt_00y00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_01H00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicXorExt_01H00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_01Q00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicXorExt_01Q00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_00s20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicXorExt_00s20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_01B20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicXorExt_01B20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_01K20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicXorExt_01K20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_00w20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicXorExt_00w20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_01F20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicXorExt_01F20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_01O20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicXorExt_01O20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_00x10C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicXorExt_00x10C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_01G10C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicXorExt_01G10C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_01P10C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicXorExt_01P10C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_00u10C00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicXorExt_00u10C00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_01D10C00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicXorExt_01D10C00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_01M10C00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicXorExt_01M10C00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_00v20C00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicXorExt_00v20C00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_01E20C00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicXorExt_01E20C00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_01N20C00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicXorExt_01N20C00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_00q10C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicXorExt_00q10C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_00z10C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicXorExt_00z10C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_01I10C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicXorExt_01I10C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_00r20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicXorExt_00r20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_01A20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicXorExt_01A20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_01J20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicXorExt_01J20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_00t20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicXorExt_00t20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_01C20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicXorExt_01C20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_01L20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicXorExt_01L20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_00y00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicXorExt_00y00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_01H00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicXorExt_01H00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_01Q00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicXorExt_01Q00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_00s20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicXorExt_00s20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_01B20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicXorExt_01B20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_01K20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicXorExt_01K20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_00w20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicXorExt_00w20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_01F20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicXorExt_01F20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_01O20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicXorExt_01O20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_00x10C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicXorExt_00x10C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_01G10C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicXorExt_01G10C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_01P10C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(&imageAtomicXorExt_01P10C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_00u10C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicXorExt_00u10C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_01D10C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicXorExt_01D10C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_01M10C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicXorExt_01M10C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_00v20C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicXorExt_00v20C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_01E20C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicXorExt_01E20C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicXor_01N20C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicXorExt_01N20C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_00q10C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_00q10C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_00z10C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_00z10C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01I10C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01I10C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_00r20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_00r20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01A20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01A20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01J20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01J20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_00t20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_00t20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01C20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01C20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01L20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01L20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_00y00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_00y00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01H00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01H00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01Q00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01Q00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_00s20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_00s20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01B20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01B20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01K20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01K20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_00w20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_00w20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01F20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01F20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01O20C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01O20C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_00x10C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_00x10C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01G10C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01G10C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01P10C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01P10C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_00u10C00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_00u10C00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01D10C00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01D10C00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01M10C00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01M10C00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_00v20C00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_00v20C00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01E20C00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01E20C00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01N20C00C00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01N20C00C00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_00q10C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_00q10C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_00z10C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_00z10C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01I10C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01I10C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_00r20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_00r20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01A20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01A20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01J20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01J20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_00t20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_00t20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01C20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01C20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01L20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01L20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_00y00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_00y00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01H00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01H00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01Q00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01Q00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_00s20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_00s20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01B20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01B20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01K20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01K20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_00w20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_00w20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01F20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01F20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01O20C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01O20C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_00x10C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_00x10C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01G10C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01G10C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01P10C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01P10C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_00u10C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_00u10C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01D10C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01D10C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01M10C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01M10C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_00v20C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_00v20C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01E20C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01E20C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01N20C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01N20C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_00q10C00B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_00q10C00B),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_00z10C00B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_00z10C00B),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01I10C00B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01I10C00B),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_00r20C00B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_00r20C00B),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01A20C00B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01A20C00B),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01J20C00B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01J20C00B),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_00t20C00B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_00t20C00B),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01C20C00B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01C20C00B),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01L20C00B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01L20C00B),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_00y00C00B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_00y00C00B),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01H00C00B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01H00C00B),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01Q00C00B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01Q00C00B),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_00s20C00B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_00s20C00B),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01B20C00B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01B20C00B),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01K20C00B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01K20C00B),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_00w20C00B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_00w20C00B),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01F20C00B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01F20C00B),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01O20C00B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01O20C00B),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_00x10C00B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_00x10C00B),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01G10C00B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01G10C00B),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01P10C00B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01P10C00B),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_00u10C00C00B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_00u10C00C00B),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01D10C00C00B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01D10C00C00B),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01M10C00C00B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01M10C00C00B),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_00v20C00C00B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_00v20C00C00B),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01E20C00C00B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01E20C00C00B),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicExchange_01N20C00C00B),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicExchangeExt_01N20C00C00B),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_00q10C00D00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_00q10C00D00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_00z10C00D00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_00z10C00D00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_01I10C00D00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_01I10C00D00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_00r20C00D00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_00r20C00D00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_01A20C00D00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_01A20C00D00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_01J20C00D00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_01J20C00D00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_00t20C00D00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_00t20C00D00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_01C20C00D00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_01C20C00D00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_01L20C00D00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_01L20C00D00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_00y00C00D00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_00y00C00D00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_01H00C00D00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_01H00C00D00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_01Q00C00D00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_01Q00C00D00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_00s20C00D00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_00s20C00D00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_01B20C00D00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_01B20C00D00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_01K20C00D00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_01K20C00D00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_00w20C00D00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_00w20C00D00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_01F20C00D00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_01F20C00D00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_01O20C00D00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_01O20C00D00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_00x10C00D00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_00x10C00D00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_01G10C00D00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_01G10C00D00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_01P10C00D00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_01P10C00D00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_00u10C00C00D00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_00u10C00C00D00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_01D10C00C00D00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_01D10C00C00D00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_01M10C00C00D00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_01M10C00C00D00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_00v20C00C00D00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_00v20C00C00D00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_01E20C00C00D00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_01E20C00C00D00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_01N20C00C00D00D),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_01N20C00C00D00D),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_00q10C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_00q10C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_00z10C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_00z10C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_01I10C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_01I10C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_00r20C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_00r20C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_01A20C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_01A20C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_01J20C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_01J20C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_00t20C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_00t20C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_01C20C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_01C20C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_01L20C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_01L20C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_00y00C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_00y00C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_01H00C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_01H00C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_01Q00C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_01Q00C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_00s20C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_00s20C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_01B20C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_01B20C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_01K20C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_01K20C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_00w20C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_00w20C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_01F20C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_01F20C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_01O20C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_01O20C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_00x10C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_00x10C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_01G10C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_01G10C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_01P10C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_01P10C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_00u10C00C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_00u10C00C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_01D10C00C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_01D10C00C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_01M10C00C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_01M10C00C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_00v20C00C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_00v20C00C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_01E20C00C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_01E20C00C00C00C),
    Rule::Get<320, Shader::ALL, 0>(&imageAtomicCompSwap_01N20C00C00C00C),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_shader_image_atomic)>(
        &imageAtomicCompSwapExt_01N20C00C00C00C),
    Rule::Get<300, Shader::ALL, EXT_INDEX(ANGLE_shader_pixel_local_storage)>(
        &pixelLocalLoadANGLE_01R),
    Rule::Get<300, Shader::ALL, EXT_INDEX(ANGLE_shader_pixel_local_storage)>(
        &pixelLocalLoadANGLE_01S),
    Rule::Get<300, Shader::ALL, EXT_INDEX(ANGLE_shader_pixel_local_storage)>(
        &pixelLocalLoadANGLE_01T),
    Rule::Get<300, Shader::ALL, EXT_INDEX(ANGLE_shader_pixel_local_storage)>(
        &pixelLocalStoreANGLE_01R30B),
    Rule::Get<300, Shader::ALL, EXT_INDEX(ANGLE_shader_pixel_local_storage)>(
        &pixelLocalStoreANGLE_01S30C),
    Rule::Get<300, Shader::ALL, EXT_INDEX(ANGLE_shader_pixel_local_storage)>(
        &pixelLocalStoreANGLE_01T30D),
    Rule::Get<kESSLInternalBackendBuiltIns, Shader::ALL, 0>(&beginInvocationInterlockNV_),
    Rule::Get<kESSLInternalBackendBuiltIns, Shader::ALL, 0>(&endInvocationInterlockNV_),
    Rule::Get<kESSLInternalBackendBuiltIns, Shader::ALL, 0>(&beginFragmentShaderOrderingINTEL_),
    Rule::Get<kESSLInternalBackendBuiltIns, Shader::ALL, 0>(&beginInvocationInterlockARB_),
    Rule::Get<kESSLInternalBackendBuiltIns, Shader::ALL, 0>(&endInvocationInterlockARB_),
    Rule::Get<310, Shader::ALL, 0>(&memoryBarrier_),
    Rule::Get<310, Shader::ALL, 0>(&memoryBarrierAtomicCounter_),
    Rule::Get<310, Shader::ALL, 0>(&memoryBarrierBuffer_),
    Rule::Get<310, Shader::ALL, 0>(&memoryBarrierImage_),
    Rule::Get<310, Shader::COMPUTE, 0>(&barrier_),
    Rule::Get<320, Shader::TESS_CONTROL_EXT, 0>(&barrierTCSES3_2_),
    Rule::Get<310, Shader::TESS_CONTROL_EXT, EXT_INDEX(EXT_tessellation_shader)>(&barrierTCS_),
    Rule::Get<310, Shader::TESS_CONTROL_EXT, EXT_INDEX(OES_tessellation_shader)>(&barrierTCS_),
    Rule::Get<310, Shader::COMPUTE, 0>(&memoryBarrierShared_),
    Rule::Get<310, Shader::COMPUTE, 0>(&groupMemoryBarrier_),
    Rule::Get<320, Shader::GEOMETRY, 0>(&EmitVertexES3_2_),
    Rule::Get<310, Shader::GEOMETRY, EXT_INDEX(EXT_geometry_shader)>(&EmitVertex_),
    Rule::Get<310, Shader::GEOMETRY, EXT_INDEX(OES_geometry_shader)>(&EmitVertex_),
    Rule::Get<320, Shader::GEOMETRY, 0>(&EndPrimitiveES3_2_),
    Rule::Get<310, Shader::GEOMETRY, EXT_INDEX(EXT_geometry_shader)>(&EndPrimitive_),
    Rule::Get<310, Shader::GEOMETRY, EXT_INDEX(OES_geometry_shader)>(&EndPrimitive_),
    Rule::Get<kESSLInternalBackendBuiltIns, Shader::ALL, 0>(&subpassLoad_01U),
    Rule::Get<kESSLInternalBackendBuiltIns, Shader::ALL, 0>(&subpassLoad_01V),
    Rule::Get<kESSLInternalBackendBuiltIns, Shader::ALL, 0>(&subpassLoad_01W),
    Rule::Get<kESSLInternalBackendBuiltIns, Shader::FRAGMENT, 0>(&numSamples_),
    Rule::Get<kESSLInternalBackendBuiltIns, Shader::FRAGMENT, 0>(&samplePosition_00D),
    Rule::Get<kESSLInternalBackendBuiltIns, Shader::FRAGMENT, 0>(&interpolateAtCenter_00B),
    Rule::Get<kESSLInternalBackendBuiltIns, Shader::FRAGMENT, 0>(&interpolateAtCenter_10B),
    Rule::Get<kESSLInternalBackendBuiltIns, Shader::FRAGMENT, 0>(&interpolateAtCenter_20B),
    Rule::Get<kESSLInternalBackendBuiltIns, Shader::FRAGMENT, 0>(&interpolateAtCenter_30B),
    Rule::Get<kESSLInternalBackendBuiltIns, Shader::ALL, 0>(&saturate_00B),
    Rule::Get<kESSLInternalBackendBuiltIns, Shader::ALL, 0>(&saturate_10B),
    Rule::Get<kESSLInternalBackendBuiltIns, Shader::ALL, 0>(&saturate_20B),
    Rule::Get<kESSLInternalBackendBuiltIns, Shader::ALL, 0>(&saturate_30B),
    Rule::Get<0, Shader::ALL, 0>(&TableBase::m_gl_DepthRangeParameters),
    Rule::Get<0, Shader::ALL, 0>(&TableBase::m_gl_DepthRange),
    Rule::Get<320, Shader::ALL, 0>(&BuiltInVariable::kgl_NumSamplesES3_2),
    Rule::Get<300, Shader::ALL, EXT_INDEX(OES_sample_variables)>(&BuiltInVariable::kgl_NumSamples),
    Rule::Get<0, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexAttribs),
    Rule::Get<0, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexUniformVectors),
    Rule::Get<0, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexTextureImageUnits),
    Rule::Get<0, Shader::ALL, 0>(&TableBase::m_gl_MaxCombinedTextureImageUnits),
    Rule::Get<0, Shader::ALL, 0>(&TableBase::m_gl_MaxTextureImageUnits),
    Rule::Get<0, Shader::ALL, 0>(&TableBase::m_gl_MaxFragmentUniformVectors),
    Rule::Get<100, Shader::ALL, 0>(&TableBase::m_gl_MaxVaryingVectors),
    Rule::Get<0, Shader::ALL, 0>(&TableBase::m_gl_MaxDrawBuffers),
    Rule::Get<0, Shader::ALL, EXT_INDEX(EXT_blend_func_extended)>(
        &TableBase::m_gl_MaxDualSourceDrawBuffersEXT),
    Rule::Get<300, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexOutputVectors),
    Rule::Get<300, Shader::ALL, 0>(&TableBase::m_gl_MaxFragmentInputVectors),
    Rule::Get<300, Shader::ALL, 0>(&TableBase::m_gl_MinProgramTexelOffset),
    Rule::Get<300, Shader::ALL, 0>(&TableBase::m_gl_MaxProgramTexelOffset),
    Rule::Get<310, Shader::ALL, 0>(&TableBase::m_gl_MaxImageUnits),
    Rule::Get<310, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexImageUniforms),
    Rule::Get<310, Shader::ALL, 0>(&TableBase::m_gl_MaxFragmentImageUniforms),
    Rule::Get<310, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeImageUniforms),
    Rule::Get<310, Shader::ALL, 0>(&TableBase::m_gl_MaxCombinedImageUniforms),
    Rule::Get<310, Shader::ALL, 0>(&TableBase::m_gl_MaxCombinedShaderOutputResources),
    Rule::Get<310, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeWorkGroupCount),
    Rule::Get<310, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeWorkGroupSize),
    Rule::Get<310, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeUniformComponents),
    Rule::Get<310, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeTextureImageUnits),
    Rule::Get<310, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeAtomicCounters),
    Rule::Get<310, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeAtomicCounterBuffers),
    Rule::Get<310, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexAtomicCounters),
    Rule::Get<310, Shader::ALL, 0>(&TableBase::m_gl_MaxFragmentAtomicCounters),
    Rule::Get<310, Shader::ALL, 0>(&TableBase::m_gl_MaxCombinedAtomicCounters),
    Rule::Get<310, Shader::ALL, 0>(&TableBase::m_gl_MaxAtomicCounterBindings),
    Rule::Get<310, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexAtomicCounterBuffers),
    Rule::Get<310, Shader::ALL, 0>(&TableBase::m_gl_MaxFragmentAtomicCounterBuffers),
    Rule::Get<310, Shader::ALL, 0>(&TableBase::m_gl_MaxCombinedAtomicCounterBuffers),
    Rule::Get<310, Shader::ALL, 0>(&TableBase::m_gl_MaxAtomicCounterBufferSize),
    Rule::Get<320, Shader::ALL, 0>(&TableBase::m_gl_MaxGeometryInputComponentsES3_2),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_geometry_shader)>(
        &TableBase::m_gl_MaxGeometryInputComponents),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_geometry_shader)>(
        &TableBase::m_gl_MaxGeometryInputComponents),
    Rule::Get<320, Shader::ALL, 0>(&TableBase::m_gl_MaxGeometryOutputComponentsES3_2),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_geometry_shader)>(
        &TableBase::m_gl_MaxGeometryOutputComponents),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_geometry_shader)>(
        &TableBase::m_gl_MaxGeometryOutputComponents),
    Rule::Get<320, Shader::ALL, 0>(&TableBase::m_gl_MaxGeometryImageUniformsES3_2),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_geometry_shader)>(
        &TableBase::m_gl_MaxGeometryImageUniforms),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_geometry_shader)>(
        &TableBase::m_gl_MaxGeometryImageUniforms),
    Rule::Get<320, Shader::ALL, 0>(&TableBase::m_gl_MaxGeometryTextureImageUnitsES3_2),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_geometry_shader)>(
        &TableBase::m_gl_MaxGeometryTextureImageUnits),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_geometry_shader)>(
        &TableBase::m_gl_MaxGeometryTextureImageUnits),
    Rule::Get<320, Shader::ALL, 0>(&TableBase::m_gl_MaxGeometryOutputVerticesES3_2),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_geometry_shader)>(
        &TableBase::m_gl_MaxGeometryOutputVertices),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_geometry_shader)>(
        &TableBase::m_gl_MaxGeometryOutputVertices),
    Rule::Get<320, Shader::ALL, 0>(&TableBase::m_gl_MaxGeometryTotalOutputComponentsES3_2),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_geometry_shader)>(
        &TableBase::m_gl_MaxGeometryTotalOutputComponents),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_geometry_shader)>(
        &TableBase::m_gl_MaxGeometryTotalOutputComponents),
    Rule::Get<320, Shader::ALL, 0>(&TableBase::m_gl_MaxGeometryUniformComponentsES3_2),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_geometry_shader)>(
        &TableBase::m_gl_MaxGeometryUniformComponents),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_geometry_shader)>(
        &TableBase::m_gl_MaxGeometryUniformComponents),
    Rule::Get<320, Shader::ALL, 0>(&TableBase::m_gl_MaxGeometryAtomicCountersES3_2),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_geometry_shader)>(
        &TableBase::m_gl_MaxGeometryAtomicCounters),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_geometry_shader)>(
        &TableBase::m_gl_MaxGeometryAtomicCounters),
    Rule::Get<320, Shader::ALL, 0>(&TableBase::m_gl_MaxGeometryAtomicCounterBuffersES3_2),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_geometry_shader)>(
        &TableBase::m_gl_MaxGeometryAtomicCounterBuffers),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_geometry_shader)>(
        &TableBase::m_gl_MaxGeometryAtomicCounterBuffers),
    Rule::Get<320, Shader::ALL, 0>(&TableBase::m_gl_MaxTessControlInputComponentsES3_2),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_tessellation_shader)>(
        &TableBase::m_gl_MaxTessControlInputComponents),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_tessellation_shader)>(
        &TableBase::m_gl_MaxTessControlInputComponents),
    Rule::Get<320, Shader::ALL, 0>(&TableBase::m_gl_MaxTessControlOutputComponentsES3_2),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_tessellation_shader)>(
        &TableBase::m_gl_MaxTessControlOutputComponents),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_tessellation_shader)>(
        &TableBase::m_gl_MaxTessControlOutputComponents),
    Rule::Get<320, Shader::ALL, 0>(&TableBase::m_gl_MaxTessControlTextureImageUnitsES3_2),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_tessellation_shader)>(
        &TableBase::m_gl_MaxTessControlTextureImageUnits),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_tessellation_shader)>(
        &TableBase::m_gl_MaxTessControlTextureImageUnits),
    Rule::Get<320, Shader::ALL, 0>(&TableBase::m_gl_MaxTessControlUniformComponentsES3_2),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_tessellation_shader)>(
        &TableBase::m_gl_MaxTessControlUniformComponents),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_tessellation_shader)>(
        &TableBase::m_gl_MaxTessControlUniformComponents),
    Rule::Get<320, Shader::ALL, 0>(&TableBase::m_gl_MaxTessControlTotalOutputComponentsES3_2),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_tessellation_shader)>(
        &TableBase::m_gl_MaxTessControlTotalOutputComponents),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_tessellation_shader)>(
        &TableBase::m_gl_MaxTessControlTotalOutputComponents),
    Rule::Get<320, Shader::ALL, 0>(&TableBase::m_gl_MaxTessControlImageUniformsES3_2),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_tessellation_shader)>(
        &TableBase::m_gl_MaxTessControlImageUniforms),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_tessellation_shader)>(
        &TableBase::m_gl_MaxTessControlImageUniforms),
    Rule::Get<320, Shader::ALL, 0>(&TableBase::m_gl_MaxTessControlAtomicCountersES3_2),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_tessellation_shader)>(
        &TableBase::m_gl_MaxTessControlAtomicCounters),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_tessellation_shader)>(
        &TableBase::m_gl_MaxTessControlAtomicCounters),
    Rule::Get<320, Shader::ALL, 0>(&TableBase::m_gl_MaxTessControlAtomicCounterBuffersES3_2),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_tessellation_shader)>(
        &TableBase::m_gl_MaxTessControlAtomicCounterBuffers),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_tessellation_shader)>(
        &TableBase::m_gl_MaxTessControlAtomicCounterBuffers),
    Rule::Get<320, Shader::ALL, 0>(&TableBase::m_gl_MaxTessPatchComponentsES3_2),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_tessellation_shader)>(
        &TableBase::m_gl_MaxTessPatchComponents),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_tessellation_shader)>(
        &TableBase::m_gl_MaxTessPatchComponents),
    Rule::Get<320, Shader::ALL, 0>(&TableBase::m_gl_MaxPatchVerticesES3_2),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_tessellation_shader)>(
        &TableBase::m_gl_MaxPatchVertices),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_tessellation_shader)>(
        &TableBase::m_gl_MaxPatchVertices),
    Rule::Get<320, Shader::ALL, 0>(&TableBase::m_gl_MaxTessGenLevelES3_2),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_tessellation_shader)>(
        &TableBase::m_gl_MaxTessGenLevel),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_tessellation_shader)>(
        &TableBase::m_gl_MaxTessGenLevel),
    Rule::Get<320, Shader::ALL, 0>(&TableBase::m_gl_MaxTessEvaluationInputComponentsES3_2),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_tessellation_shader)>(
        &TableBase::m_gl_MaxTessEvaluationInputComponents),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_tessellation_shader)>(
        &TableBase::m_gl_MaxTessEvaluationInputComponents),
    Rule::Get<320, Shader::ALL, 0>(&TableBase::m_gl_MaxTessEvaluationOutputComponentsES3_2),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_tessellation_shader)>(
        &TableBase::m_gl_MaxTessEvaluationOutputComponents),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_tessellation_shader)>(
        &TableBase::m_gl_MaxTessEvaluationOutputComponents),
    Rule::Get<320, Shader::ALL, 0>(&TableBase::m_gl_MaxTessEvaluationTextureImageUnitsES3_2),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_tessellation_shader)>(
        &TableBase::m_gl_MaxTessEvaluationTextureImageUnits),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_tessellation_shader)>(
        &TableBase::m_gl_MaxTessEvaluationTextureImageUnits),
    Rule::Get<320, Shader::ALL, 0>(&TableBase::m_gl_MaxTessEvaluationUniformComponentsES3_2),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_tessellation_shader)>(
        &TableBase::m_gl_MaxTessEvaluationUniformComponents),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_tessellation_shader)>(
        &TableBase::m_gl_MaxTessEvaluationUniformComponents),
    Rule::Get<320, Shader::ALL, 0>(&TableBase::m_gl_MaxTessEvaluationImageUniformsES3_2),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_tessellation_shader)>(
        &TableBase::m_gl_MaxTessEvaluationImageUniforms),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_tessellation_shader)>(
        &TableBase::m_gl_MaxTessEvaluationImageUniforms),
    Rule::Get<320, Shader::ALL, 0>(&TableBase::m_gl_MaxTessEvaluationAtomicCountersES3_2),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_tessellation_shader)>(
        &TableBase::m_gl_MaxTessEvaluationAtomicCounters),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_tessellation_shader)>(
        &TableBase::m_gl_MaxTessEvaluationAtomicCounters),
    Rule::Get<320, Shader::ALL, 0>(&TableBase::m_gl_MaxTessEvaluationAtomicCounterBuffersES3_2),
    Rule::Get<310, Shader::ALL, EXT_INDEX(EXT_tessellation_shader)>(
        &TableBase::m_gl_MaxTessEvaluationAtomicCounterBuffers),
    Rule::Get<310, Shader::ALL, EXT_INDEX(OES_tessellation_shader)>(
        &TableBase::m_gl_MaxTessEvaluationAtomicCounterBuffers),
    Rule::Get<320, Shader::ALL, 0>(&TableBase::m_gl_MaxSamplesES3_2),
    Rule::Get<300, Shader::ALL, EXT_INDEX(OES_sample_variables)>(&TableBase::m_gl_MaxSamples),
    Rule::Get<0, Shader::ALL, EXT_INDEX(APPLE_clip_distance)>(
        &TableBase::m_gl_MaxClipDistancesAPPLE),
    Rule::Get<300, Shader::ALL, EXT_INDEX(EXT_clip_cull_distance)>(
        &TableBase::m_gl_MaxClipDistances),
    Rule::Get<300, Shader::ALL, EXT_INDEX(ANGLE_clip_cull_distance)>(
        &TableBase::m_gl_MaxClipDistances),
    Rule::Get<300, Shader::ALL, EXT_INDEX(EXT_clip_cull_distance)>(
        &TableBase::m_gl_MaxCullDistances),
    Rule::Get<300, Shader::ALL, EXT_INDEX(ANGLE_clip_cull_distance)>(
        &TableBase::m_gl_MaxCullDistances),
    Rule::Get<300, Shader::ALL, EXT_INDEX(EXT_clip_cull_distance)>(
        &TableBase::m_gl_MaxCombinedClipAndCullDistances),
    Rule::Get<300, Shader::ALL, EXT_INDEX(ANGLE_clip_cull_distance)>(
        &TableBase::m_gl_MaxCombinedClipAndCullDistances),
    Rule::Get<100, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_FragCoord),
    Rule::Get<300, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_FragCoord300),
    Rule::Get<0, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_FrontFacing),
    Rule::Get<0, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_PointCoord),
    Rule::Get<100, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_FragColor),
    Rule::Get<100, Shader::FRAGMENT, 0>(&TableBase::m_gl_FragData),
    Rule::Get<300, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_FragDepth),
    Rule::Get<310, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_HelperInvocation),
    Rule::Get<100, Shader::FRAGMENT, EXT_INDEX(EXT_blend_func_extended)>(
        &BuiltInVariable::kgl_SecondaryFragColorEXT),
    Rule::Get<100, Shader::FRAGMENT, EXT_INDEX(EXT_blend_func_extended)>(
        &TableBase::m_gl_SecondaryFragDataEXT),
    Rule::Get<100, Shader::FRAGMENT, EXT_INDEX(EXT_frag_depth)>(&TableBase::m_gl_FragDepthEXT),
    Rule::Get<100, Shader::FRAGMENT, EXT_INDEX(EXT_shader_framebuffer_fetch)>(
        &TableBase::m_gl_LastFragData),
    Rule::Get<100, Shader::FRAGMENT, EXT_INDEX(EXT_shader_framebuffer_fetch_non_coherent)>(
        &TableBase::m_gl_LastFragData),
    Rule::Get<100, Shader::FRAGMENT, EXT_INDEX(NV_shader_framebuffer_fetch)>(
        &TableBase::m_gl_LastFragDataNV),
    Rule::Get<100, Shader::FRAGMENT, EXT_INDEX(NV_shader_framebuffer_fetch)>(
        &BuiltInVariable::kgl_LastFragColor),
    Rule::Get<0, Shader::FRAGMENT, EXT_INDEX(ARM_shader_framebuffer_fetch)>(
        &BuiltInVariable::kgl_LastFragColorARM),
    Rule::Get<0, Shader::FRAGMENT, EXT_INDEX(ARM_shader_framebuffer_fetch_depth_stencil)>(
        &BuiltInVariable::kgl_LastFragDepthARM),
    Rule::Get<0, Shader::FRAGMENT, EXT_INDEX(ARM_shader_framebuffer_fetch_depth_stencil)>(
        &BuiltInVariable::kgl_LastFragStencilARM),
    Rule::Get<320, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_PrimitiveIDES3_2),
    Rule::Get<320, Shader::GEOMETRY_EXT, 0>(&BuiltInVariable::kgl_PrimitiveIDGSES3_2),
    Rule::Get<320, Shader::TESS_CONTROL_EXT, 0>(&BuiltInVariable::kgl_PrimitiveIDTCSES3_2),
    Rule::Get<320, Shader::TESS_EVALUATION_EXT, 0>(&BuiltInVariable::kgl_PrimitiveIDTESES3_2),
    Rule::Get<310, Shader::FRAGMENT, EXT_INDEX(EXT_geometry_shader)>(
        &BuiltInVariable::kgl_PrimitiveID),
    Rule::Get<310, Shader::FRAGMENT, EXT_INDEX(OES_geometry_shader)>(
        &BuiltInVariable::kgl_PrimitiveID),
    Rule::Get<310, Shader::GEOMETRY_EXT, EXT_INDEX(EXT_geometry_shader)>(
        &BuiltInVariable::kgl_PrimitiveIDGS),
    Rule::Get<310, Shader::GEOMETRY_EXT, EXT_INDEX(OES_geometry_shader)>(
        &BuiltInVariable::kgl_PrimitiveIDGS),
    Rule::Get<310, Shader::TESS_CONTROL_EXT, EXT_INDEX(EXT_tessellation_shader)>(
        &BuiltInVariable::kgl_PrimitiveIDTCS),
    Rule::Get<310, Shader::TESS_CONTROL_EXT, EXT_INDEX(OES_tessellation_shader)>(
        &BuiltInVariable::kgl_PrimitiveIDTCS),
    Rule::Get<310, Shader::TESS_EVALUATION_EXT, EXT_INDEX(EXT_tessellation_shader)>(
        &BuiltInVariable::kgl_PrimitiveIDTES),
    Rule::Get<310, Shader::TESS_EVALUATION_EXT, EXT_INDEX(OES_tessellation_shader)>(
        &BuiltInVariable::kgl_PrimitiveIDTES),
    Rule::Get<320, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_LayerES3_2),
    Rule::Get<kESSLInternalBackendBuiltIns, Shader::VERTEX, 0>(&BuiltInVariable::kgl_LayerVS),
    Rule::Get<320, Shader::GEOMETRY_EXT, 0>(&BuiltInVariable::kgl_LayerGSES3_2),
    Rule::Get<310, Shader::FRAGMENT, EXT_INDEX(EXT_geometry_shader)>(&BuiltInVariable::kgl_Layer),
    Rule::Get<310, Shader::FRAGMENT, EXT_INDEX(OES_geometry_shader)>(&BuiltInVariable::kgl_Layer),
    Rule::Get<310, Shader::GEOMETRY_EXT, EXT_INDEX(EXT_geometry_shader)>(
        &BuiltInVariable::kgl_LayerGS),
    Rule::Get<310, Shader::GEOMETRY_EXT, EXT_INDEX(OES_geometry_shader)>(
        &BuiltInVariable::kgl_LayerGS),
    Rule::Get<320, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_SampleIDES3_2),
    Rule::Get<300, Shader::FRAGMENT, EXT_INDEX(OES_sample_variables)>(
        &BuiltInVariable::kgl_SampleID),
    Rule::Get<320, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_SamplePositionES3_2),
    Rule::Get<300, Shader::FRAGMENT, EXT_INDEX(OES_sample_variables)>(
        &BuiltInVariable::kgl_SamplePosition),
    Rule::Get<320, Shader::FRAGMENT, 0>(&TableBase::m_gl_SampleMaskInES3_2),
    Rule::Get<300, Shader::FRAGMENT, EXT_INDEX(OES_sample_variables)>(
        &TableBase::m_gl_SampleMaskIn),
    Rule::Get<320, Shader::FRAGMENT, 0>(&TableBase::m_gl_SampleMaskES3_2),
    Rule::Get<300, Shader::FRAGMENT, EXT_INDEX(OES_sample_variables)>(&TableBase::m_gl_SampleMask),
    Rule::Get<0, Shader::VERTEX, 0>(&BuiltInVariable::kgl_Position),
    Rule::Get<320, Shader::GEOMETRY_EXT, 0>(&TableBase::m_gl_PositionGSES3_2),
    Rule::Get<320, Shader::TESS_CONTROL_EXT, 0>(&TableBase::m_gl_PositionTCSES3_2),
    Rule::Get<320, Shader::TESS_EVALUATION_EXT, 0>(&TableBase::m_gl_PositionTESES3_2),
    Rule::Get<310, Shader::GEOMETRY_EXT, EXT_INDEX(EXT_geometry_shader)>(
        &TableBase::m_gl_PositionGS),
    Rule::Get<310, Shader::GEOMETRY_EXT, EXT_INDEX(OES_geometry_shader)>(
        &TableBase::m_gl_PositionGS),
    Rule::Get<310, Shader::TESS_CONTROL_EXT, EXT_INDEX(EXT_tessellation_shader)>(
        &TableBase::m_gl_PositionTCS),
    Rule::Get<310, Shader::TESS_CONTROL_EXT, EXT_INDEX(OES_tessellation_shader)>(
        &TableBase::m_gl_PositionTCS),
    Rule::Get<310, Shader::TESS_EVALUATION_EXT, EXT_INDEX(EXT_tessellation_shader)>(
        &TableBase::m_gl_PositionTES),
    Rule::Get<310, Shader::TESS_EVALUATION_EXT, EXT_INDEX(OES_tessellation_shader)>(
        &TableBase::m_gl_PositionTES),
    Rule::Get<100, Shader::VERTEX, 0>(&BuiltInVariable::kgl_PointSize),
    Rule::Get<300, Shader::VERTEX, 0>(&BuiltInVariable::kgl_PointSize300),
    Rule::Get<300, Shader::VERTEX, 0>(&BuiltInVariable::kgl_InstanceID),
    Rule::Get<kESSLInternalBackendBuiltIns, Shader::VERTEX, 0>(&BuiltInVariable::kgl_InstanceIndex),
    Rule::Get<300, Shader::VERTEX, 0>(&BuiltInVariable::kgl_VertexID),
    Rule::Get<kESSLInternalBackendBuiltIns, Shader::VERTEX, 0>(&BuiltInVariable::kgl_VertexIndex),
    Rule::Get<0, Shader::VERTEX, EXT_INDEX(ANGLE_multi_draw)>(&BuiltInVariable::kgl_DrawID),
    Rule::Get<300, Shader::VERTEX, EXT_INDEX(ANGLE_base_vertex_base_instance_shader_builtin)>(
        &BuiltInVariable::kgl_BaseVertex),
    Rule::Get<300, Shader::VERTEX, EXT_INDEX(ANGLE_base_vertex_base_instance_shader_builtin)>(
        &BuiltInVariable::kgl_BaseInstance),
    Rule::Get<0, Shader::VERTEX, EXT_INDEX(ANGLE_base_vertex_base_instance_shader_builtin)>(
        &BuiltInVariable::kangle_BaseVertex),
    Rule::Get<0, Shader::VERTEX, EXT_INDEX(ANGLE_base_vertex_base_instance_shader_builtin)>(
        &BuiltInVariable::kangle_BaseInstance),
    Rule::Get<0, Shader::VERTEX, EXT_INDEX(APPLE_clip_distance)>(
        &TableBase::m_gl_ClipDistanceAPPLE),
    Rule::Get<300, Shader::NOT_COMPUTE, EXT_INDEX(EXT_clip_cull_distance)>(
        &TableBase::m_gl_ClipDistance),
    Rule::Get<300, Shader::NOT_COMPUTE, EXT_INDEX(ANGLE_clip_cull_distance)>(
        &TableBase::m_gl_ClipDistance),
    Rule::Get<310, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_NumWorkGroups),
    Rule::Get<310, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_WorkGroupSize),
    Rule::Get<310, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_WorkGroupID),
    Rule::Get<310, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_LocalInvocationID),
    Rule::Get<310, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_GlobalInvocationID),
    Rule::Get<310, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_LocalInvocationIndex),
    Rule::Get<320, Shader::GEOMETRY_EXT, 0>(&BuiltInVariable::kgl_PrimitiveIDInES3_2),
    Rule::Get<310, Shader::GEOMETRY_EXT, EXT_INDEX(EXT_geometry_shader)>(
        &BuiltInVariable::kgl_PrimitiveIDIn),
    Rule::Get<310, Shader::GEOMETRY_EXT, EXT_INDEX(OES_geometry_shader)>(
        &BuiltInVariable::kgl_PrimitiveIDIn),
    Rule::Get<320, Shader::GEOMETRY_EXT, 0>(&BuiltInVariable::kgl_InvocationIDES3_2),
    Rule::Get<320, Shader::TESS_CONTROL_EXT, 0>(&BuiltInVariable::kgl_InvocationIDTCSES3_2),
    Rule::Get<310, Shader::GEOMETRY_EXT, EXT_INDEX(EXT_geometry_shader)>(
        &BuiltInVariable::kgl_InvocationID),
    Rule::Get<310, Shader::GEOMETRY_EXT, EXT_INDEX(OES_geometry_shader)>(
        &BuiltInVariable::kgl_InvocationID),
    Rule::Get<310, Shader::TESS_CONTROL_EXT, EXT_INDEX(EXT_tessellation_shader)>(
        &BuiltInVariable::kgl_InvocationIDTCS),
    Rule::Get<310, Shader::TESS_CONTROL_EXT, EXT_INDEX(OES_tessellation_shader)>(
        &BuiltInVariable::kgl_InvocationIDTCS),
    Rule::Get<320, Shader::GEOMETRY_EXT, 0>(&TableBase::m_gl_PerVertexES3_2),
    Rule::Get<320, Shader::TESS_CONTROL_EXT, 0>(&TableBase::m_gl_PerVertexTCSES3_2),
    Rule::Get<320, Shader::TESS_EVALUATION_EXT, 0>(&TableBase::m_gl_PerVertexTESES3_2),
    Rule::Get<310, Shader::GEOMETRY_EXT, EXT_INDEX(EXT_geometry_shader)>(
        &TableBase::m_gl_PerVertex),
    Rule::Get<310, Shader::GEOMETRY_EXT, EXT_INDEX(OES_geometry_shader)>(
        &TableBase::m_gl_PerVertex),
    Rule::Get<310, Shader::TESS_CONTROL_EXT, EXT_INDEX(EXT_tessellation_shader)>(
        &TableBase::m_gl_PerVertexTCS),
    Rule::Get<310, Shader::TESS_CONTROL_EXT, EXT_INDEX(OES_tessellation_shader)>(
        &TableBase::m_gl_PerVertexTCS),
    Rule::Get<310, Shader::TESS_EVALUATION_EXT, EXT_INDEX(EXT_tessellation_shader)>(
        &TableBase::m_gl_PerVertexTES),
    Rule::Get<310, Shader::TESS_EVALUATION_EXT, EXT_INDEX(OES_tessellation_shader)>(
        &TableBase::m_gl_PerVertexTES),
    Rule::Get<320, Shader::GEOMETRY_EXT, 0>(&TableBase::m_gl_inES3_2),
    Rule::Get<320, Shader::TESS_CONTROL_EXT, 0>(&TableBase::m_gl_inTCSES3_2),
    Rule::Get<320, Shader::TESS_EVALUATION_EXT, 0>(&TableBase::m_gl_inTESES3_2),
    Rule::Get<310, Shader::GEOMETRY_EXT, EXT_INDEX(EXT_geometry_shader)>(&TableBase::m_gl_in),
    Rule::Get<310, Shader::GEOMETRY_EXT, EXT_INDEX(OES_geometry_shader)>(&TableBase::m_gl_in),
    Rule::Get<310, Shader::TESS_CONTROL_EXT, EXT_INDEX(EXT_tessellation_shader)>(
        &TableBase::m_gl_inTCS),
    Rule::Get<310, Shader::TESS_CONTROL_EXT, EXT_INDEX(OES_tessellation_shader)>(
        &TableBase::m_gl_inTCS),
    Rule::Get<310, Shader::TESS_EVALUATION_EXT, EXT_INDEX(EXT_tessellation_shader)>(
        &TableBase::m_gl_inTES),
    Rule::Get<310, Shader::TESS_EVALUATION_EXT, EXT_INDEX(OES_tessellation_shader)>(
        &TableBase::m_gl_inTES),
    Rule::Get<320, Shader::TESS_CONTROL_EXT, 0>(&BuiltInVariable::kgl_PatchVerticesInTCSES3_2),
    Rule::Get<320, Shader::TESS_EVALUATION_EXT, 0>(&BuiltInVariable::kgl_PatchVerticesInTESES3_2),
    Rule::Get<310, Shader::TESS_CONTROL_EXT, EXT_INDEX(EXT_tessellation_shader)>(
        &BuiltInVariable::kgl_PatchVerticesInTCS),
    Rule::Get<310, Shader::TESS_CONTROL_EXT, EXT_INDEX(OES_tessellation_shader)>(
        &BuiltInVariable::kgl_PatchVerticesInTCS),
    Rule::Get<310, Shader::TESS_EVALUATION_EXT, EXT_INDEX(EXT_tessellation_shader)>(
        &BuiltInVariable::kgl_PatchVerticesInTES),
    Rule::Get<310, Shader::TESS_EVALUATION_EXT, EXT_INDEX(OES_tessellation_shader)>(
        &BuiltInVariable::kgl_PatchVerticesInTES),
    Rule::Get<320, Shader::TESS_CONTROL_EXT, 0>(&TableBase::m_gl_TessLevelOuterTCSES3_2),
    Rule::Get<320, Shader::TESS_EVALUATION_EXT, 0>(&TableBase::m_gl_TessLevelOuterTESES3_2),
    Rule::Get<310, Shader::TESS_CONTROL_EXT, EXT_INDEX(EXT_tessellation_shader)>(
        &TableBase::m_gl_TessLevelOuterTCS),
    Rule::Get<310, Shader::TESS_CONTROL_EXT, EXT_INDEX(OES_tessellation_shader)>(
        &TableBase::m_gl_TessLevelOuterTCS),
    Rule::Get<310, Shader::TESS_EVALUATION_EXT, EXT_INDEX(EXT_tessellation_shader)>(
        &TableBase::m_gl_TessLevelOuterTES),
    Rule::Get<310, Shader::TESS_EVALUATION_EXT, EXT_INDEX(OES_tessellation_shader)>(
        &TableBase::m_gl_TessLevelOuterTES),
    Rule::Get<320, Shader::TESS_CONTROL_EXT, 0>(&TableBase::m_gl_TessLevelInnerTCSES3_2),
    Rule::Get<320, Shader::TESS_EVALUATION_EXT, 0>(&TableBase::m_gl_TessLevelInnerTESES3_2),
    Rule::Get<310, Shader::TESS_CONTROL_EXT, EXT_INDEX(EXT_tessellation_shader)>(
        &TableBase::m_gl_TessLevelInnerTCS),
    Rule::Get<310, Shader::TESS_CONTROL_EXT, EXT_INDEX(OES_tessellation_shader)>(
        &TableBase::m_gl_TessLevelInnerTCS),
    Rule::Get<310, Shader::TESS_EVALUATION_EXT, EXT_INDEX(EXT_tessellation_shader)>(
        &TableBase::m_gl_TessLevelInnerTES),
    Rule::Get<310, Shader::TESS_EVALUATION_EXT, EXT_INDEX(OES_tessellation_shader)>(
        &TableBase::m_gl_TessLevelInnerTES),
    Rule::Get<320, Shader::TESS_CONTROL_EXT, 0>(&TableBase::m_gl_outTCSES3_2),
    Rule::Get<320, Shader::TESS_EVALUATION_EXT, 0>(&TableBase::m_gl_outTESES3_2),
    Rule::Get<310, Shader::TESS_CONTROL_EXT, EXT_INDEX(EXT_tessellation_shader)>(
        &TableBase::m_gl_outTCS),
    Rule::Get<310, Shader::TESS_CONTROL_EXT, EXT_INDEX(OES_tessellation_shader)>(
        &TableBase::m_gl_outTCS),
    Rule::Get<310, Shader::TESS_EVALUATION_EXT, EXT_INDEX(EXT_tessellation_shader)>(
        &TableBase::m_gl_outTES),
    Rule::Get<310, Shader::TESS_EVALUATION_EXT, EXT_INDEX(OES_tessellation_shader)>(
        &TableBase::m_gl_outTES),
    Rule::Get<320, Shader::TESS_CONTROL_EXT, 0>(&TableBase::m_gl_BoundingBoxTCSES3_2),
    Rule::Get<320, Shader::TESS_CONTROL_EXT, EXT_INDEX(EXT_tessellation_shader)>(
        &TableBase::m_gl_BoundingBoxTCS),
    Rule::Get<320, Shader::TESS_CONTROL_EXT, EXT_INDEX(OES_tessellation_shader)>(
        &TableBase::m_gl_BoundingBoxTCS),
    Rule::Get<320, Shader::TESS_CONTROL_EXT, 0>(&TableBase::m_gl_BoundingBoxEXTTCSES3_2),
    Rule::Get<310, Shader::TESS_CONTROL_EXT, EXT_INDEX(EXT_tessellation_shader)>(
        &TableBase::m_gl_BoundingBoxEXTTCS),
    Rule::Get<310, Shader::TESS_CONTROL_EXT, EXT_INDEX(OES_tessellation_shader)>(
        &TableBase::m_gl_BoundingBoxEXTTCS),
    Rule::Get<320, Shader::TESS_CONTROL_EXT, 0>(&TableBase::m_gl_BoundingBoxOESTCSES3_2),
    Rule::Get<310, Shader::TESS_CONTROL_EXT, EXT_INDEX(EXT_tessellation_shader)>(
        &TableBase::m_gl_BoundingBoxOESTCS),
    Rule::Get<310, Shader::TESS_CONTROL_EXT, EXT_INDEX(OES_tessellation_shader)>(
        &TableBase::m_gl_BoundingBoxOESTCS),
    Rule::Get<310, Shader::TESS_EVALUATION_EXT, 0>(&BuiltInVariable::kgl_TessCoord),
    Rule::Get<300, Shader::NOT_COMPUTE, EXT_INDEX(OVR_multiview)>(&BuiltInVariable::kgl_ViewID_OVR),
    Rule::Get<300, Shader::NOT_COMPUTE, EXT_INDEX(EXT_clip_cull_distance)>(
        &TableBase::m_gl_CullDistance),
    Rule::Get<300, Shader::NOT_COMPUTE, EXT_INDEX(ANGLE_clip_cull_distance)>(
        &TableBase::m_gl_CullDistance)};

// Flat array of all mangled names.
constexpr const char *kMangledNames[] = {"radians(00B",
                                         "radians(10B",
                                         "radians(20B",
                                         "radians(30B",
                                         "degrees(00B",
                                         "degrees(10B",
                                         "degrees(20B",
                                         "degrees(30B",
                                         "sin(00B",
                                         "sin(10B",
                                         "sin(20B",
                                         "sin(30B",
                                         "cos(00B",
                                         "cos(10B",
                                         "cos(20B",
                                         "cos(30B",
                                         "tan(00B",
                                         "tan(10B",
                                         "tan(20B",
                                         "tan(30B",
                                         "asin(00B",
                                         "asin(10B",
                                         "asin(20B",
                                         "asin(30B",
                                         "acos(00B",
                                         "acos(10B",
                                         "acos(20B",
                                         "acos(30B",
                                         "atan(00B00B",
                                         "atan(10B10B",
                                         "atan(20B20B",
                                         "atan(30B30B",
                                         "atan(00B",
                                         "atan(10B",
                                         "atan(20B",
                                         "atan(30B",
                                         "sinh(00B",
                                         "sinh(10B",
                                         "sinh(20B",
                                         "sinh(30B",
                                         "cosh(00B",
                                         "cosh(10B",
                                         "cosh(20B",
                                         "cosh(30B",
                                         "tanh(00B",
                                         "tanh(10B",
                                         "tanh(20B",
                                         "tanh(30B",
                                         "asinh(00B",
                                         "asinh(10B",
                                         "asinh(20B",
                                         "asinh(30B",
                                         "acosh(00B",
                                         "acosh(10B",
                                         "acosh(20B",
                                         "acosh(30B",
                                         "atanh(00B",
                                         "atanh(10B",
                                         "atanh(20B",
                                         "atanh(30B",
                                         "pow(00B00B",
                                         "pow(10B10B",
                                         "pow(20B20B",
                                         "pow(30B30B",
                                         "exp(00B",
                                         "exp(10B",
                                         "exp(20B",
                                         "exp(30B",
                                         "log(00B",
                                         "log(10B",
                                         "log(20B",
                                         "log(30B",
                                         "exp2(00B",
                                         "exp2(10B",
                                         "exp2(20B",
                                         "exp2(30B",
                                         "log2(00B",
                                         "log2(10B",
                                         "log2(20B",
                                         "log2(30B",
                                         "sqrt(00B",
                                         "sqrt(10B",
                                         "sqrt(20B",
                                         "sqrt(30B",
                                         "inversesqrt(00B",
                                         "inversesqrt(10B",
                                         "inversesqrt(20B",
                                         "inversesqrt(30B",
                                         "abs(00B",
                                         "abs(10B",
                                         "abs(20B",
                                         "abs(30B",
                                         "abs(00C",
                                         "abs(10C",
                                         "abs(20C",
                                         "abs(30C",
                                         "sign(00B",
                                         "sign(10B",
                                         "sign(20B",
                                         "sign(30B",
                                         "sign(00C",
                                         "sign(10C",
                                         "sign(20C",
                                         "sign(30C",
                                         "floor(00B",
                                         "floor(10B",
                                         "floor(20B",
                                         "floor(30B",
                                         "trunc(00B",
                                         "trunc(10B",
                                         "trunc(20B",
                                         "trunc(30B",
                                         "round(00B",
                                         "round(10B",
                                         "round(20B",
                                         "round(30B",
                                         "roundEven(00B",
                                         "roundEven(10B",
                                         "roundEven(20B",
                                         "roundEven(30B",
                                         "ceil(00B",
                                         "ceil(10B",
                                         "ceil(20B",
                                         "ceil(30B",
                                         "fract(00B",
                                         "fract(10B",
                                         "fract(20B",
                                         "fract(30B",
                                         "mod(00B00B",
                                         "mod(10B00B",
                                         "mod(20B00B",
                                         "mod(30B00B",
                                         "mod(10B10B",
                                         "mod(20B20B",
                                         "mod(30B30B",
                                         "min(00B00B",
                                         "min(10B00B",
                                         "min(20B00B",
                                         "min(30B00B",
                                         "min(10B10B",
                                         "min(20B20B",
                                         "min(30B30B",
                                         "min(00C00C",
                                         "min(10C10C",
                                         "min(20C20C",
                                         "min(30C30C",
                                         "min(10C00C",
                                         "min(20C00C",
                                         "min(30C00C",
                                         "min(00D00D",
                                         "min(10D10D",
                                         "min(20D20D",
                                         "min(30D30D",
                                         "min(10D00D",
                                         "min(20D00D",
                                         "min(30D00D",
                                         "max(00B00B",
                                         "max(10B00B",
                                         "max(20B00B",
                                         "max(30B00B",
                                         "max(10B10B",
                                         "max(20B20B",
                                         "max(30B30B",
                                         "max(00C00C",
                                         "max(10C10C",
                                         "max(20C20C",
                                         "max(30C30C",
                                         "max(10C00C",
                                         "max(20C00C",
                                         "max(30C00C",
                                         "max(00D00D",
                                         "max(10D10D",
                                         "max(20D20D",
                                         "max(30D30D",
                                         "max(10D00D",
                                         "max(20D00D",
                                         "max(30D00D",
                                         "clamp(00B00B00B",
                                         "clamp(10B00B00B",
                                         "clamp(20B00B00B",
                                         "clamp(30B00B00B",
                                         "clamp(10B10B10B",
                                         "clamp(20B20B20B",
                                         "clamp(30B30B30B",
                                         "clamp(00C00C00C",
                                         "clamp(10C00C00C",
                                         "clamp(20C00C00C",
                                         "clamp(30C00C00C",
                                         "clamp(10C10C10C",
                                         "clamp(20C20C20C",
                                         "clamp(30C30C30C",
                                         "clamp(00D00D00D",
                                         "clamp(10D00D00D",
                                         "clamp(20D00D00D",
                                         "clamp(30D00D00D",
                                         "clamp(10D10D10D",
                                         "clamp(20D20D20D",
                                         "clamp(30D30D30D",
                                         "mix(00B00B00B",
                                         "mix(10B10B00B",
                                         "mix(20B20B00B",
                                         "mix(30B30B00B",
                                         "mix(10B10B10B",
                                         "mix(20B20B20B",
                                         "mix(30B30B30B",
                                         "mix(00B00B00E",
                                         "mix(10B10B10E",
                                         "mix(20B20B20E",
                                         "mix(30B30B30E",
                                         "mix(00C00C00E",
                                         "mix(10C10C10E",
                                         "mix(20C20C20E",
                                         "mix(30C30C30E",
                                         "mix(00D00D00E",
                                         "mix(10D10D10E",
                                         "mix(20D20D20E",
                                         "mix(30D30D30E",
                                         "mix(00E00E00E",
                                         "mix(10E10E10E",
                                         "mix(20E20E20E",
                                         "mix(30E30E30E",
                                         "step(00B00B",
                                         "step(10B10B",
                                         "step(20B20B",
                                         "step(30B30B",
                                         "step(00B10B",
                                         "step(00B20B",
                                         "step(00B30B",
                                         "smoothstep(00B00B00B",
                                         "smoothstep(10B10B10B",
                                         "smoothstep(20B20B20B",
                                         "smoothstep(30B30B30B",
                                         "smoothstep(00B00B10B",
                                         "smoothstep(00B00B20B",
                                         "smoothstep(00B00B30B",
                                         "modf(00B00B",
                                         "modf(10B10B",
                                         "modf(20B20B",
                                         "modf(30B30B",
                                         "isnan(00B",
                                         "isnan(10B",
                                         "isnan(20B",
                                         "isnan(30B",
                                         "isinf(00B",
                                         "isinf(10B",
                                         "isinf(20B",
                                         "isinf(30B",
                                         "floatBitsToInt(00B",
                                         "floatBitsToInt(10B",
                                         "floatBitsToInt(20B",
                                         "floatBitsToInt(30B",
                                         "floatBitsToUint(00B",
                                         "floatBitsToUint(10B",
                                         "floatBitsToUint(20B",
                                         "floatBitsToUint(30B",
                                         "intBitsToFloat(00C",
                                         "intBitsToFloat(10C",
                                         "intBitsToFloat(20C",
                                         "intBitsToFloat(30C",
                                         "uintBitsToFloat(00D",
                                         "uintBitsToFloat(10D",
                                         "uintBitsToFloat(20D",
                                         "uintBitsToFloat(30D",
                                         "fma(00B00B00B",
                                         "fma(10B10B10B",
                                         "fma(20B20B20B",
                                         "fma(30B30B30B",
                                         "frexp(00B00C",
                                         "frexp(10B10C",
                                         "frexp(20B20C",
                                         "frexp(30B30C",
                                         "ldexp(00B00C",
                                         "ldexp(10B10C",
                                         "ldexp(20B20C",
                                         "ldexp(30B30C",
                                         "packSnorm2x16(10B",
                                         "packHalf2x16(10B",
                                         "unpackSnorm2x16(00D",
                                         "unpackHalf2x16(00D",
                                         "packUnorm2x16(10B",
                                         "unpackUnorm2x16(00D",
                                         "packUnorm4x8(30B",
                                         "packSnorm4x8(30B",
                                         "unpackUnorm4x8(00D",
                                         "unpackSnorm4x8(00D",
                                         "length(00B",
                                         "length(10B",
                                         "length(20B",
                                         "length(30B",
                                         "distance(00B00B",
                                         "distance(10B10B",
                                         "distance(20B20B",
                                         "distance(30B30B",
                                         "dot(00B00B",
                                         "dot(10B10B",
                                         "dot(20B20B",
                                         "dot(30B30B",
                                         "cross(20B20B",
                                         "normalize(00B",
                                         "normalize(10B",
                                         "normalize(20B",
                                         "normalize(30B",
                                         "faceforward(00B00B00B",
                                         "faceforward(10B10B10B",
                                         "faceforward(20B20B20B",
                                         "faceforward(30B30B30B",
                                         "reflect(00B00B",
                                         "reflect(10B10B",
                                         "reflect(20B20B",
                                         "reflect(30B30B",
                                         "refract(00B00B00B",
                                         "refract(10B10B00B",
                                         "refract(20B20B00B",
                                         "refract(30B30B00B",
                                         "matrixCompMult(50B50B",
                                         "matrixCompMult(A0BA0B",
                                         "matrixCompMult(F0BF0B",
                                         "matrixCompMult(90B90B",
                                         "matrixCompMult(60B60B",
                                         "matrixCompMult(D0BD0B",
                                         "matrixCompMult(70B70B",
                                         "matrixCompMult(E0BE0B",
                                         "matrixCompMult(B0BB0B",
                                         "outerProduct(10B10B",
                                         "outerProduct(20B20B",
                                         "outerProduct(30B30B",
                                         "outerProduct(20B10B",
                                         "outerProduct(10B20B",
                                         "outerProduct(30B10B",
                                         "outerProduct(10B30B",
                                         "outerProduct(30B20B",
                                         "outerProduct(20B30B",
                                         "transpose(50B",
                                         "transpose(A0B",
                                         "transpose(F0B",
                                         "transpose(60B",
                                         "transpose(90B",
                                         "transpose(70B",
                                         "transpose(D0B",
                                         "transpose(B0B",
                                         "transpose(E0B",
                                         "determinant(50B",
                                         "determinant(A0B",
                                         "determinant(F0B",
                                         "inverse(50B",
                                         "inverse(A0B",
                                         "inverse(F0B",
                                         "lessThan(10B10B",
                                         "lessThan(20B20B",
                                         "lessThan(30B30B",
                                         "lessThan(10C10C",
                                         "lessThan(20C20C",
                                         "lessThan(30C30C",
                                         "lessThan(10D10D",
                                         "lessThan(20D20D",
                                         "lessThan(30D30D",
                                         "lessThanEqual(10B10B",
                                         "lessThanEqual(20B20B",
                                         "lessThanEqual(30B30B",
                                         "lessThanEqual(10C10C",
                                         "lessThanEqual(20C20C",
                                         "lessThanEqual(30C30C",
                                         "lessThanEqual(10D10D",
                                         "lessThanEqual(20D20D",
                                         "lessThanEqual(30D30D",
                                         "greaterThan(10B10B",
                                         "greaterThan(20B20B",
                                         "greaterThan(30B30B",
                                         "greaterThan(10C10C",
                                         "greaterThan(20C20C",
                                         "greaterThan(30C30C",
                                         "greaterThan(10D10D",
                                         "greaterThan(20D20D",
                                         "greaterThan(30D30D",
                                         "greaterThanEqual(10B10B",
                                         "greaterThanEqual(20B20B",
                                         "greaterThanEqual(30B30B",
                                         "greaterThanEqual(10C10C",
                                         "greaterThanEqual(20C20C",
                                         "greaterThanEqual(30C30C",
                                         "greaterThanEqual(10D10D",
                                         "greaterThanEqual(20D20D",
                                         "greaterThanEqual(30D30D",
                                         "equal(10B10B",
                                         "equal(20B20B",
                                         "equal(30B30B",
                                         "equal(10C10C",
                                         "equal(20C20C",
                                         "equal(30C30C",
                                         "equal(10D10D",
                                         "equal(20D20D",
                                         "equal(30D30D",
                                         "equal(10E10E",
                                         "equal(20E20E",
                                         "equal(30E30E",
                                         "notEqual(10B10B",
                                         "notEqual(20B20B",
                                         "notEqual(30B30B",
                                         "notEqual(10C10C",
                                         "notEqual(20C20C",
                                         "notEqual(30C30C",
                                         "notEqual(10D10D",
                                         "notEqual(20D20D",
                                         "notEqual(30D30D",
                                         "notEqual(10E10E",
                                         "notEqual(20E20E",
                                         "notEqual(30E30E",
                                         "any(10E",
                                         "any(20E",
                                         "any(30E",
                                         "all(10E",
                                         "all(20E",
                                         "all(30E",
                                         "not(10E",
                                         "not(20E",
                                         "not(30E",
                                         "bitfieldExtract(00C00C00C",
                                         "bitfieldExtract(10C00C00C",
                                         "bitfieldExtract(20C00C00C",
                                         "bitfieldExtract(30C00C00C",
                                         "bitfieldExtract(00D00C00C",
                                         "bitfieldExtract(10D00C00C",
                                         "bitfieldExtract(20D00C00C",
                                         "bitfieldExtract(30D00C00C",
                                         "bitfieldInsert(00C00C00C00C",
                                         "bitfieldInsert(10C10C00C00C",
                                         "bitfieldInsert(20C20C00C00C",
                                         "bitfieldInsert(30C30C00C00C",
                                         "bitfieldInsert(00D00D00C00C",
                                         "bitfieldInsert(10D10D00C00C",
                                         "bitfieldInsert(20D20D00C00C",
                                         "bitfieldInsert(30D30D00C00C",
                                         "bitfieldReverse(00C",
                                         "bitfieldReverse(10C",
                                         "bitfieldReverse(20C",
                                         "bitfieldReverse(30C",
                                         "bitfieldReverse(00D",
                                         "bitfieldReverse(10D",
                                         "bitfieldReverse(20D",
                                         "bitfieldReverse(30D",
                                         "bitCount(00C",
                                         "bitCount(10C",
                                         "bitCount(20C",
                                         "bitCount(30C",
                                         "bitCount(00D",
                                         "bitCount(10D",
                                         "bitCount(20D",
                                         "bitCount(30D",
                                         "findLSB(00C",
                                         "findLSB(10C",
                                         "findLSB(20C",
                                         "findLSB(30C",
                                         "findLSB(00D",
                                         "findLSB(10D",
                                         "findLSB(20D",
                                         "findLSB(30D",
                                         "findMSB(00C",
                                         "findMSB(10C",
                                         "findMSB(20C",
                                         "findMSB(30C",
                                         "findMSB(00D",
                                         "findMSB(10D",
                                         "findMSB(20D",
                                         "findMSB(30D",
                                         "uaddCarry(00D00D00D",
                                         "uaddCarry(10D10D10D",
                                         "uaddCarry(20D20D20D",
                                         "uaddCarry(30D30D30D",
                                         "usubBorrow(00D00D00D",
                                         "usubBorrow(10D10D10D",
                                         "usubBorrow(20D20D20D",
                                         "usubBorrow(30D30D30D",
                                         "umulExtended(00D00D00D00D",
                                         "umulExtended(10D10D10D10D",
                                         "umulExtended(20D20D20D20D",
                                         "umulExtended(30D30D30D30D",
                                         "imulExtended(00C00C00C00C",
                                         "imulExtended(10C10C10C10C",
                                         "imulExtended(20C20C20C20C",
                                         "imulExtended(30C30C30C30C",
                                         "texture2D(00H10B",
                                         "texture2DProj(00H20B",
                                         "texture2DProj(00H30B",
                                         "textureCube(00J20B",
                                         "texture3D(00I20B",
                                         "texture3DProj(00I30B",
                                         "shadow2DEXT(00c20B",
                                         "shadow2DProjEXT(00c30B",
                                         "texture2D(00L10B",
                                         "texture2DProj(00L20B",
                                         "texture2DProj(00L30B",
                                         "texture2DRect(00N10B",
                                         "texture2DRectProj(00N20B",
                                         "texture2DRectProj(00N30B",
                                         "texture2DGradEXT(00H10B10B10B",
                                         "texture2DProjGradEXT(00H20B10B10B",
                                         "texture2DProjGradEXT(00H30B10B10B",
                                         "textureCubeGradEXT(00J20B20B20B",
                                         "textureVideoWEBGL(00p10B",
                                         "texture2D(00H10B00B",
                                         "texture2DProj(00H20B00B",
                                         "texture2DProj(00H30B00B",
                                         "textureCube(00J20B00B",
                                         "texture3D(00I20B00B",
                                         "texture3DProj(00I30B00B",
                                         "texture3DLod(00I20B00B",
                                         "texture3DProjLod(00I30B00B",
                                         "texture2DLod(00H10B00B",
                                         "texture2DProjLod(00H20B00B",
                                         "texture2DProjLod(00H30B00B",
                                         "textureCubeLod(00J20B00B",
                                         "texture2DLodEXT(00H10B00B",
                                         "texture2DProjLodEXT(00H20B00B",
                                         "texture2DProjLodEXT(00H30B00B",
                                         "textureCubeLodEXT(00J20B00B",
                                         "texture(00H10B",
                                         "texture(00Q10B",
                                         "texture(00W10B",
                                         "texture(00I20B",
                                         "texture(00R20B",
                                         "texture(00X20B",
                                         "texture(00J20B",
                                         "texture(00S20B",
                                         "texture(00Y20B",
                                         "texture(00K20B",
                                         "texture(00T20B",
                                         "texture(00Z20B",
                                         "texture(00c20B",
                                         "texture(00d30B",
                                         "texture(00e30B",
                                         "texture(00g30B",
                                         "texture(00l30B",
                                         "texture(00o30B",
                                         "texture(00h30B00B",
                                         "texture(00L10B",
                                         "texture(00M10B",
                                         "texture(00N10B",
                                         "texture(00p10B",
                                         "textureProj(00H20B",
                                         "textureProj(00Q20B",
                                         "textureProj(00W20B",
                                         "textureProj(00H30B",
                                         "textureProj(00Q30B",
                                         "textureProj(00W30B",
                                         "textureProj(00I30B",
                                         "textureProj(00R30B",
                                         "textureProj(00X30B",
                                         "textureProj(00c30B",
                                         "textureProj(00L20B",
                                         "textureProj(00L30B",
                                         "textureProj(00M20B",
                                         "textureProj(00M30B",
                                         "textureProj(00N20B",
                                         "textureProj(00N30B",
                                         "textureLod(00H10B00B",
                                         "textureLod(00Q10B00B",
                                         "textureLod(00W10B00B",
                                         "textureLod(00I20B00B",
                                         "textureLod(00R20B00B",
                                         "textureLod(00X20B00B",
                                         "textureLod(00J20B00B",
                                         "textureLod(00S20B00B",
                                         "textureLod(00Y20B00B",
                                         "textureLod(00K20B00B",
                                         "textureLod(00T20B00B",
                                         "textureLod(00Z20B00B",
                                         "textureLod(00c20B00B",
                                         "textureLod(00d30B00B",
                                         "textureLod(00e30B00B",
                                         "textureLod(00h30B00B00B",
                                         "textureLod(00g30B00B",
                                         "textureLod(00l30B00B",
                                         "textureLod(00o30B00B",
                                         "textureSize(00H00C",
                                         "textureSize(00Q00C",
                                         "textureSize(00W00C",
                                         "textureSize(00I00C",
                                         "textureSize(00R00C",
                                         "textureSize(00X00C",
                                         "textureSize(00J00C",
                                         "textureSize(00S00C",
                                         "textureSize(00Y00C",
                                         "textureSize(00K00C",
                                         "textureSize(00T00C",
                                         "textureSize(00Z00C",
                                         "textureSize(00c00C",
                                         "textureSize(00d00C",
                                         "textureSize(00e00C",
                                         "textureSize(00g00C",
                                         "textureSize(00l00C",
                                         "textureSize(00o00C",
                                         "textureSize(00h00C",
                                         "textureSize(00f",
                                         "textureSize(00k",
                                         "textureSize(00n",
                                         "textureSize(00O",
                                         "textureSize(00U",
                                         "textureSize(00a",
                                         "textureSize(00P",
                                         "textureSize(00V",
                                         "textureSize(00b",
                                         "textureSize(00L00C",
                                         "textureSize(00M00C",
                                         "textureProjLod(00H20B00B",
                                         "textureProjLod(00Q20B00B",
                                         "textureProjLod(00W20B00B",
                                         "textureProjLod(00H30B00B",
                                         "textureProjLod(00Q30B00B",
                                         "textureProjLod(00W30B00B",
                                         "textureProjLod(00I30B00B",
                                         "textureProjLod(00R30B00B",
                                         "textureProjLod(00X30B00B",
                                         "textureProjLod(00c30B00B",
                                         "texelFetch(00H10C00C",
                                         "texelFetch(00Q10C00C",
                                         "texelFetch(00W10C00C",
                                         "texelFetch(00I20C00C",
                                         "texelFetch(00R20C00C",
                                         "texelFetch(00X20C00C",
                                         "texelFetch(00K20C00C",
                                         "texelFetch(00T20C00C",
                                         "texelFetch(00Z20C00C",
                                         "texelFetch(00f00C",
                                         "texelFetch(00k00C",
                                         "texelFetch(00n00C",
                                         "texelFetch(00O10C00C",
                                         "texelFetch(00U10C00C",
                                         "texelFetch(00a10C00C",
                                         "texelFetch(00P20C00C",
                                         "texelFetch(00V20C00C",
                                         "texelFetch(00b20C00C",
                                         "texelFetch(00L10C00C",
                                         "texelFetch(00M10C00C",
                                         "textureGrad(00H10B10B10B",
                                         "textureGrad(00Q10B10B10B",
                                         "textureGrad(00W10B10B10B",
                                         "textureGrad(00I20B20B20B",
                                         "textureGrad(00R20B20B20B",
                                         "textureGrad(00X20B20B20B",
                                         "textureGrad(00J20B20B20B",
                                         "textureGrad(00S20B20B20B",
                                         "textureGrad(00Y20B20B20B",
                                         "textureGrad(00c20B10B10B",
                                         "textureGrad(00d30B20B20B",
                                         "textureGrad(00K20B10B10B",
                                         "textureGrad(00T20B10B10B",
                                         "textureGrad(00Z20B10B10B",
                                         "textureGrad(00e30B10B10B",
                                         "textureGrad(00g30B20B20B",
                                         "textureGrad(00l30B20B20B",
                                         "textureGrad(00o30B20B20B",
                                         "textureProjGrad(00H20B10B10B",
                                         "textureProjGrad(00Q20B10B10B",
                                         "textureProjGrad(00W20B10B10B",
                                         "textureProjGrad(00H30B10B10B",
                                         "textureProjGrad(00Q30B10B10B",
                                         "textureProjGrad(00W30B10B10B",
                                         "textureProjGrad(00I30B20B20B",
                                         "textureProjGrad(00R30B20B20B",
                                         "textureProjGrad(00X30B20B20B",
                                         "textureProjGrad(00c30B10B10B",
                                         "texture(00H10B00B",
                                         "texture(00Q10B00B",
                                         "texture(00W10B00B",
                                         "texture(00I20B00B",
                                         "texture(00R20B00B",
                                         "texture(00X20B00B",
                                         "texture(00J20B00B",
                                         "texture(00S20B00B",
                                         "texture(00Y20B00B",
                                         "texture(00K20B00B",
                                         "texture(00T20B00B",
                                         "texture(00Z20B00B",
                                         "textureProj(00H20B00B",
                                         "textureProj(00Q20B00B",
                                         "textureProj(00W20B00B",
                                         "textureProj(00H30B00B",
                                         "textureProj(00Q30B00B",
                                         "textureProj(00W30B00B",
                                         "textureProj(00I30B00B",
                                         "textureProj(00R30B00B",
                                         "textureProj(00X30B00B",
                                         "texture(00c20B00B",
                                         "texture(00d30B00B",
                                         "textureProj(00c30B00B",
                                         "texture(00e30B00B",
                                         "texture(00g30B00B",
                                         "texture(00l30B00B",
                                         "texture(00o30B00B",
                                         "texture(00h30B00B00B",
                                         "texture(00L10B00B",
                                         "textureProj(00L20B00B",
                                         "textureProj(00L30B00B",
                                         "texture(00M10B00B",
                                         "textureProj(00M20B00B",
                                         "textureProj(00M30B00B",
                                         "textureOffset(00H10B10C",
                                         "textureOffset(00Q10B10C",
                                         "textureOffset(00W10B10C",
                                         "textureOffset(00I20B20C",
                                         "textureOffset(00R20B20C",
                                         "textureOffset(00X20B20C",
                                         "textureOffset(00c20B10C",
                                         "textureOffset(00K20B10C",
                                         "textureOffset(00T20B10C",
                                         "textureOffset(00Z20B10C",
                                         "textureOffset(00e30B10C",
                                         "textureProjOffset(00H20B10C",
                                         "textureProjOffset(00Q20B10C",
                                         "textureProjOffset(00W20B10C",
                                         "textureProjOffset(00H30B10C",
                                         "textureProjOffset(00Q30B10C",
                                         "textureProjOffset(00W30B10C",
                                         "textureProjOffset(00I30B20C",
                                         "textureProjOffset(00R30B20C",
                                         "textureProjOffset(00X30B20C",
                                         "textureProjOffset(00c30B10C",
                                         "textureLodOffset(00H10B00B10C",
                                         "textureLodOffset(00Q10B00B10C",
                                         "textureLodOffset(00W10B00B10C",
                                         "textureLodOffset(00I20B00B20C",
                                         "textureLodOffset(00R20B00B20C",
                                         "textureLodOffset(00X20B00B20C",
                                         "textureLodOffset(00c20B00B10C",
                                         "textureLodOffset(00K20B00B10C",
                                         "textureLodOffset(00T20B00B10C",
                                         "textureLodOffset(00Z20B00B10C",
                                         "textureLodOffset(00e30B00B10C",
                                         "textureProjLodOffset(00H20B00B10C",
                                         "textureProjLodOffset(00Q20B00B10C",
                                         "textureProjLodOffset(00W20B00B10C",
                                         "textureProjLodOffset(00H30B00B10C",
                                         "textureProjLodOffset(00Q30B00B10C",
                                         "textureProjLodOffset(00W30B00B10C",
                                         "textureProjLodOffset(00I30B00B20C",
                                         "textureProjLodOffset(00R30B00B20C",
                                         "textureProjLodOffset(00X30B00B20C",
                                         "textureProjLodOffset(00c30B00B10C",
                                         "texelFetchOffset(00H10C00C10C",
                                         "texelFetchOffset(00Q10C00C10C",
                                         "texelFetchOffset(00W10C00C10C",
                                         "texelFetchOffset(00I20C00C20C",
                                         "texelFetchOffset(00R20C00C20C",
                                         "texelFetchOffset(00X20C00C20C",
                                         "texelFetchOffset(00K20C00C10C",
                                         "texelFetchOffset(00T20C00C10C",
                                         "texelFetchOffset(00Z20C00C10C",
                                         "textureGradOffset(00H10B10B10B10C",
                                         "textureGradOffset(00Q10B10B10B10C",
                                         "textureGradOffset(00W10B10B10B10C",
                                         "textureGradOffset(00I20B20B20B20C",
                                         "textureGradOffset(00R20B20B20B20C",
                                         "textureGradOffset(00X20B20B20B20C",
                                         "textureGradOffset(00c20B10B10B10C",
                                         "textureGradOffset(00K20B10B10B10C",
                                         "textureGradOffset(00T20B10B10B10C",
                                         "textureGradOffset(00Z20B10B10B10C",
                                         "textureGradOffset(00e30B10B10B10C",
                                         "textureProjGradOffset(00H20B10B10B10C",
                                         "textureProjGradOffset(00Q20B10B10B10C",
                                         "textureProjGradOffset(00W20B10B10B10C",
                                         "textureProjGradOffset(00H30B10B10B10C",
                                         "textureProjGradOffset(00Q30B10B10B10C",
                                         "textureProjGradOffset(00W30B10B10B10C",
                                         "textureProjGradOffset(00I30B20B20B20C",
                                         "textureProjGradOffset(00R30B20B20B20C",
                                         "textureProjGradOffset(00X30B20B20B20C",
                                         "textureProjGradOffset(00c30B10B10B10C",
                                         "textureOffset(00H10B10C00B",
                                         "textureOffset(00Q10B10C00B",
                                         "textureOffset(00W10B10C00B",
                                         "textureOffset(00I20B20C00B",
                                         "textureOffset(00R20B20C00B",
                                         "textureOffset(00X20B20C00B",
                                         "textureOffset(00c20B10C00B",
                                         "textureOffset(00K20B10C00B",
                                         "textureOffset(00T20B10C00B",
                                         "textureOffset(00Z20B10C00B",
                                         "textureOffset(00e30B10C00B",
                                         "textureProjOffset(00H20B10C00B",
                                         "textureProjOffset(00Q20B10C00B",
                                         "textureProjOffset(00W20B10C00B",
                                         "textureProjOffset(00H30B10C00B",
                                         "textureProjOffset(00Q30B10C00B",
                                         "textureProjOffset(00W30B10C00B",
                                         "textureProjOffset(00I30B20C00B",
                                         "textureProjOffset(00R30B20C00B",
                                         "textureProjOffset(00X30B20C00B",
                                         "textureProjOffset(00c30B10C00B",
                                         "textureGather(00H10B",
                                         "textureGather(00Q10B",
                                         "textureGather(00W10B",
                                         "textureGather(00H10B00C",
                                         "textureGather(00Q10B00C",
                                         "textureGather(00W10B00C",
                                         "textureGather(00K20B",
                                         "textureGather(00T20B",
                                         "textureGather(00Z20B",
                                         "textureGather(00K20B00C",
                                         "textureGather(00T20B00C",
                                         "textureGather(00Z20B00C",
                                         "textureGather(00J20B",
                                         "textureGather(00S20B",
                                         "textureGather(00Y20B",
                                         "textureGather(00J20B00C",
                                         "textureGather(00S20B00C",
                                         "textureGather(00Y20B00C",
                                         "textureGather(00g30B",
                                         "textureGather(00l30B",
                                         "textureGather(00o30B",
                                         "textureGather(00g30B00C",
                                         "textureGather(00l30B00C",
                                         "textureGather(00o30B00C",
                                         "textureGather(00h30B00B",
                                         "textureGather(00c10B",
                                         "textureGather(00c10B00B",
                                         "textureGather(00e20B",
                                         "textureGather(00e20B00B",
                                         "textureGather(00d20B",
                                         "textureGather(00d20B00B",
                                         "textureGatherOffset(00H10B10C",
                                         "textureGatherOffset(00Q10B10C",
                                         "textureGatherOffset(00W10B10C",
                                         "textureGatherOffset(00K20B10C",
                                         "textureGatherOffset(00T20B10C",
                                         "textureGatherOffset(00Z20B10C",
                                         "textureGatherOffset(00c10B00B10C",
                                         "textureGatherOffset(00e20B00B10C",
                                         "textureGatherOffset(00H10B10C00C",
                                         "textureGatherOffset(00Q10B10C00C",
                                         "textureGatherOffset(00W10B10C00C",
                                         "textureGatherOffset(00K20B10C00C",
                                         "textureGatherOffset(00T20B10C00C",
                                         "textureGatherOffset(00Z20B10C00C",
                                         "textureGatherOffsets(00H10B10Cx4",
                                         "textureGatherOffsets(00Q10B10Cx4",
                                         "textureGatherOffsets(00W10B10Cx4",
                                         "textureGatherOffsets(00K20B10Cx4",
                                         "textureGatherOffsets(00T20B10Cx4",
                                         "textureGatherOffsets(00Z20B10Cx4",
                                         "textureGatherOffsets(00c10B00B10Cx4",
                                         "textureGatherOffsets(00e20B00B10Cx4",
                                         "textureGatherOffsets(00H10B10Cx400C",
                                         "textureGatherOffsets(00Q10B10Cx400C",
                                         "textureGatherOffsets(00W10B10Cx400C",
                                         "textureGatherOffsets(00K20B10Cx400C",
                                         "textureGatherOffsets(00T20B10Cx400C",
                                         "textureGatherOffsets(00Z20B10Cx400C",
                                         "textureQueryLOD(00H10B",
                                         "textureQueryLOD(00Q10B",
                                         "textureQueryLOD(00W10B",
                                         "textureQueryLOD(00I20B",
                                         "textureQueryLOD(00R20B",
                                         "textureQueryLOD(00X20B",
                                         "textureQueryLOD(00J20B",
                                         "textureQueryLOD(00S20B",
                                         "textureQueryLOD(00Y20B",
                                         "textureQueryLOD(00K10B",
                                         "textureQueryLOD(00T10B",
                                         "textureQueryLOD(00Z10B",
                                         "textureQueryLOD(00c10B",
                                         "textureQueryLOD(00d20B",
                                         "textureQueryLOD(00e10B",
                                         "textureQueryLOD(00g20B",
                                         "textureQueryLOD(00l20B",
                                         "textureQueryLOD(00o20B",
                                         "textureQueryLOD(00h20B",
                                         "rgb_2_yuv(20B00G",
                                         "yuv_2_rgb(20B00G",
                                         "dFdx(00B",
                                         "dFdx(10B",
                                         "dFdx(20B",
                                         "dFdx(30B",
                                         "dFdy(00B",
                                         "dFdy(10B",
                                         "dFdy(20B",
                                         "dFdy(30B",
                                         "fwidth(00B",
                                         "fwidth(10B",
                                         "fwidth(20B",
                                         "fwidth(30B",
                                         "interpolateAtCentroid(00B",
                                         "interpolateAtCentroid(10B",
                                         "interpolateAtCentroid(20B",
                                         "interpolateAtCentroid(30B",
                                         "interpolateAtSample(00B00C",
                                         "interpolateAtSample(10B00C",
                                         "interpolateAtSample(20B00C",
                                         "interpolateAtSample(30B00C",
                                         "interpolateAtOffset(00B10B",
                                         "interpolateAtOffset(10B10B",
                                         "interpolateAtOffset(20B10B",
                                         "interpolateAtOffset(30B10B",
                                         "atomicCounter(00F",
                                         "atomicCounterIncrement(00F",
                                         "atomicCounterDecrement(00F",
                                         "atomicAdd(00D00D",
                                         "atomicAdd(00C00C",
                                         "atomicMin(00D00D",
                                         "atomicMin(00C00C",
                                         "atomicMax(00D00D",
                                         "atomicMax(00C00C",
                                         "atomicAnd(00D00D",
                                         "atomicAnd(00C00C",
                                         "atomicOr(00D00D",
                                         "atomicOr(00C00C",
                                         "atomicXor(00D00D",
                                         "atomicXor(00C00C",
                                         "atomicExchange(00D00D",
                                         "atomicExchange(00C00C",
                                         "atomicCompSwap(00D00D00D",
                                         "atomicCompSwap(00C00C00C",
                                         "imageSize(00q",
                                         "imageSize(00z",
                                         "imageSize(01I",
                                         "imageSize(00r",
                                         "imageSize(01A",
                                         "imageSize(01J",
                                         "imageSize(00s",
                                         "imageSize(01B",
                                         "imageSize(01K",
                                         "imageSize(00t",
                                         "imageSize(01C",
                                         "imageSize(01L",
                                         "imageSize(00w",
                                         "imageSize(01F",
                                         "imageSize(01O",
                                         "imageSize(00y",
                                         "imageSize(01H",
                                         "imageSize(01Q",
                                         "imageStore(00q10C30B",
                                         "imageStore(00z10C30C",
                                         "imageStore(01I10C30D",
                                         "imageStore(00r20C30B",
                                         "imageStore(01A20C30C",
                                         "imageStore(01J20C30D",
                                         "imageStore(00s20C30B",
                                         "imageStore(01B20C30C",
                                         "imageStore(01K20C30D",
                                         "imageStore(00t20C30B",
                                         "imageStore(01C20C30C",
                                         "imageStore(01L20C30D",
                                         "imageStore(00w20C30B",
                                         "imageStore(01F20C30C",
                                         "imageStore(01O20C30D",
                                         "imageStore(00y00C30B",
                                         "imageStore(01H00C30C",
                                         "imageStore(01Q00C30D",
                                         "imageLoad(00q10C",
                                         "imageLoad(00z10C",
                                         "imageLoad(01I10C",
                                         "imageLoad(00r20C",
                                         "imageLoad(01A20C",
                                         "imageLoad(01J20C",
                                         "imageLoad(00s20C",
                                         "imageLoad(01B20C",
                                         "imageLoad(01K20C",
                                         "imageLoad(00t20C",
                                         "imageLoad(01C20C",
                                         "imageLoad(01L20C",
                                         "imageLoad(00w20C",
                                         "imageLoad(01F20C",
                                         "imageLoad(01O20C",
                                         "imageLoad(00y00C",
                                         "imageLoad(01H00C",
                                         "imageLoad(01Q00C",
                                         "imageAtomicAdd(00q10C00D",
                                         "imageAtomicAdd(00z10C00D",
                                         "imageAtomicAdd(01I10C00D",
                                         "imageAtomicAdd(00r20C00D",
                                         "imageAtomicAdd(01A20C00D",
                                         "imageAtomicAdd(01J20C00D",
                                         "imageAtomicAdd(00t20C00D",
                                         "imageAtomicAdd(01C20C00D",
                                         "imageAtomicAdd(01L20C00D",
                                         "imageAtomicAdd(00y00C00D",
                                         "imageAtomicAdd(01H00C00D",
                                         "imageAtomicAdd(01Q00C00D",
                                         "imageAtomicAdd(00s20C00D",
                                         "imageAtomicAdd(01B20C00D",
                                         "imageAtomicAdd(01K20C00D",
                                         "imageAtomicAdd(00w20C00D",
                                         "imageAtomicAdd(01F20C00D",
                                         "imageAtomicAdd(01O20C00D",
                                         "imageAtomicAdd(00x10C00D",
                                         "imageAtomicAdd(01G10C00D",
                                         "imageAtomicAdd(01P10C00D",
                                         "imageAtomicAdd(00u10C00C00D",
                                         "imageAtomicAdd(01D10C00C00D",
                                         "imageAtomicAdd(01M10C00C00D",
                                         "imageAtomicAdd(00v20C00C00D",
                                         "imageAtomicAdd(01E20C00C00D",
                                         "imageAtomicAdd(01N20C00C00D",
                                         "imageAtomicAdd(00q10C00C",
                                         "imageAtomicAdd(00z10C00C",
                                         "imageAtomicAdd(01I10C00C",
                                         "imageAtomicAdd(00r20C00C",
                                         "imageAtomicAdd(01A20C00C",
                                         "imageAtomicAdd(01J20C00C",
                                         "imageAtomicAdd(00t20C00C",
                                         "imageAtomicAdd(01C20C00C",
                                         "imageAtomicAdd(01L20C00C",
                                         "imageAtomicAdd(00y00C00C",
                                         "imageAtomicAdd(01H00C00C",
                                         "imageAtomicAdd(01Q00C00C",
                                         "imageAtomicAdd(00s20C00C",
                                         "imageAtomicAdd(01B20C00C",
                                         "imageAtomicAdd(01K20C00C",
                                         "imageAtomicAdd(00w20C00C",
                                         "imageAtomicAdd(01F20C00C",
                                         "imageAtomicAdd(01O20C00C",
                                         "imageAtomicAdd(00x10C00C",
                                         "imageAtomicAdd(01G10C00C",
                                         "imageAtomicAdd(01P10C00C",
                                         "imageAtomicAdd(00u10C00C00C",
                                         "imageAtomicAdd(01D10C00C00C",
                                         "imageAtomicAdd(01M10C00C00C",
                                         "imageAtomicAdd(00v20C00C00C",
                                         "imageAtomicAdd(01E20C00C00C",
                                         "imageAtomicAdd(01N20C00C00C",
                                         "imageAtomicMin(00q10C00D",
                                         "imageAtomicMin(00z10C00D",
                                         "imageAtomicMin(01I10C00D",
                                         "imageAtomicMin(00r20C00D",
                                         "imageAtomicMin(01A20C00D",
                                         "imageAtomicMin(01J20C00D",
                                         "imageAtomicMin(00t20C00D",
                                         "imageAtomicMin(01C20C00D",
                                         "imageAtomicMin(01L20C00D",
                                         "imageAtomicMin(00y00C00D",
                                         "imageAtomicMin(01H00C00D",
                                         "imageAtomicMin(01Q00C00D",
                                         "imageAtomicMin(00s20C00D",
                                         "imageAtomicMin(01B20C00D",
                                         "imageAtomicMin(01K20C00D",
                                         "imageAtomicMin(00w20C00D",
                                         "imageAtomicMin(01F20C00D",
                                         "imageAtomicMin(01O20C00D",
                                         "imageAtomicMin(00x10C00D",
                                         "imageAtomicMin(01G10C00D",
                                         "imageAtomicMin(01P10C00D",
                                         "imageAtomicMin(00u10C00C00D",
                                         "imageAtomicMin(01D10C00C00D",
                                         "imageAtomicMin(01M10C00C00D",
                                         "imageAtomicMin(00v20C00C00D",
                                         "imageAtomicMin(01E20C00C00D",
                                         "imageAtomicMin(01N20C00C00D",
                                         "imageAtomicMin(00q10C00C",
                                         "imageAtomicMin(00z10C00C",
                                         "imageAtomicMin(01I10C00C",
                                         "imageAtomicMin(00r20C00C",
                                         "imageAtomicMin(01A20C00C",
                                         "imageAtomicMin(01J20C00C",
                                         "imageAtomicMin(00t20C00C",
                                         "imageAtomicMin(01C20C00C",
                                         "imageAtomicMin(01L20C00C",
                                         "imageAtomicMin(00y00C00C",
                                         "imageAtomicMin(01H00C00C",
                                         "imageAtomicMin(01Q00C00C",
                                         "imageAtomicMin(00s20C00C",
                                         "imageAtomicMin(01B20C00C",
                                         "imageAtomicMin(01K20C00C",
                                         "imageAtomicMin(00w20C00C",
                                         "imageAtomicMin(01F20C00C",
                                         "imageAtomicMin(01O20C00C",
                                         "imageAtomicMin(00x10C00C",
                                         "imageAtomicMin(01G10C00C",
                                         "imageAtomicMin(01P10C00C",
                                         "imageAtomicMin(00u10C00C00C",
                                         "imageAtomicMin(01D10C00C00C",
                                         "imageAtomicMin(01M10C00C00C",
                                         "imageAtomicMin(00v20C00C00C",
                                         "imageAtomicMin(01E20C00C00C",
                                         "imageAtomicMin(01N20C00C00C",
                                         "imageAtomicMax(00q10C00D",
                                         "imageAtomicMax(00z10C00D",
                                         "imageAtomicMax(01I10C00D",
                                         "imageAtomicMax(00r20C00D",
                                         "imageAtomicMax(01A20C00D",
                                         "imageAtomicMax(01J20C00D",
                                         "imageAtomicMax(00t20C00D",
                                         "imageAtomicMax(01C20C00D",
                                         "imageAtomicMax(01L20C00D",
                                         "imageAtomicMax(00y00C00D",
                                         "imageAtomicMax(01H00C00D",
                                         "imageAtomicMax(01Q00C00D",
                                         "imageAtomicMax(00s20C00D",
                                         "imageAtomicMax(01B20C00D",
                                         "imageAtomicMax(01K20C00D",
                                         "imageAtomicMax(00w20C00D",
                                         "imageAtomicMax(01F20C00D",
                                         "imageAtomicMax(01O20C00D",
                                         "imageAtomicMax(00x10C00D",
                                         "imageAtomicMax(01G10C00D",
                                         "imageAtomicMax(01P10C00D",
                                         "imageAtomicMax(00u10C00C00D",
                                         "imageAtomicMax(01D10C00C00D",
                                         "imageAtomicMax(01M10C00C00D",
                                         "imageAtomicMax(00v20C00C00D",
                                         "imageAtomicMax(01E20C00C00D",
                                         "imageAtomicMax(01N20C00C00D",
                                         "imageAtomicMax(00q10C00C",
                                         "imageAtomicMax(00z10C00C",
                                         "imageAtomicMax(01I10C00C",
                                         "imageAtomicMax(00r20C00C",
                                         "imageAtomicMax(01A20C00C",
                                         "imageAtomicMax(01J20C00C",
                                         "imageAtomicMax(00t20C00C",
                                         "imageAtomicMax(01C20C00C",
                                         "imageAtomicMax(01L20C00C",
                                         "imageAtomicMax(00y00C00C",
                                         "imageAtomicMax(01H00C00C",
                                         "imageAtomicMax(01Q00C00C",
                                         "imageAtomicMax(00s20C00C",
                                         "imageAtomicMax(01B20C00C",
                                         "imageAtomicMax(01K20C00C",
                                         "imageAtomicMax(00w20C00C",
                                         "imageAtomicMax(01F20C00C",
                                         "imageAtomicMax(01O20C00C",
                                         "imageAtomicMax(00x10C00C",
                                         "imageAtomicMax(01G10C00C",
                                         "imageAtomicMax(01P10C00C",
                                         "imageAtomicMax(00u10C00C00C",
                                         "imageAtomicMax(01D10C00C00C",
                                         "imageAtomicMax(01M10C00C00C",
                                         "imageAtomicMax(00v20C00C00C",
                                         "imageAtomicMax(01E20C00C00C",
                                         "imageAtomicMax(01N20C00C00C",
                                         "imageAtomicAnd(00q10C00D",
                                         "imageAtomicAnd(00z10C00D",
                                         "imageAtomicAnd(01I10C00D",
                                         "imageAtomicAnd(00r20C00D",
                                         "imageAtomicAnd(01A20C00D",
                                         "imageAtomicAnd(01J20C00D",
                                         "imageAtomicAnd(00t20C00D",
                                         "imageAtomicAnd(01C20C00D",
                                         "imageAtomicAnd(01L20C00D",
                                         "imageAtomicAnd(00y00C00D",
                                         "imageAtomicAnd(01H00C00D",
                                         "imageAtomicAnd(01Q00C00D",
                                         "imageAtomicAnd(00s20C00D",
                                         "imageAtomicAnd(01B20C00D",
                                         "imageAtomicAnd(01K20C00D",
                                         "imageAtomicAnd(00w20C00D",
                                         "imageAtomicAnd(01F20C00D",
                                         "imageAtomicAnd(01O20C00D",
                                         "imageAtomicAnd(00x10C00D",
                                         "imageAtomicAnd(01G10C00D",
                                         "imageAtomicAnd(01P10C00D",
                                         "imageAtomicAnd(00u10C00C00D",
                                         "imageAtomicAnd(01D10C00C00D",
                                         "imageAtomicAnd(01M10C00C00D",
                                         "imageAtomicAnd(00v20C00C00D",
                                         "imageAtomicAnd(01E20C00C00D",
                                         "imageAtomicAnd(01N20C00C00D",
                                         "imageAtomicAnd(00q10C00C",
                                         "imageAtomicAnd(00z10C00C",
                                         "imageAtomicAnd(01I10C00C",
                                         "imageAtomicAnd(00r20C00C",
                                         "imageAtomicAnd(01A20C00C",
                                         "imageAtomicAnd(01J20C00C",
                                         "imageAtomicAnd(00t20C00C",
                                         "imageAtomicAnd(01C20C00C",
                                         "imageAtomicAnd(01L20C00C",
                                         "imageAtomicAnd(00y00C00C",
                                         "imageAtomicAnd(01H00C00C",
                                         "imageAtomicAnd(01Q00C00C",
                                         "imageAtomicAnd(00s20C00C",
                                         "imageAtomicAnd(01B20C00C",
                                         "imageAtomicAnd(01K20C00C",
                                         "imageAtomicAnd(00w20C00C",
                                         "imageAtomicAnd(01F20C00C",
                                         "imageAtomicAnd(01O20C00C",
                                         "imageAtomicAnd(00x10C00C",
                                         "imageAtomicAnd(01G10C00C",
                                         "imageAtomicAnd(01P10C00C",
                                         "imageAtomicAnd(00u10C00C00C",
                                         "imageAtomicAnd(01D10C00C00C",
                                         "imageAtomicAnd(01M10C00C00C",
                                         "imageAtomicAnd(00v20C00C00C",
                                         "imageAtomicAnd(01E20C00C00C",
                                         "imageAtomicAnd(01N20C00C00C",
                                         "imageAtomicOr(00q10C00D",
                                         "imageAtomicOr(00z10C00D",
                                         "imageAtomicOr(01I10C00D",
                                         "imageAtomicOr(00r20C00D",
                                         "imageAtomicOr(01A20C00D",
                                         "imageAtomicOr(01J20C00D",
                                         "imageAtomicOr(00t20C00D",
                                         "imageAtomicOr(01C20C00D",
                                         "imageAtomicOr(01L20C00D",
                                         "imageAtomicOr(00y00C00D",
                                         "imageAtomicOr(01H00C00D",
                                         "imageAtomicOr(01Q00C00D",
                                         "imageAtomicOr(00s20C00D",
                                         "imageAtomicOr(01B20C00D",
                                         "imageAtomicOr(01K20C00D",
                                         "imageAtomicOr(00w20C00D",
                                         "imageAtomicOr(01F20C00D",
                                         "imageAtomicOr(01O20C00D",
                                         "imageAtomicOr(00x10C00D",
                                         "imageAtomicOr(01G10C00D",
                                         "imageAtomicOr(01P10C00D",
                                         "imageAtomicOr(00u10C00C00D",
                                         "imageAtomicOr(01D10C00C00D",
                                         "imageAtomicOr(01M10C00C00D",
                                         "imageAtomicOr(00v20C00C00D",
                                         "imageAtomicOr(01E20C00C00D",
                                         "imageAtomicOr(01N20C00C00D",
                                         "imageAtomicOr(00q10C00C",
                                         "imageAtomicOr(00z10C00C",
                                         "imageAtomicOr(01I10C00C",
                                         "imageAtomicOr(00r20C00C",
                                         "imageAtomicOr(01A20C00C",
                                         "imageAtomicOr(01J20C00C",
                                         "imageAtomicOr(00t20C00C",
                                         "imageAtomicOr(01C20C00C",
                                         "imageAtomicOr(01L20C00C",
                                         "imageAtomicOr(00y00C00C",
                                         "imageAtomicOr(01H00C00C",
                                         "imageAtomicOr(01Q00C00C",
                                         "imageAtomicOr(00s20C00C",
                                         "imageAtomicOr(01B20C00C",
                                         "imageAtomicOr(01K20C00C",
                                         "imageAtomicOr(00w20C00C",
                                         "imageAtomicOr(01F20C00C",
                                         "imageAtomicOr(01O20C00C",
                                         "imageAtomicOr(00x10C00C",
                                         "imageAtomicOr(01G10C00C",
                                         "imageAtomicOr(01P10C00C",
                                         "imageAtomicOr(00u10C00C00C",
                                         "imageAtomicOr(01D10C00C00C",
                                         "imageAtomicOr(01M10C00C00C",
                                         "imageAtomicOr(00v20C00C00C",
                                         "imageAtomicOr(01E20C00C00C",
                                         "imageAtomicOr(01N20C00C00C",
                                         "imageAtomicXor(00q10C00D",
                                         "imageAtomicXor(00z10C00D",
                                         "imageAtomicXor(01I10C00D",
                                         "imageAtomicXor(00r20C00D",
                                         "imageAtomicXor(01A20C00D",
                                         "imageAtomicXor(01J20C00D",
                                         "imageAtomicXor(00t20C00D",
                                         "imageAtomicXor(01C20C00D",
                                         "imageAtomicXor(01L20C00D",
                                         "imageAtomicXor(00y00C00D",
                                         "imageAtomicXor(01H00C00D",
                                         "imageAtomicXor(01Q00C00D",
                                         "imageAtomicXor(00s20C00D",
                                         "imageAtomicXor(01B20C00D",
                                         "imageAtomicXor(01K20C00D",
                                         "imageAtomicXor(00w20C00D",
                                         "imageAtomicXor(01F20C00D",
                                         "imageAtomicXor(01O20C00D",
                                         "imageAtomicXor(00x10C00D",
                                         "imageAtomicXor(01G10C00D",
                                         "imageAtomicXor(01P10C00D",
                                         "imageAtomicXor(00u10C00C00D",
                                         "imageAtomicXor(01D10C00C00D",
                                         "imageAtomicXor(01M10C00C00D",
                                         "imageAtomicXor(00v20C00C00D",
                                         "imageAtomicXor(01E20C00C00D",
                                         "imageAtomicXor(01N20C00C00D",
                                         "imageAtomicXor(00q10C00C",
                                         "imageAtomicXor(00z10C00C",
                                         "imageAtomicXor(01I10C00C",
                                         "imageAtomicXor(00r20C00C",
                                         "imageAtomicXor(01A20C00C",
                                         "imageAtomicXor(01J20C00C",
                                         "imageAtomicXor(00t20C00C",
                                         "imageAtomicXor(01C20C00C",
                                         "imageAtomicXor(01L20C00C",
                                         "imageAtomicXor(00y00C00C",
                                         "imageAtomicXor(01H00C00C",
                                         "imageAtomicXor(01Q00C00C",
                                         "imageAtomicXor(00s20C00C",
                                         "imageAtomicXor(01B20C00C",
                                         "imageAtomicXor(01K20C00C",
                                         "imageAtomicXor(00w20C00C",
                                         "imageAtomicXor(01F20C00C",
                                         "imageAtomicXor(01O20C00C",
                                         "imageAtomicXor(00x10C00C",
                                         "imageAtomicXor(01G10C00C",
                                         "imageAtomicXor(01P10C00C",
                                         "imageAtomicXor(00u10C00C00C",
                                         "imageAtomicXor(01D10C00C00C",
                                         "imageAtomicXor(01M10C00C00C",
                                         "imageAtomicXor(00v20C00C00C",
                                         "imageAtomicXor(01E20C00C00C",
                                         "imageAtomicXor(01N20C00C00C",
                                         "imageAtomicExchange(00q10C00D",
                                         "imageAtomicExchange(00z10C00D",
                                         "imageAtomicExchange(01I10C00D",
                                         "imageAtomicExchange(00r20C00D",
                                         "imageAtomicExchange(01A20C00D",
                                         "imageAtomicExchange(01J20C00D",
                                         "imageAtomicExchange(00t20C00D",
                                         "imageAtomicExchange(01C20C00D",
                                         "imageAtomicExchange(01L20C00D",
                                         "imageAtomicExchange(00y00C00D",
                                         "imageAtomicExchange(01H00C00D",
                                         "imageAtomicExchange(01Q00C00D",
                                         "imageAtomicExchange(00s20C00D",
                                         "imageAtomicExchange(01B20C00D",
                                         "imageAtomicExchange(01K20C00D",
                                         "imageAtomicExchange(00w20C00D",
                                         "imageAtomicExchange(01F20C00D",
                                         "imageAtomicExchange(01O20C00D",
                                         "imageAtomicExchange(00x10C00D",
                                         "imageAtomicExchange(01G10C00D",
                                         "imageAtomicExchange(01P10C00D",
                                         "imageAtomicExchange(00u10C00C00D",
                                         "imageAtomicExchange(01D10C00C00D",
                                         "imageAtomicExchange(01M10C00C00D",
                                         "imageAtomicExchange(00v20C00C00D",
                                         "imageAtomicExchange(01E20C00C00D",
                                         "imageAtomicExchange(01N20C00C00D",
                                         "imageAtomicExchange(00q10C00C",
                                         "imageAtomicExchange(00z10C00C",
                                         "imageAtomicExchange(01I10C00C",
                                         "imageAtomicExchange(00r20C00C",
                                         "imageAtomicExchange(01A20C00C",
                                         "imageAtomicExchange(01J20C00C",
                                         "imageAtomicExchange(00t20C00C",
                                         "imageAtomicExchange(01C20C00C",
                                         "imageAtomicExchange(01L20C00C",
                                         "imageAtomicExchange(00y00C00C",
                                         "imageAtomicExchange(01H00C00C",
                                         "imageAtomicExchange(01Q00C00C",
                                         "imageAtomicExchange(00s20C00C",
                                         "imageAtomicExchange(01B20C00C",
                                         "imageAtomicExchange(01K20C00C",
                                         "imageAtomicExchange(00w20C00C",
                                         "imageAtomicExchange(01F20C00C",
                                         "imageAtomicExchange(01O20C00C",
                                         "imageAtomicExchange(00x10C00C",
                                         "imageAtomicExchange(01G10C00C",
                                         "imageAtomicExchange(01P10C00C",
                                         "imageAtomicExchange(00u10C00C00C",
                                         "imageAtomicExchange(01D10C00C00C",
                                         "imageAtomicExchange(01M10C00C00C",
                                         "imageAtomicExchange(00v20C00C00C",
                                         "imageAtomicExchange(01E20C00C00C",
                                         "imageAtomicExchange(01N20C00C00C",
                                         "imageAtomicExchange(00q10C00B",
                                         "imageAtomicExchange(00z10C00B",
                                         "imageAtomicExchange(01I10C00B",
                                         "imageAtomicExchange(00r20C00B",
                                         "imageAtomicExchange(01A20C00B",
                                         "imageAtomicExchange(01J20C00B",
                                         "imageAtomicExchange(00t20C00B",
                                         "imageAtomicExchange(01C20C00B",
                                         "imageAtomicExchange(01L20C00B",
                                         "imageAtomicExchange(00y00C00B",
                                         "imageAtomicExchange(01H00C00B",
                                         "imageAtomicExchange(01Q00C00B",
                                         "imageAtomicExchange(00s20C00B",
                                         "imageAtomicExchange(01B20C00B",
                                         "imageAtomicExchange(01K20C00B",
                                         "imageAtomicExchange(00w20C00B",
                                         "imageAtomicExchange(01F20C00B",
                                         "imageAtomicExchange(01O20C00B",
                                         "imageAtomicExchange(00x10C00B",
                                         "imageAtomicExchange(01G10C00B",
                                         "imageAtomicExchange(01P10C00B",
                                         "imageAtomicExchange(00u10C00C00B",
                                         "imageAtomicExchange(01D10C00C00B",
                                         "imageAtomicExchange(01M10C00C00B",
                                         "imageAtomicExchange(00v20C00C00B",
                                         "imageAtomicExchange(01E20C00C00B",
                                         "imageAtomicExchange(01N20C00C00B",
                                         "imageAtomicCompSwap(00q10C00D00D",
                                         "imageAtomicCompSwap(00z10C00D00D",
                                         "imageAtomicCompSwap(01I10C00D00D",
                                         "imageAtomicCompSwap(00r20C00D00D",
                                         "imageAtomicCompSwap(01A20C00D00D",
                                         "imageAtomicCompSwap(01J20C00D00D",
                                         "imageAtomicCompSwap(00t20C00D00D",
                                         "imageAtomicCompSwap(01C20C00D00D",
                                         "imageAtomicCompSwap(01L20C00D00D",
                                         "imageAtomicCompSwap(00y00C00D00D",
                                         "imageAtomicCompSwap(01H00C00D00D",
                                         "imageAtomicCompSwap(01Q00C00D00D",
                                         "imageAtomicCompSwap(00s20C00D00D",
                                         "imageAtomicCompSwap(01B20C00D00D",
                                         "imageAtomicCompSwap(01K20C00D00D",
                                         "imageAtomicCompSwap(00w20C00D00D",
                                         "imageAtomicCompSwap(01F20C00D00D",
                                         "imageAtomicCompSwap(01O20C00D00D",
                                         "imageAtomicCompSwap(00x10C00D00D",
                                         "imageAtomicCompSwap(01G10C00D00D",
                                         "imageAtomicCompSwap(01P10C00D00D",
                                         "imageAtomicCompSwap(00u10C00C00D00D",
                                         "imageAtomicCompSwap(01D10C00C00D00D",
                                         "imageAtomicCompSwap(01M10C00C00D00D",
                                         "imageAtomicCompSwap(00v20C00C00D00D",
                                         "imageAtomicCompSwap(01E20C00C00D00D",
                                         "imageAtomicCompSwap(01N20C00C00D00D",
                                         "imageAtomicCompSwap(00q10C00C00C",
                                         "imageAtomicCompSwap(00z10C00C00C",
                                         "imageAtomicCompSwap(01I10C00C00C",
                                         "imageAtomicCompSwap(00r20C00C00C",
                                         "imageAtomicCompSwap(01A20C00C00C",
                                         "imageAtomicCompSwap(01J20C00C00C",
                                         "imageAtomicCompSwap(00t20C00C00C",
                                         "imageAtomicCompSwap(01C20C00C00C",
                                         "imageAtomicCompSwap(01L20C00C00C",
                                         "imageAtomicCompSwap(00y00C00C00C",
                                         "imageAtomicCompSwap(01H00C00C00C",
                                         "imageAtomicCompSwap(01Q00C00C00C",
                                         "imageAtomicCompSwap(00s20C00C00C",
                                         "imageAtomicCompSwap(01B20C00C00C",
                                         "imageAtomicCompSwap(01K20C00C00C",
                                         "imageAtomicCompSwap(00w20C00C00C",
                                         "imageAtomicCompSwap(01F20C00C00C",
                                         "imageAtomicCompSwap(01O20C00C00C",
                                         "imageAtomicCompSwap(00x10C00C00C",
                                         "imageAtomicCompSwap(01G10C00C00C",
                                         "imageAtomicCompSwap(01P10C00C00C",
                                         "imageAtomicCompSwap(00u10C00C00C00C",
                                         "imageAtomicCompSwap(01D10C00C00C00C",
                                         "imageAtomicCompSwap(01M10C00C00C00C",
                                         "imageAtomicCompSwap(00v20C00C00C00C",
                                         "imageAtomicCompSwap(01E20C00C00C00C",
                                         "imageAtomicCompSwap(01N20C00C00C00C",
                                         "pixelLocalLoadANGLE(01R",
                                         "pixelLocalLoadANGLE(01S",
                                         "pixelLocalLoadANGLE(01T",
                                         "pixelLocalStoreANGLE(01R30B",
                                         "pixelLocalStoreANGLE(01S30C",
                                         "pixelLocalStoreANGLE(01T30D",
                                         "beginInvocationInterlockNV(",
                                         "endInvocationInterlockNV(",
                                         "beginFragmentShaderOrderingINTEL(",
                                         "beginInvocationInterlockARB(",
                                         "endInvocationInterlockARB(",
                                         "memoryBarrier(",
                                         "memoryBarrierAtomicCounter(",
                                         "memoryBarrierBuffer(",
                                         "memoryBarrierImage(",
                                         "barrier(",
                                         "memoryBarrierShared(",
                                         "groupMemoryBarrier(",
                                         "EmitVertex(",
                                         "EndPrimitive(",
                                         "subpassLoad(01U",
                                         "subpassLoad(01V",
                                         "subpassLoad(01W",
                                         "numSamples(",
                                         "samplePosition(00D",
                                         "interpolateAtCenter(00B",
                                         "interpolateAtCenter(10B",
                                         "interpolateAtCenter(20B",
                                         "interpolateAtCenter(30B",
                                         "saturate(00B",
                                         "saturate(10B",
                                         "saturate(20B",
                                         "saturate(30B",
                                         "gl_DepthRangeParameters",
                                         "gl_DepthRange",
                                         "gl_NumSamples",
                                         "gl_MaxVertexAttribs",
                                         "gl_MaxVertexUniformVectors",
                                         "gl_MaxVertexTextureImageUnits",
                                         "gl_MaxCombinedTextureImageUnits",
                                         "gl_MaxTextureImageUnits",
                                         "gl_MaxFragmentUniformVectors",
                                         "gl_MaxVaryingVectors",
                                         "gl_MaxDrawBuffers",
                                         "gl_MaxDualSourceDrawBuffersEXT",
                                         "gl_MaxVertexOutputVectors",
                                         "gl_MaxFragmentInputVectors",
                                         "gl_MinProgramTexelOffset",
                                         "gl_MaxProgramTexelOffset",
                                         "gl_MaxImageUnits",
                                         "gl_MaxVertexImageUniforms",
                                         "gl_MaxFragmentImageUniforms",
                                         "gl_MaxComputeImageUniforms",
                                         "gl_MaxCombinedImageUniforms",
                                         "gl_MaxCombinedShaderOutputResources",
                                         "gl_MaxComputeWorkGroupCount",
                                         "gl_MaxComputeWorkGroupSize",
                                         "gl_MaxComputeUniformComponents",
                                         "gl_MaxComputeTextureImageUnits",
                                         "gl_MaxComputeAtomicCounters",
                                         "gl_MaxComputeAtomicCounterBuffers",
                                         "gl_MaxVertexAtomicCounters",
                                         "gl_MaxFragmentAtomicCounters",
                                         "gl_MaxCombinedAtomicCounters",
                                         "gl_MaxAtomicCounterBindings",
                                         "gl_MaxVertexAtomicCounterBuffers",
                                         "gl_MaxFragmentAtomicCounterBuffers",
                                         "gl_MaxCombinedAtomicCounterBuffers",
                                         "gl_MaxAtomicCounterBufferSize",
                                         "gl_MaxGeometryInputComponents",
                                         "gl_MaxGeometryOutputComponents",
                                         "gl_MaxGeometryImageUniforms",
                                         "gl_MaxGeometryTextureImageUnits",
                                         "gl_MaxGeometryOutputVertices",
                                         "gl_MaxGeometryTotalOutputComponents",
                                         "gl_MaxGeometryUniformComponents",
                                         "gl_MaxGeometryAtomicCounters",
                                         "gl_MaxGeometryAtomicCounterBuffers",
                                         "gl_MaxTessControlInputComponents",
                                         "gl_MaxTessControlOutputComponents",
                                         "gl_MaxTessControlTextureImageUnits",
                                         "gl_MaxTessControlUniformComponents",
                                         "gl_MaxTessControlTotalOutputComponents",
                                         "gl_MaxTessControlImageUniforms",
                                         "gl_MaxTessControlAtomicCounters",
                                         "gl_MaxTessControlAtomicCounterBuffers",
                                         "gl_MaxTessPatchComponents",
                                         "gl_MaxPatchVertices",
                                         "gl_MaxTessGenLevel",
                                         "gl_MaxTessEvaluationInputComponents",
                                         "gl_MaxTessEvaluationOutputComponents",
                                         "gl_MaxTessEvaluationTextureImageUnits",
                                         "gl_MaxTessEvaluationUniformComponents",
                                         "gl_MaxTessEvaluationImageUniforms",
                                         "gl_MaxTessEvaluationAtomicCounters",
                                         "gl_MaxTessEvaluationAtomicCounterBuffers",
                                         "gl_MaxSamples",
                                         "gl_MaxClipDistances",
                                         "gl_MaxCullDistances",
                                         "gl_MaxCombinedClipAndCullDistances",
                                         "gl_FragCoord",
                                         "gl_FrontFacing",
                                         "gl_PointCoord",
                                         "gl_FragColor",
                                         "gl_FragData",
                                         "gl_FragDepth",
                                         "gl_HelperInvocation",
                                         "gl_SecondaryFragColorEXT",
                                         "gl_SecondaryFragDataEXT",
                                         "gl_FragDepthEXT",
                                         "gl_LastFragData",
                                         "gl_LastFragColor",
                                         "gl_LastFragColorARM",
                                         "gl_LastFragDepthARM",
                                         "gl_LastFragStencilARM",
                                         "gl_PrimitiveID",
                                         "gl_Layer",
                                         "gl_SampleID",
                                         "gl_SamplePosition",
                                         "gl_SampleMaskIn",
                                         "gl_SampleMask",
                                         "gl_Position",
                                         "gl_PointSize",
                                         "gl_InstanceID",
                                         "gl_InstanceIndex",
                                         "gl_VertexID",
                                         "gl_VertexIndex",
                                         "gl_DrawID",
                                         "gl_BaseVertex",
                                         "gl_BaseInstance",
                                         "angle_BaseVertex",
                                         "angle_BaseInstance",
                                         "gl_ClipDistance",
                                         "gl_NumWorkGroups",
                                         "gl_WorkGroupSize",
                                         "gl_WorkGroupID",
                                         "gl_LocalInvocationID",
                                         "gl_GlobalInvocationID",
                                         "gl_LocalInvocationIndex",
                                         "gl_PrimitiveIDIn",
                                         "gl_InvocationID",
                                         "gl_PerVertex",
                                         "gl_in",
                                         "gl_PatchVerticesIn",
                                         "gl_TessLevelOuter",
                                         "gl_TessLevelInner",
                                         "gl_out",
                                         "gl_BoundingBox",
                                         "gl_BoundingBoxEXT",
                                         "gl_BoundingBoxOES",
                                         "gl_TessCoord",
                                         "gl_ViewID_OVR",
                                         "gl_CullDistance"};

// Flat array of offsets from a symbol into the rules table.
constexpr uint16_t kMangledOffsets[] = {
    0,     // radians_00B
    1,     // radians_10B
    2,     // radians_20B
    3,     // radians_30B
    4,     // degrees_00B
    5,     // degrees_10B
    6,     // degrees_20B
    7,     // degrees_30B
    8,     // sin_00B
    9,     // sin_10B
    10,    // sin_20B
    11,    // sin_30B
    12,    // cos_00B
    13,    // cos_10B
    14,    // cos_20B
    15,    // cos_30B
    16,    // tan_00B
    17,    // tan_10B
    18,    // tan_20B
    19,    // tan_30B
    20,    // asin_00B
    21,    // asin_10B
    22,    // asin_20B
    23,    // asin_30B
    24,    // acos_00B
    25,    // acos_10B
    26,    // acos_20B
    27,    // acos_30B
    28,    // atan_00B00B
    29,    // atan_10B10B
    30,    // atan_20B20B
    31,    // atan_30B30B
    32,    // atan_00B
    33,    // atan_10B
    34,    // atan_20B
    35,    // atan_30B
    36,    // sinh_00B
    37,    // sinh_10B
    38,    // sinh_20B
    39,    // sinh_30B
    40,    // cosh_00B
    41,    // cosh_10B
    42,    // cosh_20B
    43,    // cosh_30B
    44,    // tanh_00B
    45,    // tanh_10B
    46,    // tanh_20B
    47,    // tanh_30B
    48,    // asinh_00B
    49,    // asinh_10B
    50,    // asinh_20B
    51,    // asinh_30B
    52,    // acosh_00B
    53,    // acosh_10B
    54,    // acosh_20B
    55,    // acosh_30B
    56,    // atanh_00B
    57,    // atanh_10B
    58,    // atanh_20B
    59,    // atanh_30B
    60,    // pow_00B00B
    61,    // pow_10B10B
    62,    // pow_20B20B
    63,    // pow_30B30B
    64,    // exp_00B
    65,    // exp_10B
    66,    // exp_20B
    67,    // exp_30B
    68,    // log_00B
    69,    // log_10B
    70,    // log_20B
    71,    // log_30B
    72,    // exp2_00B
    73,    // exp2_10B
    74,    // exp2_20B
    75,    // exp2_30B
    76,    // log2_00B
    77,    // log2_10B
    78,    // log2_20B
    79,    // log2_30B
    80,    // sqrt_00B
    81,    // sqrt_10B
    82,    // sqrt_20B
    83,    // sqrt_30B
    84,    // inversesqrt_00B
    85,    // inversesqrt_10B
    86,    // inversesqrt_20B
    87,    // inversesqrt_30B
    88,    // abs_00B
    89,    // abs_10B
    90,    // abs_20B
    91,    // abs_30B
    92,    // abs_00C
    93,    // abs_10C
    94,    // abs_20C
    95,    // abs_30C
    96,    // sign_00B
    97,    // sign_10B
    98,    // sign_20B
    99,    // sign_30B
    100,   // sign_00C
    101,   // sign_10C
    102,   // sign_20C
    103,   // sign_30C
    104,   // floor_00B
    105,   // floor_10B
    106,   // floor_20B
    107,   // floor_30B
    108,   // trunc_00B
    109,   // trunc_10B
    110,   // trunc_20B
    111,   // trunc_30B
    112,   // round_00B
    113,   // round_10B
    114,   // round_20B
    115,   // round_30B
    116,   // roundEven_00B
    117,   // roundEven_10B
    118,   // roundEven_20B
    119,   // roundEven_30B
    120,   // ceil_00B
    121,   // ceil_10B
    122,   // ceil_20B
    123,   // ceil_30B
    124,   // fract_00B
    125,   // fract_10B
    126,   // fract_20B
    127,   // fract_30B
    128,   // mod_00B00B
    129,   // mod_10B00B
    130,   // mod_20B00B
    131,   // mod_30B00B
    132,   // mod_10B10B
    133,   // mod_20B20B
    134,   // mod_30B30B
    135,   // min_00B00B
    136,   // min_10B00B
    137,   // min_20B00B
    138,   // min_30B00B
    139,   // min_10B10B
    140,   // min_20B20B
    141,   // min_30B30B
    142,   // min_00C00C
    143,   // min_10C10C
    144,   // min_20C20C
    145,   // min_30C30C
    146,   // min_10C00C
    147,   // min_20C00C
    148,   // min_30C00C
    149,   // min_00D00D
    150,   // min_10D10D
    151,   // min_20D20D
    152,   // min_30D30D
    153,   // min_10D00D
    154,   // min_20D00D
    155,   // min_30D00D
    156,   // max_00B00B
    157,   // max_10B00B
    158,   // max_20B00B
    159,   // max_30B00B
    160,   // max_10B10B
    161,   // max_20B20B
    162,   // max_30B30B
    163,   // max_00C00C
    164,   // max_10C10C
    165,   // max_20C20C
    166,   // max_30C30C
    167,   // max_10C00C
    168,   // max_20C00C
    169,   // max_30C00C
    170,   // max_00D00D
    171,   // max_10D10D
    172,   // max_20D20D
    173,   // max_30D30D
    174,   // max_10D00D
    175,   // max_20D00D
    176,   // max_30D00D
    177,   // clamp_00B00B00B
    178,   // clamp_10B00B00B
    179,   // clamp_20B00B00B
    180,   // clamp_30B00B00B
    181,   // clamp_10B10B10B
    182,   // clamp_20B20B20B
    183,   // clamp_30B30B30B
    184,   // clamp_00C00C00C
    185,   // clamp_10C00C00C
    186,   // clamp_20C00C00C
    187,   // clamp_30C00C00C
    188,   // clamp_10C10C10C
    189,   // clamp_20C20C20C
    190,   // clamp_30C30C30C
    191,   // clamp_00D00D00D
    192,   // clamp_10D00D00D
    193,   // clamp_20D00D00D
    194,   // clamp_30D00D00D
    195,   // clamp_10D10D10D
    196,   // clamp_20D20D20D
    197,   // clamp_30D30D30D
    198,   // mix_00B00B00B
    199,   // mix_10B10B00B
    200,   // mix_20B20B00B
    201,   // mix_30B30B00B
    202,   // mix_10B10B10B
    203,   // mix_20B20B20B
    204,   // mix_30B30B30B
    205,   // mix_00B00B00E
    206,   // mix_10B10B10E
    207,   // mix_20B20B20E
    208,   // mix_30B30B30E
    209,   // mix_00C00C00E
    210,   // mix_10C10C10E
    211,   // mix_20C20C20E
    212,   // mix_30C30C30E
    213,   // mix_00D00D00E
    214,   // mix_10D10D10E
    215,   // mix_20D20D20E
    216,   // mix_30D30D30E
    217,   // mix_00E00E00E
    218,   // mix_10E10E10E
    219,   // mix_20E20E20E
    220,   // mix_30E30E30E
    221,   // step_00B00B
    222,   // step_10B10B
    223,   // step_20B20B
    224,   // step_30B30B
    225,   // step_00B10B
    226,   // step_00B20B
    227,   // step_00B30B
    228,   // smoothstep_00B00B00B
    229,   // smoothstep_10B10B10B
    230,   // smoothstep_20B20B20B
    231,   // smoothstep_30B30B30B
    232,   // smoothstep_00B00B10B
    233,   // smoothstep_00B00B20B
    234,   // smoothstep_00B00B30B
    235,   // modf_00B00B
    236,   // modf_10B10B
    237,   // modf_20B20B
    238,   // modf_30B30B
    239,   // isnan_00B
    240,   // isnan_10B
    241,   // isnan_20B
    242,   // isnan_30B
    243,   // isinf_00B
    244,   // isinf_10B
    245,   // isinf_20B
    246,   // isinf_30B
    247,   // floatBitsToInt_00B
    248,   // floatBitsToInt_10B
    249,   // floatBitsToInt_20B
    250,   // floatBitsToInt_30B
    251,   // floatBitsToUint_00B
    252,   // floatBitsToUint_10B
    253,   // floatBitsToUint_20B
    254,   // floatBitsToUint_30B
    255,   // intBitsToFloat_00C
    256,   // intBitsToFloat_10C
    257,   // intBitsToFloat_20C
    258,   // intBitsToFloat_30C
    259,   // uintBitsToFloat_00D
    260,   // uintBitsToFloat_10D
    261,   // uintBitsToFloat_20D
    262,   // uintBitsToFloat_30D
    263,   // fma_00B00B00B
    266,   // fma_10B10B10B
    269,   // fma_20B20B20B
    272,   // fma_30B30B30B
    275,   // frexp_00B00C
    276,   // frexp_10B10C
    277,   // frexp_20B20C
    278,   // frexp_30B30C
    279,   // ldexp_00B00C
    280,   // ldexp_10B10C
    281,   // ldexp_20B20C
    282,   // ldexp_30B30C
    283,   // packSnorm2x16_10B
    284,   // packHalf2x16_10B
    285,   // unpackSnorm2x16_00D
    286,   // unpackHalf2x16_00D
    287,   // packUnorm2x16_10B
    288,   // unpackUnorm2x16_00D
    289,   // packUnorm4x8_30B
    290,   // packSnorm4x8_30B
    291,   // unpackUnorm4x8_00D
    292,   // unpackSnorm4x8_00D
    293,   // length_00B
    294,   // length_10B
    295,   // length_20B
    296,   // length_30B
    297,   // distance_00B00B
    298,   // distance_10B10B
    299,   // distance_20B20B
    300,   // distance_30B30B
    301,   // dot_00B00B
    302,   // dot_10B10B
    303,   // dot_20B20B
    304,   // dot_30B30B
    305,   // cross_20B20B
    306,   // normalize_00B
    307,   // normalize_10B
    308,   // normalize_20B
    309,   // normalize_30B
    310,   // faceforward_00B00B00B
    311,   // faceforward_10B10B10B
    312,   // faceforward_20B20B20B
    313,   // faceforward_30B30B30B
    314,   // reflect_00B00B
    315,   // reflect_10B10B
    316,   // reflect_20B20B
    317,   // reflect_30B30B
    318,   // refract_00B00B00B
    319,   // refract_10B10B00B
    320,   // refract_20B20B00B
    321,   // refract_30B30B00B
    322,   // matrixCompMult_50B50B
    323,   // matrixCompMult_A0BA0B
    324,   // matrixCompMult_F0BF0B
    325,   // matrixCompMult_90B90B
    326,   // matrixCompMult_60B60B
    327,   // matrixCompMult_D0BD0B
    328,   // matrixCompMult_70B70B
    329,   // matrixCompMult_E0BE0B
    330,   // matrixCompMult_B0BB0B
    331,   // outerProduct_10B10B
    332,   // outerProduct_20B20B
    333,   // outerProduct_30B30B
    334,   // outerProduct_20B10B
    335,   // outerProduct_10B20B
    336,   // outerProduct_30B10B
    337,   // outerProduct_10B30B
    338,   // outerProduct_30B20B
    339,   // outerProduct_20B30B
    340,   // transpose_50B
    341,   // transpose_A0B
    342,   // transpose_F0B
    343,   // transpose_60B
    344,   // transpose_90B
    345,   // transpose_70B
    346,   // transpose_D0B
    347,   // transpose_B0B
    348,   // transpose_E0B
    349,   // determinant_50B
    350,   // determinant_A0B
    351,   // determinant_F0B
    352,   // inverse_50B
    353,   // inverse_A0B
    354,   // inverse_F0B
    355,   // lessThan_10B10B
    356,   // lessThan_20B20B
    357,   // lessThan_30B30B
    358,   // lessThan_10C10C
    359,   // lessThan_20C20C
    360,   // lessThan_30C30C
    361,   // lessThan_10D10D
    362,   // lessThan_20D20D
    363,   // lessThan_30D30D
    364,   // lessThanEqual_10B10B
    365,   // lessThanEqual_20B20B
    366,   // lessThanEqual_30B30B
    367,   // lessThanEqual_10C10C
    368,   // lessThanEqual_20C20C
    369,   // lessThanEqual_30C30C
    370,   // lessThanEqual_10D10D
    371,   // lessThanEqual_20D20D
    372,   // lessThanEqual_30D30D
    373,   // greaterThan_10B10B
    374,   // greaterThan_20B20B
    375,   // greaterThan_30B30B
    376,   // greaterThan_10C10C
    377,   // greaterThan_20C20C
    378,   // greaterThan_30C30C
    379,   // greaterThan_10D10D
    380,   // greaterThan_20D20D
    381,   // greaterThan_30D30D
    382,   // greaterThanEqual_10B10B
    383,   // greaterThanEqual_20B20B
    384,   // greaterThanEqual_30B30B
    385,   // greaterThanEqual_10C10C
    386,   // greaterThanEqual_20C20C
    387,   // greaterThanEqual_30C30C
    388,   // greaterThanEqual_10D10D
    389,   // greaterThanEqual_20D20D
    390,   // greaterThanEqual_30D30D
    391,   // equal_10B10B
    392,   // equal_20B20B
    393,   // equal_30B30B
    394,   // equal_10C10C
    395,   // equal_20C20C
    396,   // equal_30C30C
    397,   // equal_10D10D
    398,   // equal_20D20D
    399,   // equal_30D30D
    400,   // equal_10E10E
    401,   // equal_20E20E
    402,   // equal_30E30E
    403,   // notEqual_10B10B
    404,   // notEqual_20B20B
    405,   // notEqual_30B30B
    406,   // notEqual_10C10C
    407,   // notEqual_20C20C
    408,   // notEqual_30C30C
    409,   // notEqual_10D10D
    410,   // notEqual_20D20D
    411,   // notEqual_30D30D
    412,   // notEqual_10E10E
    413,   // notEqual_20E20E
    414,   // notEqual_30E30E
    415,   // any_10E
    416,   // any_20E
    417,   // any_30E
    418,   // all_10E
    419,   // all_20E
    420,   // all_30E
    421,   // not_10E
    422,   // not_20E
    423,   // not_30E
    424,   // bitfieldExtract_00C00C00C
    425,   // bitfieldExtract_10C00C00C
    426,   // bitfieldExtract_20C00C00C
    427,   // bitfieldExtract_30C00C00C
    428,   // bitfieldExtract_00D00C00C
    429,   // bitfieldExtract_10D00C00C
    430,   // bitfieldExtract_20D00C00C
    431,   // bitfieldExtract_30D00C00C
    432,   // bitfieldInsert_00C00C00C00C
    433,   // bitfieldInsert_10C10C00C00C
    434,   // bitfieldInsert_20C20C00C00C
    435,   // bitfieldInsert_30C30C00C00C
    436,   // bitfieldInsert_00D00D00C00C
    437,   // bitfieldInsert_10D10D00C00C
    438,   // bitfieldInsert_20D20D00C00C
    439,   // bitfieldInsert_30D30D00C00C
    440,   // bitfieldReverse_00C
    441,   // bitfieldReverse_10C
    442,   // bitfieldReverse_20C
    443,   // bitfieldReverse_30C
    444,   // bitfieldReverse_00D
    445,   // bitfieldReverse_10D
    446,   // bitfieldReverse_20D
    447,   // bitfieldReverse_30D
    448,   // bitCount_00C
    449,   // bitCount_10C
    450,   // bitCount_20C
    451,   // bitCount_30C
    452,   // bitCount_00D
    453,   // bitCount_10D
    454,   // bitCount_20D
    455,   // bitCount_30D
    456,   // findLSB_00C
    457,   // findLSB_10C
    458,   // findLSB_20C
    459,   // findLSB_30C
    460,   // findLSB_00D
    461,   // findLSB_10D
    462,   // findLSB_20D
    463,   // findLSB_30D
    464,   // findMSB_00C
    465,   // findMSB_10C
    466,   // findMSB_20C
    467,   // findMSB_30C
    468,   // findMSB_00D
    469,   // findMSB_10D
    470,   // findMSB_20D
    471,   // findMSB_30D
    472,   // uaddCarry_00D00D00D
    473,   // uaddCarry_10D10D10D
    474,   // uaddCarry_20D20D20D
    475,   // uaddCarry_30D30D30D
    476,   // usubBorrow_00D00D00D
    477,   // usubBorrow_10D10D10D
    478,   // usubBorrow_20D20D20D
    479,   // usubBorrow_30D30D30D
    480,   // umulExtended_00D00D00D00D
    481,   // umulExtended_10D10D10D10D
    482,   // umulExtended_20D20D20D20D
    483,   // umulExtended_30D30D30D30D
    484,   // imulExtended_00C00C00C00C
    485,   // imulExtended_10C10C10C10C
    486,   // imulExtended_20C20C20C20C
    487,   // imulExtended_30C30C30C30C
    488,   // texture2D_00H10B
    489,   // texture2DProj_00H20B
    490,   // texture2DProj_00H30B
    491,   // textureCube_00J20B
    492,   // texture3D_00I20B
    493,   // texture3DProj_00I30B
    494,   // shadow2DEXT_00c20B
    495,   // shadow2DProjEXT_00c30B
    496,   // texture2D_00L10B
    498,   // texture2DProj_00L20B
    500,   // texture2DProj_00L30B
    502,   // texture2DRect_00N10B
    503,   // texture2DRectProj_00N20B
    504,   // texture2DRectProj_00N30B
    505,   // texture2DGradEXT_00H10B10B10B
    506,   // texture2DProjGradEXT_00H20B10B10B
    507,   // texture2DProjGradEXT_00H30B10B10B
    508,   // textureCubeGradEXT_00J20B20B20B
    509,   // textureVideoWEBGL_00p10B
    510,   // texture2D_00H10B00B
    511,   // texture2DProj_00H20B00B
    512,   // texture2DProj_00H30B00B
    513,   // textureCube_00J20B00B
    514,   // texture3D_00I20B00B
    515,   // texture3DProj_00I30B00B
    516,   // texture3DLod_00I20B00B
    517,   // texture3DProjLod_00I30B00B
    518,   // texture2DLod_00H10B00B
    519,   // texture2DProjLod_00H20B00B
    520,   // texture2DProjLod_00H30B00B
    521,   // textureCubeLod_00J20B00B
    522,   // texture2DLodEXT_00H10B00B
    523,   // texture2DProjLodEXT_00H20B00B
    524,   // texture2DProjLodEXT_00H30B00B
    525,   // textureCubeLodEXT_00J20B00B
    526,   // texture_00H10B
    527,   // texture_00Q10B
    528,   // texture_00W10B
    529,   // texture_00I20B
    530,   // texture_00R20B
    531,   // texture_00X20B
    532,   // texture_00J20B
    533,   // texture_00S20B
    534,   // texture_00Y20B
    535,   // texture_00K20B
    536,   // texture_00T20B
    537,   // texture_00Z20B
    538,   // texture_00c20B
    539,   // texture_00d30B
    540,   // texture_00e30B
    541,   // texture_00g30B
    544,   // texture_00l30B
    547,   // texture_00o30B
    550,   // texture_00h30B00B
    553,   // texture_00L10B
    554,   // texture_00M10B
    555,   // texture_00N10B
    556,   // texture_00p10B
    557,   // textureProj_00H20B
    558,   // textureProj_00Q20B
    559,   // textureProj_00W20B
    560,   // textureProj_00H30B
    561,   // textureProj_00Q30B
    562,   // textureProj_00W30B
    563,   // textureProj_00I30B
    564,   // textureProj_00R30B
    565,   // textureProj_00X30B
    566,   // textureProj_00c30B
    567,   // textureProj_00L20B
    568,   // textureProj_00L30B
    569,   // textureProj_00M20B
    570,   // textureProj_00M30B
    571,   // textureProj_00N20B
    572,   // textureProj_00N30B
    573,   // textureLod_00H10B00B
    574,   // textureLod_00Q10B00B
    575,   // textureLod_00W10B00B
    576,   // textureLod_00I20B00B
    577,   // textureLod_00R20B00B
    578,   // textureLod_00X20B00B
    579,   // textureLod_00J20B00B
    580,   // textureLod_00S20B00B
    581,   // textureLod_00Y20B00B
    582,   // textureLod_00K20B00B
    583,   // textureLod_00T20B00B
    584,   // textureLod_00Z20B00B
    585,   // textureLod_00c20B00B
    586,   // textureLod_00d30B00B
    587,   // textureLod_00e30B00B
    588,   // textureLod_00h30B00B00B
    589,   // textureLod_00g30B00B
    592,   // textureLod_00l30B00B
    595,   // textureLod_00o30B00B
    598,   // textureSize_00H00C
    599,   // textureSize_00Q00C
    600,   // textureSize_00W00C
    601,   // textureSize_00I00C
    602,   // textureSize_00R00C
    603,   // textureSize_00X00C
    604,   // textureSize_00J00C
    605,   // textureSize_00S00C
    606,   // textureSize_00Y00C
    607,   // textureSize_00K00C
    608,   // textureSize_00T00C
    609,   // textureSize_00Z00C
    610,   // textureSize_00c00C
    611,   // textureSize_00d00C
    612,   // textureSize_00e00C
    613,   // textureSize_00g00C
    616,   // textureSize_00l00C
    619,   // textureSize_00o00C
    622,   // textureSize_00h00C
    625,   // textureSize_00f
    628,   // textureSize_00k
    631,   // textureSize_00n
    634,   // textureSize_00O
    636,   // textureSize_00U
    638,   // textureSize_00a
    640,   // textureSize_00P
    642,   // textureSize_00V
    644,   // textureSize_00b
    646,   // textureSize_00L00C
    647,   // textureSize_00M00C
    648,   // textureProjLod_00H20B00B
    649,   // textureProjLod_00Q20B00B
    650,   // textureProjLod_00W20B00B
    651,   // textureProjLod_00H30B00B
    652,   // textureProjLod_00Q30B00B
    653,   // textureProjLod_00W30B00B
    654,   // textureProjLod_00I30B00B
    655,   // textureProjLod_00R30B00B
    656,   // textureProjLod_00X30B00B
    657,   // textureProjLod_00c30B00B
    658,   // texelFetch_00H10C00C
    659,   // texelFetch_00Q10C00C
    660,   // texelFetch_00W10C00C
    661,   // texelFetch_00I20C00C
    662,   // texelFetch_00R20C00C
    663,   // texelFetch_00X20C00C
    664,   // texelFetch_00K20C00C
    665,   // texelFetch_00T20C00C
    666,   // texelFetch_00Z20C00C
    667,   // texelFetch_00f00C
    670,   // texelFetch_00k00C
    673,   // texelFetch_00n00C
    676,   // texelFetch_00O10C00C
    678,   // texelFetch_00U10C00C
    680,   // texelFetch_00a10C00C
    682,   // texelFetch_00P20C00C
    684,   // texelFetch_00V20C00C
    686,   // texelFetch_00b20C00C
    688,   // texelFetch_00L10C00C
    689,   // texelFetch_00M10C00C
    690,   // textureGrad_00H10B10B10B
    691,   // textureGrad_00Q10B10B10B
    692,   // textureGrad_00W10B10B10B
    693,   // textureGrad_00I20B20B20B
    694,   // textureGrad_00R20B20B20B
    695,   // textureGrad_00X20B20B20B
    696,   // textureGrad_00J20B20B20B
    697,   // textureGrad_00S20B20B20B
    698,   // textureGrad_00Y20B20B20B
    699,   // textureGrad_00c20B10B10B
    700,   // textureGrad_00d30B20B20B
    701,   // textureGrad_00K20B10B10B
    702,   // textureGrad_00T20B10B10B
    703,   // textureGrad_00Z20B10B10B
    704,   // textureGrad_00e30B10B10B
    705,   // textureGrad_00g30B20B20B
    708,   // textureGrad_00l30B20B20B
    711,   // textureGrad_00o30B20B20B
    714,   // textureProjGrad_00H20B10B10B
    715,   // textureProjGrad_00Q20B10B10B
    716,   // textureProjGrad_00W20B10B10B
    717,   // textureProjGrad_00H30B10B10B
    718,   // textureProjGrad_00Q30B10B10B
    719,   // textureProjGrad_00W30B10B10B
    720,   // textureProjGrad_00I30B20B20B
    721,   // textureProjGrad_00R30B20B20B
    722,   // textureProjGrad_00X30B20B20B
    723,   // textureProjGrad_00c30B10B10B
    724,   // texture_00H10B00B
    725,   // texture_00Q10B00B
    726,   // texture_00W10B00B
    727,   // texture_00I20B00B
    728,   // texture_00R20B00B
    729,   // texture_00X20B00B
    730,   // texture_00J20B00B
    731,   // texture_00S20B00B
    732,   // texture_00Y20B00B
    733,   // texture_00K20B00B
    734,   // texture_00T20B00B
    735,   // texture_00Z20B00B
    736,   // textureProj_00H20B00B
    737,   // textureProj_00Q20B00B
    738,   // textureProj_00W20B00B
    739,   // textureProj_00H30B00B
    740,   // textureProj_00Q30B00B
    741,   // textureProj_00W30B00B
    742,   // textureProj_00I30B00B
    743,   // textureProj_00R30B00B
    744,   // textureProj_00X30B00B
    745,   // texture_00c20B00B
    746,   // texture_00d30B00B
    747,   // textureProj_00c30B00B
    748,   // texture_00e30B00B
    749,   // texture_00g30B00B
    752,   // texture_00l30B00B
    755,   // texture_00o30B00B
    758,   // texture_00h30B00B00B
    759,   // texture_00L10B00B
    760,   // textureProj_00L20B00B
    761,   // textureProj_00L30B00B
    762,   // texture_00M10B00B
    763,   // textureProj_00M20B00B
    764,   // textureProj_00M30B00B
    765,   // textureOffset_00H10B10C
    766,   // textureOffset_00Q10B10C
    767,   // textureOffset_00W10B10C
    768,   // textureOffset_00I20B20C
    769,   // textureOffset_00R20B20C
    770,   // textureOffset_00X20B20C
    771,   // textureOffset_00c20B10C
    772,   // textureOffset_00K20B10C
    773,   // textureOffset_00T20B10C
    774,   // textureOffset_00Z20B10C
    775,   // textureOffset_00e30B10C
    776,   // textureProjOffset_00H20B10C
    777,   // textureProjOffset_00Q20B10C
    778,   // textureProjOffset_00W20B10C
    779,   // textureProjOffset_00H30B10C
    780,   // textureProjOffset_00Q30B10C
    781,   // textureProjOffset_00W30B10C
    782,   // textureProjOffset_00I30B20C
    783,   // textureProjOffset_00R30B20C
    784,   // textureProjOffset_00X30B20C
    785,   // textureProjOffset_00c30B10C
    786,   // textureLodOffset_00H10B00B10C
    787,   // textureLodOffset_00Q10B00B10C
    788,   // textureLodOffset_00W10B00B10C
    789,   // textureLodOffset_00I20B00B20C
    790,   // textureLodOffset_00R20B00B20C
    791,   // textureLodOffset_00X20B00B20C
    792,   // textureLodOffset_00c20B00B10C
    793,   // textureLodOffset_00K20B00B10C
    794,   // textureLodOffset_00T20B00B10C
    795,   // textureLodOffset_00Z20B00B10C
    796,   // textureLodOffset_00e30B00B10C
    797,   // textureProjLodOffset_00H20B00B10C
    798,   // textureProjLodOffset_00Q20B00B10C
    799,   // textureProjLodOffset_00W20B00B10C
    800,   // textureProjLodOffset_00H30B00B10C
    801,   // textureProjLodOffset_00Q30B00B10C
    802,   // textureProjLodOffset_00W30B00B10C
    803,   // textureProjLodOffset_00I30B00B20C
    804,   // textureProjLodOffset_00R30B00B20C
    805,   // textureProjLodOffset_00X30B00B20C
    806,   // textureProjLodOffset_00c30B00B10C
    807,   // texelFetchOffset_00H10C00C10C
    808,   // texelFetchOffset_00Q10C00C10C
    809,   // texelFetchOffset_00W10C00C10C
    810,   // texelFetchOffset_00I20C00C20C
    811,   // texelFetchOffset_00R20C00C20C
    812,   // texelFetchOffset_00X20C00C20C
    813,   // texelFetchOffset_00K20C00C10C
    814,   // texelFetchOffset_00T20C00C10C
    815,   // texelFetchOffset_00Z20C00C10C
    816,   // textureGradOffset_00H10B10B10B10C
    817,   // textureGradOffset_00Q10B10B10B10C
    818,   // textureGradOffset_00W10B10B10B10C
    819,   // textureGradOffset_00I20B20B20B20C
    820,   // textureGradOffset_00R20B20B20B20C
    821,   // textureGradOffset_00X20B20B20B20C
    822,   // textureGradOffset_00c20B10B10B10C
    823,   // textureGradOffset_00K20B10B10B10C
    824,   // textureGradOffset_00T20B10B10B10C
    825,   // textureGradOffset_00Z20B10B10B10C
    826,   // textureGradOffset_00e30B10B10B10C
    827,   // textureProjGradOffset_00H20B10B10B10C
    828,   // textureProjGradOffset_00Q20B10B10B10C
    829,   // textureProjGradOffset_00W20B10B10B10C
    830,   // textureProjGradOffset_00H30B10B10B10C
    831,   // textureProjGradOffset_00Q30B10B10B10C
    832,   // textureProjGradOffset_00W30B10B10B10C
    833,   // textureProjGradOffset_00I30B20B20B20C
    834,   // textureProjGradOffset_00R30B20B20B20C
    835,   // textureProjGradOffset_00X30B20B20B20C
    836,   // textureProjGradOffset_00c30B10B10B10C
    837,   // textureOffset_00H10B10C00B
    838,   // textureOffset_00Q10B10C00B
    839,   // textureOffset_00W10B10C00B
    840,   // textureOffset_00I20B20C00B
    841,   // textureOffset_00R20B20C00B
    842,   // textureOffset_00X20B20C00B
    843,   // textureOffset_00c20B10C00B
    844,   // textureOffset_00K20B10C00B
    845,   // textureOffset_00T20B10C00B
    846,   // textureOffset_00Z20B10C00B
    847,   // textureOffset_00e30B10C00B
    848,   // textureProjOffset_00H20B10C00B
    849,   // textureProjOffset_00Q20B10C00B
    850,   // textureProjOffset_00W20B10C00B
    851,   // textureProjOffset_00H30B10C00B
    852,   // textureProjOffset_00Q30B10C00B
    853,   // textureProjOffset_00W30B10C00B
    854,   // textureProjOffset_00I30B20C00B
    855,   // textureProjOffset_00R30B20C00B
    856,   // textureProjOffset_00X30B20C00B
    857,   // textureProjOffset_00c30B10C00B
    858,   // textureGather_00H10B
    859,   // textureGather_00Q10B
    860,   // textureGather_00W10B
    861,   // textureGather_00H10B00C
    862,   // textureGather_00Q10B00C
    863,   // textureGather_00W10B00C
    864,   // textureGather_00K20B
    865,   // textureGather_00T20B
    866,   // textureGather_00Z20B
    867,   // textureGather_00K20B00C
    868,   // textureGather_00T20B00C
    869,   // textureGather_00Z20B00C
    870,   // textureGather_00J20B
    871,   // textureGather_00S20B
    872,   // textureGather_00Y20B
    873,   // textureGather_00J20B00C
    874,   // textureGather_00S20B00C
    875,   // textureGather_00Y20B00C
    876,   // textureGather_00g30B
    879,   // textureGather_00l30B
    882,   // textureGather_00o30B
    885,   // textureGather_00g30B00C
    888,   // textureGather_00l30B00C
    891,   // textureGather_00o30B00C
    894,   // textureGather_00h30B00B
    897,   // textureGather_00c10B
    898,   // textureGather_00c10B00B
    899,   // textureGather_00e20B
    900,   // textureGather_00e20B00B
    901,   // textureGather_00d20B
    902,   // textureGather_00d20B00B
    903,   // textureGatherOffset_00H10B10C
    904,   // textureGatherOffset_00Q10B10C
    905,   // textureGatherOffset_00W10B10C
    906,   // textureGatherOffset_00K20B10C
    907,   // textureGatherOffset_00T20B10C
    908,   // textureGatherOffset_00Z20B10C
    909,   // textureGatherOffset_00c10B00B10C
    910,   // textureGatherOffset_00e20B00B10C
    911,   // textureGatherOffset_00H10B10C00C
    912,   // textureGatherOffset_00Q10B10C00C
    913,   // textureGatherOffset_00W10B10C00C
    914,   // textureGatherOffset_00K20B10C00C
    915,   // textureGatherOffset_00T20B10C00C
    916,   // textureGatherOffset_00Z20B10C00C
    917,   // textureGatherOffsets_00H10B10Cx4
    920,   // textureGatherOffsets_00Q10B10Cx4
    923,   // textureGatherOffsets_00W10B10Cx4
    926,   // textureGatherOffsets_00K20B10Cx4
    929,   // textureGatherOffsets_00T20B10Cx4
    932,   // textureGatherOffsets_00Z20B10Cx4
    935,   // textureGatherOffsets_00c10B00B10Cx4
    938,   // textureGatherOffsets_00e20B00B10Cx4
    941,   // textureGatherOffsets_00H10B10Cx400C
    944,   // textureGatherOffsets_00Q10B10Cx400C
    947,   // textureGatherOffsets_00W10B10Cx400C
    950,   // textureGatherOffsets_00K20B10Cx400C
    953,   // textureGatherOffsets_00T20B10Cx400C
    956,   // textureGatherOffsets_00Z20B10Cx400C
    959,   // textureQueryLOD_00H10B
    960,   // textureQueryLOD_00Q10B
    961,   // textureQueryLOD_00W10B
    962,   // textureQueryLOD_00I20B
    963,   // textureQueryLOD_00R20B
    964,   // textureQueryLOD_00X20B
    965,   // textureQueryLOD_00J20B
    966,   // textureQueryLOD_00S20B
    967,   // textureQueryLOD_00Y20B
    968,   // textureQueryLOD_00K10B
    969,   // textureQueryLOD_00T10B
    970,   // textureQueryLOD_00Z10B
    971,   // textureQueryLOD_00c10B
    972,   // textureQueryLOD_00d20B
    973,   // textureQueryLOD_00e10B
    974,   // textureQueryLOD_00g20B
    975,   // textureQueryLOD_00l20B
    976,   // textureQueryLOD_00o20B
    977,   // textureQueryLOD_00h20B
    978,   // rgb_2_yuv_20B00G
    979,   // yuv_2_rgb_20B00G
    980,   // dFdx_00B
    982,   // dFdx_10B
    984,   // dFdx_20B
    986,   // dFdx_30B
    988,   // dFdy_00B
    990,   // dFdy_10B
    992,   // dFdy_20B
    994,   // dFdy_30B
    996,   // fwidth_00B
    998,   // fwidth_10B
    1000,  // fwidth_20B
    1002,  // fwidth_30B
    1004,  // interpolateAtCentroid_00B
    1006,  // interpolateAtCentroid_10B
    1008,  // interpolateAtCentroid_20B
    1010,  // interpolateAtCentroid_30B
    1012,  // interpolateAtSample_00B00C
    1014,  // interpolateAtSample_10B00C
    1016,  // interpolateAtSample_20B00C
    1018,  // interpolateAtSample_30B00C
    1020,  // interpolateAtOffset_00B10B
    1022,  // interpolateAtOffset_10B10B
    1024,  // interpolateAtOffset_20B10B
    1026,  // interpolateAtOffset_30B10B
    1028,  // atomicCounter_00F
    1029,  // atomicCounterIncrement_00F
    1030,  // atomicCounterDecrement_00F
    1031,  // atomicAdd_00D00D
    1032,  // atomicAdd_00C00C
    1033,  // atomicMin_00D00D
    1034,  // atomicMin_00C00C
    1035,  // atomicMax_00D00D
    1036,  // atomicMax_00C00C
    1037,  // atomicAnd_00D00D
    1038,  // atomicAnd_00C00C
    1039,  // atomicOr_00D00D
    1040,  // atomicOr_00C00C
    1041,  // atomicXor_00D00D
    1042,  // atomicXor_00C00C
    1043,  // atomicExchange_00D00D
    1044,  // atomicExchange_00C00C
    1045,  // atomicCompSwap_00D00D00D
    1046,  // atomicCompSwap_00C00C00C
    1047,  // imageSize_00q
    1048,  // imageSize_00z
    1049,  // imageSize_01I
    1050,  // imageSize_00r
    1051,  // imageSize_01A
    1052,  // imageSize_01J
    1053,  // imageSize_00s
    1054,  // imageSize_01B
    1055,  // imageSize_01K
    1056,  // imageSize_00t
    1057,  // imageSize_01C
    1058,  // imageSize_01L
    1059,  // imageSize_00w
    1062,  // imageSize_01F
    1065,  // imageSize_01O
    1068,  // imageSize_00y
    1071,  // imageSize_01H
    1074,  // imageSize_01Q
    1077,  // imageStore_00q10C30B
    1078,  // imageStore_00z10C30C
    1079,  // imageStore_01I10C30D
    1080,  // imageStore_00r20C30B
    1081,  // imageStore_01A20C30C
    1082,  // imageStore_01J20C30D
    1083,  // imageStore_00s20C30B
    1084,  // imageStore_01B20C30C
    1085,  // imageStore_01K20C30D
    1086,  // imageStore_00t20C30B
    1087,  // imageStore_01C20C30C
    1088,  // imageStore_01L20C30D
    1089,  // imageStore_00w20C30B
    1092,  // imageStore_01F20C30C
    1095,  // imageStore_01O20C30D
    1098,  // imageStore_00y00C30B
    1101,  // imageStore_01H00C30C
    1104,  // imageStore_01Q00C30D
    1107,  // imageLoad_00q10C
    1108,  // imageLoad_00z10C
    1109,  // imageLoad_01I10C
    1110,  // imageLoad_00r20C
    1111,  // imageLoad_01A20C
    1112,  // imageLoad_01J20C
    1113,  // imageLoad_00s20C
    1114,  // imageLoad_01B20C
    1115,  // imageLoad_01K20C
    1116,  // imageLoad_00t20C
    1117,  // imageLoad_01C20C
    1118,  // imageLoad_01L20C
    1119,  // imageLoad_00w20C
    1122,  // imageLoad_01F20C
    1125,  // imageLoad_01O20C
    1128,  // imageLoad_00y00C
    1131,  // imageLoad_01H00C
    1134,  // imageLoad_01Q00C
    1137,  // imageAtomicAdd_00q10C00D
    1139,  // imageAtomicAdd_00z10C00D
    1141,  // imageAtomicAdd_01I10C00D
    1143,  // imageAtomicAdd_00r20C00D
    1145,  // imageAtomicAdd_01A20C00D
    1147,  // imageAtomicAdd_01J20C00D
    1149,  // imageAtomicAdd_00t20C00D
    1151,  // imageAtomicAdd_01C20C00D
    1153,  // imageAtomicAdd_01L20C00D
    1155,  // imageAtomicAdd_00y00C00D
    1157,  // imageAtomicAdd_01H00C00D
    1159,  // imageAtomicAdd_01Q00C00D
    1161,  // imageAtomicAdd_00s20C00D
    1163,  // imageAtomicAdd_01B20C00D
    1165,  // imageAtomicAdd_01K20C00D
    1167,  // imageAtomicAdd_00w20C00D
    1169,  // imageAtomicAdd_01F20C00D
    1171,  // imageAtomicAdd_01O20C00D
    1173,  // imageAtomicAdd_00x10C00D
    1175,  // imageAtomicAdd_01G10C00D
    1177,  // imageAtomicAdd_01P10C00D
    1179,  // imageAtomicAdd_00u10C00C00D
    1181,  // imageAtomicAdd_01D10C00C00D
    1183,  // imageAtomicAdd_01M10C00C00D
    1185,  // imageAtomicAdd_00v20C00C00D
    1187,  // imageAtomicAdd_01E20C00C00D
    1189,  // imageAtomicAdd_01N20C00C00D
    1191,  // imageAtomicAdd_00q10C00C
    1193,  // imageAtomicAdd_00z10C00C
    1195,  // imageAtomicAdd_01I10C00C
    1197,  // imageAtomicAdd_00r20C00C
    1199,  // imageAtomicAdd_01A20C00C
    1201,  // imageAtomicAdd_01J20C00C
    1203,  // imageAtomicAdd_00t20C00C
    1205,  // imageAtomicAdd_01C20C00C
    1207,  // imageAtomicAdd_01L20C00C
    1209,  // imageAtomicAdd_00y00C00C
    1211,  // imageAtomicAdd_01H00C00C
    1213,  // imageAtomicAdd_01Q00C00C
    1215,  // imageAtomicAdd_00s20C00C
    1217,  // imageAtomicAdd_01B20C00C
    1219,  // imageAtomicAdd_01K20C00C
    1221,  // imageAtomicAdd_00w20C00C
    1223,  // imageAtomicAdd_01F20C00C
    1225,  // imageAtomicAdd_01O20C00C
    1227,  // imageAtomicAdd_00x10C00C
    1229,  // imageAtomicAdd_01G10C00C
    1231,  // imageAtomicAdd_01P10C00C
    1233,  // imageAtomicAdd_00u10C00C00C
    1235,  // imageAtomicAdd_01D10C00C00C
    1237,  // imageAtomicAdd_01M10C00C00C
    1239,  // imageAtomicAdd_00v20C00C00C
    1241,  // imageAtomicAdd_01E20C00C00C
    1243,  // imageAtomicAdd_01N20C00C00C
    1245,  // imageAtomicMin_00q10C00D
    1247,  // imageAtomicMin_00z10C00D
    1249,  // imageAtomicMin_01I10C00D
    1251,  // imageAtomicMin_00r20C00D
    1253,  // imageAtomicMin_01A20C00D
    1255,  // imageAtomicMin_01J20C00D
    1257,  // imageAtomicMin_00t20C00D
    1259,  // imageAtomicMin_01C20C00D
    1261,  // imageAtomicMin_01L20C00D
    1263,  // imageAtomicMin_00y00C00D
    1265,  // imageAtomicMin_01H00C00D
    1267,  // imageAtomicMin_01Q00C00D
    1269,  // imageAtomicMin_00s20C00D
    1271,  // imageAtomicMin_01B20C00D
    1273,  // imageAtomicMin_01K20C00D
    1275,  // imageAtomicMin_00w20C00D
    1277,  // imageAtomicMin_01F20C00D
    1279,  // imageAtomicMin_01O20C00D
    1281,  // imageAtomicMin_00x10C00D
    1283,  // imageAtomicMin_01G10C00D
    1285,  // imageAtomicMin_01P10C00D
    1287,  // imageAtomicMin_00u10C00C00D
    1289,  // imageAtomicMin_01D10C00C00D
    1291,  // imageAtomicMin_01M10C00C00D
    1293,  // imageAtomicMin_00v20C00C00D
    1295,  // imageAtomicMin_01E20C00C00D
    1297,  // imageAtomicMin_01N20C00C00D
    1299,  // imageAtomicMin_00q10C00C
    1301,  // imageAtomicMin_00z10C00C
    1303,  // imageAtomicMin_01I10C00C
    1305,  // imageAtomicMin_00r20C00C
    1307,  // imageAtomicMin_01A20C00C
    1309,  // imageAtomicMin_01J20C00C
    1311,  // imageAtomicMin_00t20C00C
    1313,  // imageAtomicMin_01C20C00C
    1315,  // imageAtomicMin_01L20C00C
    1317,  // imageAtomicMin_00y00C00C
    1319,  // imageAtomicMin_01H00C00C
    1321,  // imageAtomicMin_01Q00C00C
    1323,  // imageAtomicMin_00s20C00C
    1325,  // imageAtomicMin_01B20C00C
    1327,  // imageAtomicMin_01K20C00C
    1329,  // imageAtomicMin_00w20C00C
    1331,  // imageAtomicMin_01F20C00C
    1333,  // imageAtomicMin_01O20C00C
    1335,  // imageAtomicMin_00x10C00C
    1337,  // imageAtomicMin_01G10C00C
    1339,  // imageAtomicMin_01P10C00C
    1341,  // imageAtomicMin_00u10C00C00C
    1343,  // imageAtomicMin_01D10C00C00C
    1345,  // imageAtomicMin_01M10C00C00C
    1347,  // imageAtomicMin_00v20C00C00C
    1349,  // imageAtomicMin_01E20C00C00C
    1351,  // imageAtomicMin_01N20C00C00C
    1353,  // imageAtomicMax_00q10C00D
    1355,  // imageAtomicMax_00z10C00D
    1357,  // imageAtomicMax_01I10C00D
    1359,  // imageAtomicMax_00r20C00D
    1361,  // imageAtomicMax_01A20C00D
    1363,  // imageAtomicMax_01J20C00D
    1365,  // imageAtomicMax_00t20C00D
    1367,  // imageAtomicMax_01C20C00D
    1369,  // imageAtomicMax_01L20C00D
    1371,  // imageAtomicMax_00y00C00D
    1373,  // imageAtomicMax_01H00C00D
    1375,  // imageAtomicMax_01Q00C00D
    1377,  // imageAtomicMax_00s20C00D
    1379,  // imageAtomicMax_01B20C00D
    1381,  // imageAtomicMax_01K20C00D
    1383,  // imageAtomicMax_00w20C00D
    1385,  // imageAtomicMax_01F20C00D
    1387,  // imageAtomicMax_01O20C00D
    1389,  // imageAtomicMax_00x10C00D
    1391,  // imageAtomicMax_01G10C00D
    1393,  // imageAtomicMax_01P10C00D
    1395,  // imageAtomicMax_00u10C00C00D
    1397,  // imageAtomicMax_01D10C00C00D
    1399,  // imageAtomicMax_01M10C00C00D
    1401,  // imageAtomicMax_00v20C00C00D
    1403,  // imageAtomicMax_01E20C00C00D
    1405,  // imageAtomicMax_01N20C00C00D
    1407,  // imageAtomicMax_00q10C00C
    1409,  // imageAtomicMax_00z10C00C
    1411,  // imageAtomicMax_01I10C00C
    1413,  // imageAtomicMax_00r20C00C
    1415,  // imageAtomicMax_01A20C00C
    1417,  // imageAtomicMax_01J20C00C
    1419,  // imageAtomicMax_00t20C00C
    1421,  // imageAtomicMax_01C20C00C
    1423,  // imageAtomicMax_01L20C00C
    1425,  // imageAtomicMax_00y00C00C
    1427,  // imageAtomicMax_01H00C00C
    1429,  // imageAtomicMax_01Q00C00C
    1431,  // imageAtomicMax_00s20C00C
    1433,  // imageAtomicMax_01B20C00C
    1435,  // imageAtomicMax_01K20C00C
    1437,  // imageAtomicMax_00w20C00C
    1439,  // imageAtomicMax_01F20C00C
    1441,  // imageAtomicMax_01O20C00C
    1443,  // imageAtomicMax_00x10C00C
    1445,  // imageAtomicMax_01G10C00C
    1447,  // imageAtomicMax_01P10C00C
    1449,  // imageAtomicMax_00u10C00C00C
    1451,  // imageAtomicMax_01D10C00C00C
    1453,  // imageAtomicMax_01M10C00C00C
    1455,  // imageAtomicMax_00v20C00C00C
    1457,  // imageAtomicMax_01E20C00C00C
    1459,  // imageAtomicMax_01N20C00C00C
    1461,  // imageAtomicAnd_00q10C00D
    1463,  // imageAtomicAnd_00z10C00D
    1465,  // imageAtomicAnd_01I10C00D
    1467,  // imageAtomicAnd_00r20C00D
    1469,  // imageAtomicAnd_01A20C00D
    1471,  // imageAtomicAnd_01J20C00D
    1473,  // imageAtomicAnd_00t20C00D
    1475,  // imageAtomicAnd_01C20C00D
    1477,  // imageAtomicAnd_01L20C00D
    1479,  // imageAtomicAnd_00y00C00D
    1481,  // imageAtomicAnd_01H00C00D
    1483,  // imageAtomicAnd_01Q00C00D
    1485,  // imageAtomicAnd_00s20C00D
    1487,  // imageAtomicAnd_01B20C00D
    1489,  // imageAtomicAnd_01K20C00D
    1491,  // imageAtomicAnd_00w20C00D
    1493,  // imageAtomicAnd_01F20C00D
    1495,  // imageAtomicAnd_01O20C00D
    1497,  // imageAtomicAnd_00x10C00D
    1499,  // imageAtomicAnd_01G10C00D
    1501,  // imageAtomicAnd_01P10C00D
    1503,  // imageAtomicAnd_00u10C00C00D
    1505,  // imageAtomicAnd_01D10C00C00D
    1507,  // imageAtomicAnd_01M10C00C00D
    1509,  // imageAtomicAnd_00v20C00C00D
    1511,  // imageAtomicAnd_01E20C00C00D
    1513,  // imageAtomicAnd_01N20C00C00D
    1515,  // imageAtomicAnd_00q10C00C
    1517,  // imageAtomicAnd_00z10C00C
    1519,  // imageAtomicAnd_01I10C00C
    1521,  // imageAtomicAnd_00r20C00C
    1523,  // imageAtomicAnd_01A20C00C
    1525,  // imageAtomicAnd_01J20C00C
    1527,  // imageAtomicAnd_00t20C00C
    1529,  // imageAtomicAnd_01C20C00C
    1531,  // imageAtomicAnd_01L20C00C
    1533,  // imageAtomicAnd_00y00C00C
    1535,  // imageAtomicAnd_01H00C00C
    1537,  // imageAtomicAnd_01Q00C00C
    1539,  // imageAtomicAnd_00s20C00C
    1541,  // imageAtomicAnd_01B20C00C
    1543,  // imageAtomicAnd_01K20C00C
    1545,  // imageAtomicAnd_00w20C00C
    1547,  // imageAtomicAnd_01F20C00C
    1549,  // imageAtomicAnd_01O20C00C
    1551,  // imageAtomicAnd_00x10C00C
    1553,  // imageAtomicAnd_01G10C00C
    1555,  // imageAtomicAnd_01P10C00C
    1557,  // imageAtomicAnd_00u10C00C00C
    1559,  // imageAtomicAnd_01D10C00C00C
    1561,  // imageAtomicAnd_01M10C00C00C
    1563,  // imageAtomicAnd_00v20C00C00C
    1565,  // imageAtomicAnd_01E20C00C00C
    1567,  // imageAtomicAnd_01N20C00C00C
    1569,  // imageAtomicOr_00q10C00D
    1571,  // imageAtomicOr_00z10C00D
    1573,  // imageAtomicOr_01I10C00D
    1575,  // imageAtomicOr_00r20C00D
    1577,  // imageAtomicOr_01A20C00D
    1579,  // imageAtomicOr_01J20C00D
    1581,  // imageAtomicOr_00t20C00D
    1583,  // imageAtomicOr_01C20C00D
    1585,  // imageAtomicOr_01L20C00D
    1587,  // imageAtomicOr_00y00C00D
    1589,  // imageAtomicOr_01H00C00D
    1591,  // imageAtomicOr_01Q00C00D
    1593,  // imageAtomicOr_00s20C00D
    1595,  // imageAtomicOr_01B20C00D
    1597,  // imageAtomicOr_01K20C00D
    1599,  // imageAtomicOr_00w20C00D
    1601,  // imageAtomicOr_01F20C00D
    1603,  // imageAtomicOr_01O20C00D
    1605,  // imageAtomicOr_00x10C00D
    1607,  // imageAtomicOr_01G10C00D
    1609,  // imageAtomicOr_01P10C00D
    1611,  // imageAtomicOr_00u10C00C00D
    1613,  // imageAtomicOr_01D10C00C00D
    1615,  // imageAtomicOr_01M10C00C00D
    1617,  // imageAtomicOr_00v20C00C00D
    1619,  // imageAtomicOr_01E20C00C00D
    1621,  // imageAtomicOr_01N20C00C00D
    1623,  // imageAtomicOr_00q10C00C
    1625,  // imageAtomicOr_00z10C00C
    1627,  // imageAtomicOr_01I10C00C
    1629,  // imageAtomicOr_00r20C00C
    1631,  // imageAtomicOr_01A20C00C
    1633,  // imageAtomicOr_01J20C00C
    1635,  // imageAtomicOr_00t20C00C
    1637,  // imageAtomicOr_01C20C00C
    1639,  // imageAtomicOr_01L20C00C
    1641,  // imageAtomicOr_00y00C00C
    1643,  // imageAtomicOr_01H00C00C
    1645,  // imageAtomicOr_01Q00C00C
    1647,  // imageAtomicOr_00s20C00C
    1649,  // imageAtomicOr_01B20C00C
    1651,  // imageAtomicOr_01K20C00C
    1653,  // imageAtomicOr_00w20C00C
    1655,  // imageAtomicOr_01F20C00C
    1657,  // imageAtomicOr_01O20C00C
    1659,  // imageAtomicOr_00x10C00C
    1661,  // imageAtomicOr_01G10C00C
    1663,  // imageAtomicOr_01P10C00C
    1665,  // imageAtomicOr_00u10C00C00C
    1667,  // imageAtomicOr_01D10C00C00C
    1669,  // imageAtomicOr_01M10C00C00C
    1671,  // imageAtomicOr_00v20C00C00C
    1673,  // imageAtomicOr_01E20C00C00C
    1675,  // imageAtomicOr_01N20C00C00C
    1677,  // imageAtomicXor_00q10C00D
    1679,  // imageAtomicXor_00z10C00D
    1681,  // imageAtomicXor_01I10C00D
    1683,  // imageAtomicXor_00r20C00D
    1685,  // imageAtomicXor_01A20C00D
    1687,  // imageAtomicXor_01J20C00D
    1689,  // imageAtomicXor_00t20C00D
    1691,  // imageAtomicXor_01C20C00D
    1693,  // imageAtomicXor_01L20C00D
    1695,  // imageAtomicXor_00y00C00D
    1697,  // imageAtomicXor_01H00C00D
    1699,  // imageAtomicXor_01Q00C00D
    1701,  // imageAtomicXor_00s20C00D
    1703,  // imageAtomicXor_01B20C00D
    1705,  // imageAtomicXor_01K20C00D
    1707,  // imageAtomicXor_00w20C00D
    1709,  // imageAtomicXor_01F20C00D
    1711,  // imageAtomicXor_01O20C00D
    1713,  // imageAtomicXor_00x10C00D
    1715,  // imageAtomicXor_01G10C00D
    1717,  // imageAtomicXor_01P10C00D
    1719,  // imageAtomicXor_00u10C00C00D
    1721,  // imageAtomicXor_01D10C00C00D
    1723,  // imageAtomicXor_01M10C00C00D
    1725,  // imageAtomicXor_00v20C00C00D
    1727,  // imageAtomicXor_01E20C00C00D
    1729,  // imageAtomicXor_01N20C00C00D
    1731,  // imageAtomicXor_00q10C00C
    1733,  // imageAtomicXor_00z10C00C
    1735,  // imageAtomicXor_01I10C00C
    1737,  // imageAtomicXor_00r20C00C
    1739,  // imageAtomicXor_01A20C00C
    1741,  // imageAtomicXor_01J20C00C
    1743,  // imageAtomicXor_00t20C00C
    1745,  // imageAtomicXor_01C20C00C
    1747,  // imageAtomicXor_01L20C00C
    1749,  // imageAtomicXor_00y00C00C
    1751,  // imageAtomicXor_01H00C00C
    1753,  // imageAtomicXor_01Q00C00C
    1755,  // imageAtomicXor_00s20C00C
    1757,  // imageAtomicXor_01B20C00C
    1759,  // imageAtomicXor_01K20C00C
    1761,  // imageAtomicXor_00w20C00C
    1763,  // imageAtomicXor_01F20C00C
    1765,  // imageAtomicXor_01O20C00C
    1767,  // imageAtomicXor_00x10C00C
    1769,  // imageAtomicXor_01G10C00C
    1771,  // imageAtomicXor_01P10C00C
    1773,  // imageAtomicXor_00u10C00C00C
    1775,  // imageAtomicXor_01D10C00C00C
    1777,  // imageAtomicXor_01M10C00C00C
    1779,  // imageAtomicXor_00v20C00C00C
    1781,  // imageAtomicXor_01E20C00C00C
    1783,  // imageAtomicXor_01N20C00C00C
    1785,  // imageAtomicExchange_00q10C00D
    1787,  // imageAtomicExchange_00z10C00D
    1789,  // imageAtomicExchange_01I10C00D
    1791,  // imageAtomicExchange_00r20C00D
    1793,  // imageAtomicExchange_01A20C00D
    1795,  // imageAtomicExchange_01J20C00D
    1797,  // imageAtomicExchange_00t20C00D
    1799,  // imageAtomicExchange_01C20C00D
    1801,  // imageAtomicExchange_01L20C00D
    1803,  // imageAtomicExchange_00y00C00D
    1805,  // imageAtomicExchange_01H00C00D
    1807,  // imageAtomicExchange_01Q00C00D
    1809,  // imageAtomicExchange_00s20C00D
    1811,  // imageAtomicExchange_01B20C00D
    1813,  // imageAtomicExchange_01K20C00D
    1815,  // imageAtomicExchange_00w20C00D
    1817,  // imageAtomicExchange_01F20C00D
    1819,  // imageAtomicExchange_01O20C00D
    1821,  // imageAtomicExchange_00x10C00D
    1823,  // imageAtomicExchange_01G10C00D
    1825,  // imageAtomicExchange_01P10C00D
    1827,  // imageAtomicExchange_00u10C00C00D
    1829,  // imageAtomicExchange_01D10C00C00D
    1831,  // imageAtomicExchange_01M10C00C00D
    1833,  // imageAtomicExchange_00v20C00C00D
    1835,  // imageAtomicExchange_01E20C00C00D
    1837,  // imageAtomicExchange_01N20C00C00D
    1839,  // imageAtomicExchange_00q10C00C
    1841,  // imageAtomicExchange_00z10C00C
    1843,  // imageAtomicExchange_01I10C00C
    1845,  // imageAtomicExchange_00r20C00C
    1847,  // imageAtomicExchange_01A20C00C
    1849,  // imageAtomicExchange_01J20C00C
    1851,  // imageAtomicExchange_00t20C00C
    1853,  // imageAtomicExchange_01C20C00C
    1855,  // imageAtomicExchange_01L20C00C
    1857,  // imageAtomicExchange_00y00C00C
    1859,  // imageAtomicExchange_01H00C00C
    1861,  // imageAtomicExchange_01Q00C00C
    1863,  // imageAtomicExchange_00s20C00C
    1865,  // imageAtomicExchange_01B20C00C
    1867,  // imageAtomicExchange_01K20C00C
    1869,  // imageAtomicExchange_00w20C00C
    1871,  // imageAtomicExchange_01F20C00C
    1873,  // imageAtomicExchange_01O20C00C
    1875,  // imageAtomicExchange_00x10C00C
    1877,  // imageAtomicExchange_01G10C00C
    1879,  // imageAtomicExchange_01P10C00C
    1881,  // imageAtomicExchange_00u10C00C00C
    1883,  // imageAtomicExchange_01D10C00C00C
    1885,  // imageAtomicExchange_01M10C00C00C
    1887,  // imageAtomicExchange_00v20C00C00C
    1889,  // imageAtomicExchange_01E20C00C00C
    1891,  // imageAtomicExchange_01N20C00C00C
    1893,  // imageAtomicExchange_00q10C00B
    1895,  // imageAtomicExchange_00z10C00B
    1897,  // imageAtomicExchange_01I10C00B
    1899,  // imageAtomicExchange_00r20C00B
    1901,  // imageAtomicExchange_01A20C00B
    1903,  // imageAtomicExchange_01J20C00B
    1905,  // imageAtomicExchange_00t20C00B
    1907,  // imageAtomicExchange_01C20C00B
    1909,  // imageAtomicExchange_01L20C00B
    1911,  // imageAtomicExchange_00y00C00B
    1913,  // imageAtomicExchange_01H00C00B
    1915,  // imageAtomicExchange_01Q00C00B
    1917,  // imageAtomicExchange_00s20C00B
    1919,  // imageAtomicExchange_01B20C00B
    1921,  // imageAtomicExchange_01K20C00B
    1923,  // imageAtomicExchange_00w20C00B
    1925,  // imageAtomicExchange_01F20C00B
    1927,  // imageAtomicExchange_01O20C00B
    1929,  // imageAtomicExchange_00x10C00B
    1931,  // imageAtomicExchange_01G10C00B
    1933,  // imageAtomicExchange_01P10C00B
    1935,  // imageAtomicExchange_00u10C00C00B
    1937,  // imageAtomicExchange_01D10C00C00B
    1939,  // imageAtomicExchange_01M10C00C00B
    1941,  // imageAtomicExchange_00v20C00C00B
    1943,  // imageAtomicExchange_01E20C00C00B
    1945,  // imageAtomicExchange_01N20C00C00B
    1947,  // imageAtomicCompSwap_00q10C00D00D
    1949,  // imageAtomicCompSwap_00z10C00D00D
    1951,  // imageAtomicCompSwap_01I10C00D00D
    1953,  // imageAtomicCompSwap_00r20C00D00D
    1955,  // imageAtomicCompSwap_01A20C00D00D
    1957,  // imageAtomicCompSwap_01J20C00D00D
    1959,  // imageAtomicCompSwap_00t20C00D00D
    1961,  // imageAtomicCompSwap_01C20C00D00D
    1963,  // imageAtomicCompSwap_01L20C00D00D
    1965,  // imageAtomicCompSwap_00y00C00D00D
    1967,  // imageAtomicCompSwap_01H00C00D00D
    1969,  // imageAtomicCompSwap_01Q00C00D00D
    1971,  // imageAtomicCompSwap_00s20C00D00D
    1973,  // imageAtomicCompSwap_01B20C00D00D
    1975,  // imageAtomicCompSwap_01K20C00D00D
    1977,  // imageAtomicCompSwap_00w20C00D00D
    1979,  // imageAtomicCompSwap_01F20C00D00D
    1981,  // imageAtomicCompSwap_01O20C00D00D
    1983,  // imageAtomicCompSwap_00x10C00D00D
    1985,  // imageAtomicCompSwap_01G10C00D00D
    1987,  // imageAtomicCompSwap_01P10C00D00D
    1989,  // imageAtomicCompSwap_00u10C00C00D00D
    1991,  // imageAtomicCompSwap_01D10C00C00D00D
    1993,  // imageAtomicCompSwap_01M10C00C00D00D
    1995,  // imageAtomicCompSwap_00v20C00C00D00D
    1997,  // imageAtomicCompSwap_01E20C00C00D00D
    1999,  // imageAtomicCompSwap_01N20C00C00D00D
    2001,  // imageAtomicCompSwap_00q10C00C00C
    2003,  // imageAtomicCompSwap_00z10C00C00C
    2005,  // imageAtomicCompSwap_01I10C00C00C
    2007,  // imageAtomicCompSwap_00r20C00C00C
    2009,  // imageAtomicCompSwap_01A20C00C00C
    2011,  // imageAtomicCompSwap_01J20C00C00C
    2013,  // imageAtomicCompSwap_00t20C00C00C
    2015,  // imageAtomicCompSwap_01C20C00C00C
    2017,  // imageAtomicCompSwap_01L20C00C00C
    2019,  // imageAtomicCompSwap_00y00C00C00C
    2021,  // imageAtomicCompSwap_01H00C00C00C
    2023,  // imageAtomicCompSwap_01Q00C00C00C
    2025,  // imageAtomicCompSwap_00s20C00C00C
    2027,  // imageAtomicCompSwap_01B20C00C00C
    2029,  // imageAtomicCompSwap_01K20C00C00C
    2031,  // imageAtomicCompSwap_00w20C00C00C
    2033,  // imageAtomicCompSwap_01F20C00C00C
    2035,  // imageAtomicCompSwap_01O20C00C00C
    2037,  // imageAtomicCompSwap_00x10C00C00C
    2039,  // imageAtomicCompSwap_01G10C00C00C
    2041,  // imageAtomicCompSwap_01P10C00C00C
    2043,  // imageAtomicCompSwap_00u10C00C00C00C
    2045,  // imageAtomicCompSwap_01D10C00C00C00C
    2047,  // imageAtomicCompSwap_01M10C00C00C00C
    2049,  // imageAtomicCompSwap_00v20C00C00C00C
    2051,  // imageAtomicCompSwap_01E20C00C00C00C
    2053,  // imageAtomicCompSwap_01N20C00C00C00C
    2055,  // pixelLocalLoadANGLE_01R
    2056,  // pixelLocalLoadANGLE_01S
    2057,  // pixelLocalLoadANGLE_01T
    2058,  // pixelLocalStoreANGLE_01R30B
    2059,  // pixelLocalStoreANGLE_01S30C
    2060,  // pixelLocalStoreANGLE_01T30D
    2061,  // beginInvocationInterlockNV_
    2062,  // endInvocationInterlockNV_
    2063,  // beginFragmentShaderOrderingINTEL_
    2064,  // beginInvocationInterlockARB_
    2065,  // endInvocationInterlockARB_
    2066,  // memoryBarrier_
    2067,  // memoryBarrierAtomicCounter_
    2068,  // memoryBarrierBuffer_
    2069,  // memoryBarrierImage_
    2070,  // barrier_
    2074,  // memoryBarrierShared_
    2075,  // groupMemoryBarrier_
    2076,  // EmitVertex_
    2079,  // EndPrimitive_
    2082,  // subpassLoad_01U
    2083,  // subpassLoad_01V
    2084,  // subpassLoad_01W
    2085,  // numSamples_
    2086,  // samplePosition_00D
    2087,  // interpolateAtCenter_00B
    2088,  // interpolateAtCenter_10B
    2089,  // interpolateAtCenter_20B
    2090,  // interpolateAtCenter_30B
    2091,  // saturate_00B
    2092,  // saturate_10B
    2093,  // saturate_20B
    2094,  // saturate_30B
    2095,  // gl_DepthRangeParameters
    2096,  // gl_DepthRange
    2097,  // gl_NumSamples
    2099,  // gl_MaxVertexAttribs
    2100,  // gl_MaxVertexUniformVectors
    2101,  // gl_MaxVertexTextureImageUnits
    2102,  // gl_MaxCombinedTextureImageUnits
    2103,  // gl_MaxTextureImageUnits
    2104,  // gl_MaxFragmentUniformVectors
    2105,  // gl_MaxVaryingVectors
    2106,  // gl_MaxDrawBuffers
    2107,  // gl_MaxDualSourceDrawBuffersEXT
    2108,  // gl_MaxVertexOutputVectors
    2109,  // gl_MaxFragmentInputVectors
    2110,  // gl_MinProgramTexelOffset
    2111,  // gl_MaxProgramTexelOffset
    2112,  // gl_MaxImageUnits
    2113,  // gl_MaxVertexImageUniforms
    2114,  // gl_MaxFragmentImageUniforms
    2115,  // gl_MaxComputeImageUniforms
    2116,  // gl_MaxCombinedImageUniforms
    2117,  // gl_MaxCombinedShaderOutputResources
    2118,  // gl_MaxComputeWorkGroupCount
    2119,  // gl_MaxComputeWorkGroupSize
    2120,  // gl_MaxComputeUniformComponents
    2121,  // gl_MaxComputeTextureImageUnits
    2122,  // gl_MaxComputeAtomicCounters
    2123,  // gl_MaxComputeAtomicCounterBuffers
    2124,  // gl_MaxVertexAtomicCounters
    2125,  // gl_MaxFragmentAtomicCounters
    2126,  // gl_MaxCombinedAtomicCounters
    2127,  // gl_MaxAtomicCounterBindings
    2128,  // gl_MaxVertexAtomicCounterBuffers
    2129,  // gl_MaxFragmentAtomicCounterBuffers
    2130,  // gl_MaxCombinedAtomicCounterBuffers
    2131,  // gl_MaxAtomicCounterBufferSize
    2132,  // gl_MaxGeometryInputComponents
    2135,  // gl_MaxGeometryOutputComponents
    2138,  // gl_MaxGeometryImageUniforms
    2141,  // gl_MaxGeometryTextureImageUnits
    2144,  // gl_MaxGeometryOutputVertices
    2147,  // gl_MaxGeometryTotalOutputComponents
    2150,  // gl_MaxGeometryUniformComponents
    2153,  // gl_MaxGeometryAtomicCounters
    2156,  // gl_MaxGeometryAtomicCounterBuffers
    2159,  // gl_MaxTessControlInputComponents
    2162,  // gl_MaxTessControlOutputComponents
    2165,  // gl_MaxTessControlTextureImageUnits
    2168,  // gl_MaxTessControlUniformComponents
    2171,  // gl_MaxTessControlTotalOutputComponents
    2174,  // gl_MaxTessControlImageUniforms
    2177,  // gl_MaxTessControlAtomicCounters
    2180,  // gl_MaxTessControlAtomicCounterBuffers
    2183,  // gl_MaxTessPatchComponents
    2186,  // gl_MaxPatchVertices
    2189,  // gl_MaxTessGenLevel
    2192,  // gl_MaxTessEvaluationInputComponents
    2195,  // gl_MaxTessEvaluationOutputComponents
    2198,  // gl_MaxTessEvaluationTextureImageUnits
    2201,  // gl_MaxTessEvaluationUniformComponents
    2204,  // gl_MaxTessEvaluationImageUniforms
    2207,  // gl_MaxTessEvaluationAtomicCounters
    2210,  // gl_MaxTessEvaluationAtomicCounterBuffers
    2213,  // gl_MaxSamples
    2215,  // gl_MaxClipDistances
    2218,  // gl_MaxCullDistances
    2220,  // gl_MaxCombinedClipAndCullDistances
    2222,  // gl_FragCoord
    2224,  // gl_FrontFacing
    2225,  // gl_PointCoord
    2226,  // gl_FragColor
    2227,  // gl_FragData
    2228,  // gl_FragDepth
    2229,  // gl_HelperInvocation
    2230,  // gl_SecondaryFragColorEXT
    2231,  // gl_SecondaryFragDataEXT
    2232,  // gl_FragDepthEXT
    2233,  // gl_LastFragData
    2236,  // gl_LastFragColor
    2237,  // gl_LastFragColorARM
    2238,  // gl_LastFragDepthARM
    2239,  // gl_LastFragStencilARM
    2240,  // gl_PrimitiveID
    2252,  // gl_Layer
    2259,  // gl_SampleID
    2261,  // gl_SamplePosition
    2263,  // gl_SampleMaskIn
    2265,  // gl_SampleMask
    2267,  // gl_Position
    2277,  // gl_PointSize
    2279,  // gl_InstanceID
    2280,  // gl_InstanceIndex
    2281,  // gl_VertexID
    2282,  // gl_VertexIndex
    2283,  // gl_DrawID
    2284,  // gl_BaseVertex
    2285,  // gl_BaseInstance
    2286,  // angle_BaseVertex
    2287,  // angle_BaseInstance
    2288,  // gl_ClipDistance
    2291,  // gl_NumWorkGroups
    2292,  // gl_WorkGroupSize
    2293,  // gl_WorkGroupID
    2294,  // gl_LocalInvocationID
    2295,  // gl_GlobalInvocationID
    2296,  // gl_LocalInvocationIndex
    2297,  // gl_PrimitiveIDIn
    2300,  // gl_InvocationID
    2306,  // gl_PerVertex
    2315,  // gl_in
    2324,  // gl_PatchVerticesIn
    2330,  // gl_TessLevelOuter
    2336,  // gl_TessLevelInner
    2342,  // gl_out
    2348,  // gl_BoundingBox
    2351,  // gl_BoundingBoxEXT
    2354,  // gl_BoundingBoxOES
    2357,  // gl_TessCoord
    2358,  // gl_ViewID_OVR
    2359,  // gl_CullDistance
};

using Ext = TExtension;

// Flat array of all unmangled name identifiers.
constexpr UnmangledEntry unmangled[] = {
    {"radians", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 0, Shader::ALL},
    {"degrees", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 0, Shader::ALL},
    {"sin", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 0, Shader::ALL},
    {"cos", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 0, Shader::ALL},
    {"tan", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 0, Shader::ALL},
    {"asin", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 0, Shader::ALL},
    {"acos", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 0, Shader::ALL},
    {"atan", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 0, Shader::ALL},
    {"sinh", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::ALL},
    {"cosh", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::ALL},
    {"tanh", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::ALL},
    {"asinh", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::ALL},
    {"acosh", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::ALL},
    {"atanh", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::ALL},
    {"pow", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 0, Shader::ALL},
    {"exp", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 0, Shader::ALL},
    {"log", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 0, Shader::ALL},
    {"exp2", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 0, Shader::ALL},
    {"log2", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 0, Shader::ALL},
    {"sqrt", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 0, Shader::ALL},
    {"inversesqrt", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 0, Shader::ALL},
    {"abs", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::ALL},
    {"sign", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::ALL},
    {"floor", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 0, Shader::ALL},
    {"trunc", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::ALL},
    {"round", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::ALL},
    {"roundEven", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::ALL},
    {"ceil", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 0, Shader::ALL},
    {"fract", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 0, Shader::ALL},
    {"mod", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 0, Shader::ALL},
    {"min", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::ALL},
    {"max", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::ALL},
    {"clamp", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::ALL},
    {"mix", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 310, Shader::ALL},
    {"step", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 0, Shader::ALL},
    {"smoothstep", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 0, Shader::ALL},
    {"modf", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::ALL},
    {"isnan", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::ALL},
    {"isinf", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::ALL},
    {"floatBitsToInt", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::ALL},
    {"floatBitsToUint", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::ALL},
    {"intBitsToFloat", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::ALL},
    {"uintBitsToFloat", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::ALL},
    {"fma", std::array<TExtension, 2>{{Ext::EXT_gpu_shader5, Ext::OES_gpu_shader5}}, 310,
     Shader::ALL},
    {"frexp", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 310, Shader::ALL},
    {"ldexp", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 310, Shader::ALL},
    {"packSnorm2x16", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::ALL},
    {"packHalf2x16", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::ALL},
    {"unpackSnorm2x16", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::ALL},
    {"unpackHalf2x16", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::ALL},
    {"packUnorm2x16", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::ALL},
    {"unpackUnorm2x16", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::ALL},
    {"packUnorm4x8", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 310, Shader::ALL},
    {"packSnorm4x8", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 310, Shader::ALL},
    {"unpackUnorm4x8", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 310, Shader::ALL},
    {"unpackSnorm4x8", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 310, Shader::ALL},
    {"length", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 0, Shader::ALL},
    {"distance", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 0, Shader::ALL},
    {"dot", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 0, Shader::ALL},
    {"cross", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 0, Shader::ALL},
    {"normalize", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 0, Shader::ALL},
    {"faceforward", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 0, Shader::ALL},
    {"reflect", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 0, Shader::ALL},
    {"refract", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 0, Shader::ALL},
    {"matrixCompMult", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::ALL},
    {"outerProduct", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::ALL},
    {"transpose", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::ALL},
    {"determinant", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::ALL},
    {"inverse", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::ALL},
    {"lessThan", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::ALL},
    {"lessThanEqual", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::ALL},
    {"greaterThan", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::ALL},
    {"greaterThanEqual", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::ALL},
    {"equal", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 0, Shader::ALL},
    {"notEqual", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 0, Shader::ALL},
    {"any", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 0, Shader::ALL},
    {"all", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 0, Shader::ALL},
    {"not", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 0, Shader::ALL},
    {"bitfieldExtract", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 310, Shader::ALL},
    {"bitfieldInsert", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 310, Shader::ALL},
    {"bitfieldReverse", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 310, Shader::ALL},
    {"bitCount", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 310, Shader::ALL},
    {"findLSB", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 310, Shader::ALL},
    {"findMSB", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 310, Shader::ALL},
    {"uaddCarry", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 310, Shader::ALL},
    {"usubBorrow", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 310, Shader::ALL},
    {"umulExtended", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 310, Shader::ALL},
    {"imulExtended", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 310, Shader::ALL},
    {"texture2D", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 100, Shader::ALL},
    {"texture2DProj", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 100, Shader::ALL},
    {"textureCube", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 100, Shader::ALL},
    {"texture3D", std::array<TExtension, 1>{{Ext::OES_texture_3D}}, 100, Shader::FRAGMENT},
    {"texture3DProj", std::array<TExtension, 1>{{Ext::OES_texture_3D}}, 100, Shader::FRAGMENT},
    {"shadow2DEXT", std::array<TExtension, 1>{{Ext::EXT_shadow_samplers}}, 100, Shader::ALL},
    {"shadow2DProjEXT", std::array<TExtension, 1>{{Ext::EXT_shadow_samplers}}, 100, Shader::ALL},
    {"texture2DRect", std::array<TExtension, 1>{{Ext::ARB_texture_rectangle}}, 100, Shader::ALL},
    {"texture2DRectProj", std::array<TExtension, 1>{{Ext::ARB_texture_rectangle}}, 100,
     Shader::ALL},
    {"texture2DGradEXT", std::array<TExtension, 1>{{Ext::EXT_shader_texture_lod}}, 100,
     Shader::ALL},
    {"texture2DProjGradEXT", std::array<TExtension, 1>{{Ext::EXT_shader_texture_lod}}, 100,
     Shader::ALL},
    {"textureCubeGradEXT", std::array<TExtension, 1>{{Ext::EXT_shader_texture_lod}}, 100,
     Shader::ALL},
    {"textureVideoWEBGL", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 100, Shader::ALL},
    {"texture3DLod", std::array<TExtension, 1>{{Ext::OES_texture_3D}}, 100, Shader::ALL},
    {"texture3DProjLod", std::array<TExtension, 1>{{Ext::OES_texture_3D}}, 100, Shader::ALL},
    {"texture2DLod", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 100, Shader::VERTEX},
    {"texture2DProjLod", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 100, Shader::VERTEX},
    {"textureCubeLod", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 100, Shader::VERTEX},
    {"texture2DLodEXT", std::array<TExtension, 1>{{Ext::EXT_shader_texture_lod}}, 100,
     Shader::FRAGMENT},
    {"texture2DProjLodEXT", std::array<TExtension, 1>{{Ext::EXT_shader_texture_lod}}, 100,
     Shader::FRAGMENT},
    {"textureCubeLodEXT", std::array<TExtension, 1>{{Ext::EXT_shader_texture_lod}}, 100,
     Shader::FRAGMENT},
    {"texture", std::array<TExtension, 1>{{Ext::OES_EGL_image_external_essl3}}, 300,
     Shader::FRAGMENT},
    {"textureProj", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::ALL},
    {"textureLod",
     std::array<TExtension, 2>{{Ext::OES_texture_cube_map_array, Ext::EXT_texture_cube_map_array}},
     310, Shader::ALL},
    {"textureSize", std::array<TExtension, 1>{{Ext::OES_EGL_image_external_essl3}}, 300,
     Shader::ALL},
    {"textureProjLod", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::ALL},
    {"texelFetch", std::array<TExtension, 1>{{Ext::OES_EGL_image_external_essl3}}, 300,
     Shader::ALL},
    {"textureGrad",
     std::array<TExtension, 2>{{Ext::OES_texture_cube_map_array, Ext::EXT_texture_cube_map_array}},
     310, Shader::ALL},
    {"textureProjGrad", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::ALL},
    {"textureOffset", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::ALL},
    {"textureProjOffset", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::ALL},
    {"textureLodOffset", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::ALL},
    {"textureProjLodOffset", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::ALL},
    {"texelFetchOffset", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::ALL},
    {"textureGradOffset", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::ALL},
    {"textureProjGradOffset", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::ALL},
    {"textureGather", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 310, Shader::ALL},
    {"textureGatherOffset", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 310, Shader::ALL},
    {"textureGatherOffsets",
     std::array<TExtension, 2>{{Ext::EXT_gpu_shader5, Ext::OES_gpu_shader5}}, 310, Shader::ALL},
    {"textureQueryLOD", std::array<TExtension, 1>{{Ext::EXT_texture_query_lod}}, 310,
     Shader::FRAGMENT},
    {"rgb_2_yuv", std::array<TExtension, 1>{{Ext::EXT_YUV_target}}, 300, Shader::ALL},
    {"yuv_2_rgb", std::array<TExtension, 1>{{Ext::EXT_YUV_target}}, 300, Shader::ALL},
    {"dFdx", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::FRAGMENT},
    {"dFdy", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::FRAGMENT},
    {"fwidth", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 300, Shader::FRAGMENT},
    {"interpolateAtCentroid",
     std::array<TExtension, 1>{{Ext::OES_shader_multisample_interpolation}}, 300, Shader::FRAGMENT},
    {"interpolateAtSample", std::array<TExtension, 1>{{Ext::OES_shader_multisample_interpolation}},
     300, Shader::FRAGMENT},
    {"interpolateAtOffset", std::array<TExtension, 1>{{Ext::OES_shader_multisample_interpolation}},
     300, Shader::FRAGMENT},
    {"atomicCounter", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 310, Shader::ALL},
    {"atomicCounterIncrement", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 310, Shader::ALL},
    {"atomicCounterDecrement", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 310, Shader::ALL},
    {"atomicAdd", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 310, Shader::ALL},
    {"atomicMin", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 310, Shader::ALL},
    {"atomicMax", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 310, Shader::ALL},
    {"atomicAnd", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 310, Shader::ALL},
    {"atomicOr", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 310, Shader::ALL},
    {"atomicXor", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 310, Shader::ALL},
    {"atomicExchange", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 310, Shader::ALL},
    {"atomicCompSwap", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 310, Shader::ALL},
    {"imageSize", std::array<TExtension, 2>{{Ext::OES_texture_buffer, Ext::EXT_texture_buffer}},
     310, Shader::ALL},
    {"imageStore", std::array<TExtension, 2>{{Ext::OES_texture_buffer, Ext::EXT_texture_buffer}},
     310, Shader::ALL},
    {"imageLoad", std::array<TExtension, 2>{{Ext::OES_texture_buffer, Ext::EXT_texture_buffer}},
     310, Shader::ALL},
    {"imageAtomicAdd", std::array<TExtension, 1>{{Ext::OES_shader_image_atomic}}, 310, Shader::ALL},
    {"imageAtomicMin", std::array<TExtension, 1>{{Ext::OES_shader_image_atomic}}, 310, Shader::ALL},
    {"imageAtomicMax", std::array<TExtension, 1>{{Ext::OES_shader_image_atomic}}, 310, Shader::ALL},
    {"imageAtomicAnd", std::array<TExtension, 1>{{Ext::OES_shader_image_atomic}}, 310, Shader::ALL},
    {"imageAtomicOr", std::array<TExtension, 1>{{Ext::OES_shader_image_atomic}}, 310, Shader::ALL},
    {"imageAtomicXor", std::array<TExtension, 1>{{Ext::OES_shader_image_atomic}}, 310, Shader::ALL},
    {"imageAtomicExchange", std::array<TExtension, 1>{{Ext::OES_shader_image_atomic}}, 310,
     Shader::ALL},
    {"imageAtomicCompSwap", std::array<TExtension, 1>{{Ext::OES_shader_image_atomic}}, 310,
     Shader::ALL},
    {"pixelLocalLoadANGLE", std::array<TExtension, 1>{{Ext::ANGLE_shader_pixel_local_storage}}, 300,
     Shader::ALL},
    {"pixelLocalStoreANGLE", std::array<TExtension, 1>{{Ext::ANGLE_shader_pixel_local_storage}},
     300, Shader::ALL},
    {"beginInvocationInterlockNV", std::array<TExtension, 1>{{Ext::UNDEFINED}},
     kESSLInternalBackendBuiltIns, Shader::ALL},
    {"endInvocationInterlockNV", std::array<TExtension, 1>{{Ext::UNDEFINED}},
     kESSLInternalBackendBuiltIns, Shader::ALL},
    {"beginFragmentShaderOrderingINTEL", std::array<TExtension, 1>{{Ext::UNDEFINED}},
     kESSLInternalBackendBuiltIns, Shader::ALL},
    {"beginInvocationInterlockARB", std::array<TExtension, 1>{{Ext::UNDEFINED}},
     kESSLInternalBackendBuiltIns, Shader::ALL},
    {"endInvocationInterlockARB", std::array<TExtension, 1>{{Ext::UNDEFINED}},
     kESSLInternalBackendBuiltIns, Shader::ALL},
    {"memoryBarrier", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 310, Shader::ALL},
    {"memoryBarrierAtomicCounter", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 310, Shader::ALL},
    {"memoryBarrierBuffer", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 310, Shader::ALL},
    {"memoryBarrierImage", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 310, Shader::ALL},
    {"barrier", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 320, Shader::TESS_CONTROL_EXT},
    {"memoryBarrierShared", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 310, Shader::COMPUTE},
    {"groupMemoryBarrier", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 310, Shader::COMPUTE},
    {"EmitVertex", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 320, Shader::GEOMETRY},
    {"EndPrimitive", std::array<TExtension, 1>{{Ext::UNDEFINED}}, 320, Shader::GEOMETRY},
    {"subpassLoad", std::array<TExtension, 1>{{Ext::UNDEFINED}}, kESSLInternalBackendBuiltIns,
     Shader::ALL},
    {"numSamples", std::array<TExtension, 1>{{Ext::UNDEFINED}}, kESSLInternalBackendBuiltIns,
     Shader::FRAGMENT},
    {"samplePosition", std::array<TExtension, 1>{{Ext::UNDEFINED}}, kESSLInternalBackendBuiltIns,
     Shader::FRAGMENT},
    {"interpolateAtCenter", std::array<TExtension, 1>{{Ext::UNDEFINED}},
     kESSLInternalBackendBuiltIns, Shader::FRAGMENT},
    {"saturate", std::array<TExtension, 1>{{Ext::UNDEFINED}}, kESSLInternalBackendBuiltIns,
     Shader::ALL}};

}  // namespace BuiltInArray

void TSymbolTable::initializeBuiltInVariables(sh::GLenum shaderType,
                                              ShShaderSpec spec,
                                              const ShBuiltInResources &resources)
{
    const TSourceLoc zeroSourceLoc             = {0, 0, 0, 0};
    TFieldList *fields_gl_DepthRangeParameters = new TFieldList();
    fields_gl_DepthRangeParameters->push_back(
        new TField(new TType(EbtFloat, EbpHigh, EvqGlobal, 1, 1), BuiltInName::near, zeroSourceLoc,
                   SymbolType::BuiltIn));
    fields_gl_DepthRangeParameters->push_back(
        new TField(new TType(EbtFloat, EbpHigh, EvqGlobal, 1, 1), BuiltInName::far, zeroSourceLoc,
                   SymbolType::BuiltIn));
    fields_gl_DepthRangeParameters->push_back(
        new TField(new TType(EbtFloat, EbpHigh, EvqGlobal, 1, 1), BuiltInName::diff, zeroSourceLoc,
                   SymbolType::BuiltIn));
    TStructure *gl_DepthRangeParameters = new TStructure(
        BuiltInId::gl_DepthRangeParameters, BuiltInName::gl_DepthRangeParameters,
        std::array<TExtension, 1u>{{TExtension::UNDEFINED}}, fields_gl_DepthRangeParameters);
    m_gl_DepthRangeParameters = gl_DepthRangeParameters;
    TType *type_gl_DepthRange = new TType(gl_DepthRangeParameters, false);
    type_gl_DepthRange->setQualifier(EvqUniform);
    type_gl_DepthRange->realize();
    m_gl_DepthRange =
        new TVariable(BuiltInId::gl_DepthRange, BuiltInName::gl_DepthRange, SymbolType::BuiltIn,
                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}}, type_gl_DepthRange);
    m_gl_MaxVertexAttribs =
        new TVariable(BuiltInId::gl_MaxVertexAttribs, BuiltInName::gl_MaxVertexAttribs,
                      SymbolType::BuiltIn, std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxVertexAttribs);
        static_cast<TVariable *>(m_gl_MaxVertexAttribs)->shareConstPointer(unionArray);
    }
    m_gl_MaxVertexUniformVectors = new TVariable(
        BuiltInId::gl_MaxVertexUniformVectors, BuiltInName::gl_MaxVertexUniformVectors,
        SymbolType::BuiltIn, std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
        StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxVertexUniformVectors);
        static_cast<TVariable *>(m_gl_MaxVertexUniformVectors)->shareConstPointer(unionArray);
    }
    m_gl_MaxVertexTextureImageUnits = new TVariable(
        BuiltInId::gl_MaxVertexTextureImageUnits, BuiltInName::gl_MaxVertexTextureImageUnits,
        SymbolType::BuiltIn, std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
        StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxVertexTextureImageUnits);
        static_cast<TVariable *>(m_gl_MaxVertexTextureImageUnits)->shareConstPointer(unionArray);
    }
    m_gl_MaxCombinedTextureImageUnits = new TVariable(
        BuiltInId::gl_MaxCombinedTextureImageUnits, BuiltInName::gl_MaxCombinedTextureImageUnits,
        SymbolType::BuiltIn, std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
        StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxCombinedTextureImageUnits);
        static_cast<TVariable *>(m_gl_MaxCombinedTextureImageUnits)->shareConstPointer(unionArray);
    }
    m_gl_MaxTextureImageUnits =
        new TVariable(BuiltInId::gl_MaxTextureImageUnits, BuiltInName::gl_MaxTextureImageUnits,
                      SymbolType::BuiltIn, std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxTextureImageUnits);
        static_cast<TVariable *>(m_gl_MaxTextureImageUnits)->shareConstPointer(unionArray);
    }
    m_gl_MaxFragmentUniformVectors = new TVariable(
        BuiltInId::gl_MaxFragmentUniformVectors, BuiltInName::gl_MaxFragmentUniformVectors,
        SymbolType::BuiltIn, std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
        StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxFragmentUniformVectors);
        static_cast<TVariable *>(m_gl_MaxFragmentUniformVectors)->shareConstPointer(unionArray);
    }
    m_gl_MaxVaryingVectors =
        new TVariable(BuiltInId::gl_MaxVaryingVectors, BuiltInName::gl_MaxVaryingVectors,
                      SymbolType::BuiltIn, std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxVaryingVectors);
        static_cast<TVariable *>(m_gl_MaxVaryingVectors)->shareConstPointer(unionArray);
    }
    m_gl_MaxDrawBuffers =
        new TVariable(BuiltInId::gl_MaxDrawBuffers, BuiltInName::gl_MaxDrawBuffers,
                      SymbolType::BuiltIn, std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxDrawBuffers);
        static_cast<TVariable *>(m_gl_MaxDrawBuffers)->shareConstPointer(unionArray);
    }
    m_gl_MaxDualSourceDrawBuffersEXT = new TVariable(
        BuiltInId::gl_MaxDualSourceDrawBuffersEXT, BuiltInName::gl_MaxDualSourceDrawBuffersEXT,
        SymbolType::BuiltIn, std::array<TExtension, 1u>{{TExtension::EXT_blend_func_extended}},
        StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxDualSourceDrawBuffers);
        static_cast<TVariable *>(m_gl_MaxDualSourceDrawBuffersEXT)->shareConstPointer(unionArray);
    }
    m_gl_MaxVertexOutputVectors =
        new TVariable(BuiltInId::gl_MaxVertexOutputVectors, BuiltInName::gl_MaxVertexOutputVectors,
                      SymbolType::BuiltIn, std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxVertexOutputVectors);
        static_cast<TVariable *>(m_gl_MaxVertexOutputVectors)->shareConstPointer(unionArray);
    }
    m_gl_MaxFragmentInputVectors = new TVariable(
        BuiltInId::gl_MaxFragmentInputVectors, BuiltInName::gl_MaxFragmentInputVectors,
        SymbolType::BuiltIn, std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
        StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxFragmentInputVectors);
        static_cast<TVariable *>(m_gl_MaxFragmentInputVectors)->shareConstPointer(unionArray);
    }
    m_gl_MinProgramTexelOffset =
        new TVariable(BuiltInId::gl_MinProgramTexelOffset, BuiltInName::gl_MinProgramTexelOffset,
                      SymbolType::BuiltIn, std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MinProgramTexelOffset);
        static_cast<TVariable *>(m_gl_MinProgramTexelOffset)->shareConstPointer(unionArray);
    }
    m_gl_MaxProgramTexelOffset =
        new TVariable(BuiltInId::gl_MaxProgramTexelOffset, BuiltInName::gl_MaxProgramTexelOffset,
                      SymbolType::BuiltIn, std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxProgramTexelOffset);
        static_cast<TVariable *>(m_gl_MaxProgramTexelOffset)->shareConstPointer(unionArray);
    }
    m_gl_MaxImageUnits =
        new TVariable(BuiltInId::gl_MaxImageUnits, BuiltInName::gl_MaxImageUnits,
                      SymbolType::BuiltIn, std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxImageUnits);
        static_cast<TVariable *>(m_gl_MaxImageUnits)->shareConstPointer(unionArray);
    }
    m_gl_MaxVertexImageUniforms =
        new TVariable(BuiltInId::gl_MaxVertexImageUniforms, BuiltInName::gl_MaxVertexImageUniforms,
                      SymbolType::BuiltIn, std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxVertexImageUniforms);
        static_cast<TVariable *>(m_gl_MaxVertexImageUniforms)->shareConstPointer(unionArray);
    }
    m_gl_MaxFragmentImageUniforms = new TVariable(
        BuiltInId::gl_MaxFragmentImageUniforms, BuiltInName::gl_MaxFragmentImageUniforms,
        SymbolType::BuiltIn, std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
        StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxFragmentImageUniforms);
        static_cast<TVariable *>(m_gl_MaxFragmentImageUniforms)->shareConstPointer(unionArray);
    }
    m_gl_MaxComputeImageUniforms = new TVariable(
        BuiltInId::gl_MaxComputeImageUniforms, BuiltInName::gl_MaxComputeImageUniforms,
        SymbolType::BuiltIn, std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
        StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxComputeImageUniforms);
        static_cast<TVariable *>(m_gl_MaxComputeImageUniforms)->shareConstPointer(unionArray);
    }
    m_gl_MaxCombinedImageUniforms = new TVariable(
        BuiltInId::gl_MaxCombinedImageUniforms, BuiltInName::gl_MaxCombinedImageUniforms,
        SymbolType::BuiltIn, std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
        StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxCombinedImageUniforms);
        static_cast<TVariable *>(m_gl_MaxCombinedImageUniforms)->shareConstPointer(unionArray);
    }
    m_gl_MaxCombinedShaderOutputResources =
        new TVariable(BuiltInId::gl_MaxCombinedShaderOutputResources,
                      BuiltInName::gl_MaxCombinedShaderOutputResources, SymbolType::BuiltIn,
                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxCombinedShaderOutputResources);
        static_cast<TVariable *>(m_gl_MaxCombinedShaderOutputResources)
            ->shareConstPointer(unionArray);
    }
    m_gl_MaxComputeWorkGroupCount = new TVariable(
        BuiltInId::gl_MaxComputeWorkGroupCount, BuiltInName::gl_MaxComputeWorkGroupCount,
        SymbolType::BuiltIn, std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
        StaticType::Get<EbtInt, EbpHigh, EvqConst, 3, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[3];
        for (size_t index = 0u; index < 3; ++index)
        {
            unionArray[index].setIConst(resources.MaxComputeWorkGroupCount[index]);
        }
        static_cast<TVariable *>(m_gl_MaxComputeWorkGroupCount)->shareConstPointer(unionArray);
    }
    m_gl_MaxComputeWorkGroupSize = new TVariable(
        BuiltInId::gl_MaxComputeWorkGroupSize, BuiltInName::gl_MaxComputeWorkGroupSize,
        SymbolType::BuiltIn, std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
        StaticType::Get<EbtInt, EbpHigh, EvqConst, 3, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[3];
        for (size_t index = 0u; index < 3; ++index)
        {
            unionArray[index].setIConst(resources.MaxComputeWorkGroupSize[index]);
        }
        static_cast<TVariable *>(m_gl_MaxComputeWorkGroupSize)->shareConstPointer(unionArray);
    }
    m_gl_MaxComputeUniformComponents = new TVariable(
        BuiltInId::gl_MaxComputeUniformComponents, BuiltInName::gl_MaxComputeUniformComponents,
        SymbolType::BuiltIn, std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
        StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxComputeUniformComponents);
        static_cast<TVariable *>(m_gl_MaxComputeUniformComponents)->shareConstPointer(unionArray);
    }
    m_gl_MaxComputeTextureImageUnits = new TVariable(
        BuiltInId::gl_MaxComputeTextureImageUnits, BuiltInName::gl_MaxComputeTextureImageUnits,
        SymbolType::BuiltIn, std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
        StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxComputeTextureImageUnits);
        static_cast<TVariable *>(m_gl_MaxComputeTextureImageUnits)->shareConstPointer(unionArray);
    }
    m_gl_MaxComputeAtomicCounters = new TVariable(
        BuiltInId::gl_MaxComputeAtomicCounters, BuiltInName::gl_MaxComputeAtomicCounters,
        SymbolType::BuiltIn, std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
        StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxComputeAtomicCounters);
        static_cast<TVariable *>(m_gl_MaxComputeAtomicCounters)->shareConstPointer(unionArray);
    }
    m_gl_MaxComputeAtomicCounterBuffers =
        new TVariable(BuiltInId::gl_MaxComputeAtomicCounterBuffers,
                      BuiltInName::gl_MaxComputeAtomicCounterBuffers, SymbolType::BuiltIn,
                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxComputeAtomicCounterBuffers);
        static_cast<TVariable *>(m_gl_MaxComputeAtomicCounterBuffers)
            ->shareConstPointer(unionArray);
    }
    m_gl_MaxVertexAtomicCounters = new TVariable(
        BuiltInId::gl_MaxVertexAtomicCounters, BuiltInName::gl_MaxVertexAtomicCounters,
        SymbolType::BuiltIn, std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
        StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxVertexAtomicCounters);
        static_cast<TVariable *>(m_gl_MaxVertexAtomicCounters)->shareConstPointer(unionArray);
    }
    m_gl_MaxFragmentAtomicCounters = new TVariable(
        BuiltInId::gl_MaxFragmentAtomicCounters, BuiltInName::gl_MaxFragmentAtomicCounters,
        SymbolType::BuiltIn, std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
        StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxFragmentAtomicCounters);
        static_cast<TVariable *>(m_gl_MaxFragmentAtomicCounters)->shareConstPointer(unionArray);
    }
    m_gl_MaxCombinedAtomicCounters = new TVariable(
        BuiltInId::gl_MaxCombinedAtomicCounters, BuiltInName::gl_MaxCombinedAtomicCounters,
        SymbolType::BuiltIn, std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
        StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxCombinedAtomicCounters);
        static_cast<TVariable *>(m_gl_MaxCombinedAtomicCounters)->shareConstPointer(unionArray);
    }
    m_gl_MaxAtomicCounterBindings = new TVariable(
        BuiltInId::gl_MaxAtomicCounterBindings, BuiltInName::gl_MaxAtomicCounterBindings,
        SymbolType::BuiltIn, std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
        StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxAtomicCounterBindings);
        static_cast<TVariable *>(m_gl_MaxAtomicCounterBindings)->shareConstPointer(unionArray);
    }
    m_gl_MaxVertexAtomicCounterBuffers = new TVariable(
        BuiltInId::gl_MaxVertexAtomicCounterBuffers, BuiltInName::gl_MaxVertexAtomicCounterBuffers,
        SymbolType::BuiltIn, std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
        StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxVertexAtomicCounterBuffers);
        static_cast<TVariable *>(m_gl_MaxVertexAtomicCounterBuffers)->shareConstPointer(unionArray);
    }
    m_gl_MaxFragmentAtomicCounterBuffers =
        new TVariable(BuiltInId::gl_MaxFragmentAtomicCounterBuffers,
                      BuiltInName::gl_MaxFragmentAtomicCounterBuffers, SymbolType::BuiltIn,
                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxFragmentAtomicCounterBuffers);
        static_cast<TVariable *>(m_gl_MaxFragmentAtomicCounterBuffers)
            ->shareConstPointer(unionArray);
    }
    m_gl_MaxCombinedAtomicCounterBuffers =
        new TVariable(BuiltInId::gl_MaxCombinedAtomicCounterBuffers,
                      BuiltInName::gl_MaxCombinedAtomicCounterBuffers, SymbolType::BuiltIn,
                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxCombinedAtomicCounterBuffers);
        static_cast<TVariable *>(m_gl_MaxCombinedAtomicCounterBuffers)
            ->shareConstPointer(unionArray);
    }
    m_gl_MaxAtomicCounterBufferSize = new TVariable(
        BuiltInId::gl_MaxAtomicCounterBufferSize, BuiltInName::gl_MaxAtomicCounterBufferSize,
        SymbolType::BuiltIn, std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
        StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxAtomicCounterBufferSize);
        static_cast<TVariable *>(m_gl_MaxAtomicCounterBufferSize)->shareConstPointer(unionArray);
    }
    m_gl_MaxGeometryInputComponents =
        new TVariable(BuiltInId::gl_MaxGeometryInputComponents,
                      BuiltInName::gl_MaxGeometryInputComponents, SymbolType::BuiltIn,
                      std::array<TExtension, 2u>{
                          {TExtension::EXT_geometry_shader, TExtension::OES_geometry_shader}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxGeometryInputComponents);
        static_cast<TVariable *>(m_gl_MaxGeometryInputComponents)->shareConstPointer(unionArray);
    }
    m_gl_MaxGeometryInputComponentsES3_2 = new TVariable(
        BuiltInId::gl_MaxGeometryInputComponentsES3_2, BuiltInName::gl_MaxGeometryInputComponents,
        SymbolType::BuiltIn, std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
        StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxGeometryInputComponents);
        static_cast<TVariable *>(m_gl_MaxGeometryInputComponentsES3_2)
            ->shareConstPointer(unionArray);
    }
    m_gl_MaxGeometryOutputComponents =
        new TVariable(BuiltInId::gl_MaxGeometryOutputComponents,
                      BuiltInName::gl_MaxGeometryOutputComponents, SymbolType::BuiltIn,
                      std::array<TExtension, 2u>{
                          {TExtension::EXT_geometry_shader, TExtension::OES_geometry_shader}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxGeometryOutputComponents);
        static_cast<TVariable *>(m_gl_MaxGeometryOutputComponents)->shareConstPointer(unionArray);
    }
    m_gl_MaxGeometryOutputComponentsES3_2 = new TVariable(
        BuiltInId::gl_MaxGeometryOutputComponentsES3_2, BuiltInName::gl_MaxGeometryOutputComponents,
        SymbolType::BuiltIn, std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
        StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxGeometryOutputComponents);
        static_cast<TVariable *>(m_gl_MaxGeometryOutputComponentsES3_2)
            ->shareConstPointer(unionArray);
    }
    m_gl_MaxGeometryImageUniforms =
        new TVariable(BuiltInId::gl_MaxGeometryImageUniforms,
                      BuiltInName::gl_MaxGeometryImageUniforms, SymbolType::BuiltIn,
                      std::array<TExtension, 2u>{
                          {TExtension::EXT_geometry_shader, TExtension::OES_geometry_shader}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxGeometryImageUniforms);
        static_cast<TVariable *>(m_gl_MaxGeometryImageUniforms)->shareConstPointer(unionArray);
    }
    m_gl_MaxGeometryImageUniformsES3_2 = new TVariable(
        BuiltInId::gl_MaxGeometryImageUniformsES3_2, BuiltInName::gl_MaxGeometryImageUniforms,
        SymbolType::BuiltIn, std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
        StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxGeometryImageUniforms);
        static_cast<TVariable *>(m_gl_MaxGeometryImageUniformsES3_2)->shareConstPointer(unionArray);
    }
    m_gl_MaxGeometryTextureImageUnits =
        new TVariable(BuiltInId::gl_MaxGeometryTextureImageUnits,
                      BuiltInName::gl_MaxGeometryTextureImageUnits, SymbolType::BuiltIn,
                      std::array<TExtension, 2u>{
                          {TExtension::EXT_geometry_shader, TExtension::OES_geometry_shader}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxGeometryTextureImageUnits);
        static_cast<TVariable *>(m_gl_MaxGeometryTextureImageUnits)->shareConstPointer(unionArray);
    }
    m_gl_MaxGeometryTextureImageUnitsES3_2 =
        new TVariable(BuiltInId::gl_MaxGeometryTextureImageUnitsES3_2,
                      BuiltInName::gl_MaxGeometryTextureImageUnits, SymbolType::BuiltIn,
                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxGeometryTextureImageUnits);
        static_cast<TVariable *>(m_gl_MaxGeometryTextureImageUnitsES3_2)
            ->shareConstPointer(unionArray);
    }
    m_gl_MaxGeometryOutputVertices =
        new TVariable(BuiltInId::gl_MaxGeometryOutputVertices,
                      BuiltInName::gl_MaxGeometryOutputVertices, SymbolType::BuiltIn,
                      std::array<TExtension, 2u>{
                          {TExtension::EXT_geometry_shader, TExtension::OES_geometry_shader}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxGeometryOutputVertices);
        static_cast<TVariable *>(m_gl_MaxGeometryOutputVertices)->shareConstPointer(unionArray);
    }
    m_gl_MaxGeometryOutputVerticesES3_2 = new TVariable(
        BuiltInId::gl_MaxGeometryOutputVerticesES3_2, BuiltInName::gl_MaxGeometryOutputVertices,
        SymbolType::BuiltIn, std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
        StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxGeometryOutputVertices);
        static_cast<TVariable *>(m_gl_MaxGeometryOutputVerticesES3_2)
            ->shareConstPointer(unionArray);
    }
    m_gl_MaxGeometryTotalOutputComponents =
        new TVariable(BuiltInId::gl_MaxGeometryTotalOutputComponents,
                      BuiltInName::gl_MaxGeometryTotalOutputComponents, SymbolType::BuiltIn,
                      std::array<TExtension, 2u>{
                          {TExtension::EXT_geometry_shader, TExtension::OES_geometry_shader}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxGeometryTotalOutputComponents);
        static_cast<TVariable *>(m_gl_MaxGeometryTotalOutputComponents)
            ->shareConstPointer(unionArray);
    }
    m_gl_MaxGeometryTotalOutputComponentsES3_2 =
        new TVariable(BuiltInId::gl_MaxGeometryTotalOutputComponentsES3_2,
                      BuiltInName::gl_MaxGeometryTotalOutputComponents, SymbolType::BuiltIn,
                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxGeometryTotalOutputComponents);
        static_cast<TVariable *>(m_gl_MaxGeometryTotalOutputComponentsES3_2)
            ->shareConstPointer(unionArray);
    }
    m_gl_MaxGeometryUniformComponents =
        new TVariable(BuiltInId::gl_MaxGeometryUniformComponents,
                      BuiltInName::gl_MaxGeometryUniformComponents, SymbolType::BuiltIn,
                      std::array<TExtension, 2u>{
                          {TExtension::EXT_geometry_shader, TExtension::OES_geometry_shader}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxGeometryUniformComponents);
        static_cast<TVariable *>(m_gl_MaxGeometryUniformComponents)->shareConstPointer(unionArray);
    }
    m_gl_MaxGeometryUniformComponentsES3_2 =
        new TVariable(BuiltInId::gl_MaxGeometryUniformComponentsES3_2,
                      BuiltInName::gl_MaxGeometryUniformComponents, SymbolType::BuiltIn,
                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxGeometryUniformComponents);
        static_cast<TVariable *>(m_gl_MaxGeometryUniformComponentsES3_2)
            ->shareConstPointer(unionArray);
    }
    m_gl_MaxGeometryAtomicCounters =
        new TVariable(BuiltInId::gl_MaxGeometryAtomicCounters,
                      BuiltInName::gl_MaxGeometryAtomicCounters, SymbolType::BuiltIn,
                      std::array<TExtension, 2u>{
                          {TExtension::EXT_geometry_shader, TExtension::OES_geometry_shader}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxGeometryAtomicCounters);
        static_cast<TVariable *>(m_gl_MaxGeometryAtomicCounters)->shareConstPointer(unionArray);
    }
    m_gl_MaxGeometryAtomicCountersES3_2 = new TVariable(
        BuiltInId::gl_MaxGeometryAtomicCountersES3_2, BuiltInName::gl_MaxGeometryAtomicCounters,
        SymbolType::BuiltIn, std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
        StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxGeometryAtomicCounters);
        static_cast<TVariable *>(m_gl_MaxGeometryAtomicCountersES3_2)
            ->shareConstPointer(unionArray);
    }
    m_gl_MaxGeometryAtomicCounterBuffers =
        new TVariable(BuiltInId::gl_MaxGeometryAtomicCounterBuffers,
                      BuiltInName::gl_MaxGeometryAtomicCounterBuffers, SymbolType::BuiltIn,
                      std::array<TExtension, 2u>{
                          {TExtension::EXT_geometry_shader, TExtension::OES_geometry_shader}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxGeometryAtomicCounterBuffers);
        static_cast<TVariable *>(m_gl_MaxGeometryAtomicCounterBuffers)
            ->shareConstPointer(unionArray);
    }
    m_gl_MaxGeometryAtomicCounterBuffersES3_2 =
        new TVariable(BuiltInId::gl_MaxGeometryAtomicCounterBuffersES3_2,
                      BuiltInName::gl_MaxGeometryAtomicCounterBuffers, SymbolType::BuiltIn,
                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxGeometryAtomicCounterBuffers);
        static_cast<TVariable *>(m_gl_MaxGeometryAtomicCounterBuffersES3_2)
            ->shareConstPointer(unionArray);
    }
    m_gl_MaxTessControlInputComponents =
        new TVariable(BuiltInId::gl_MaxTessControlInputComponents,
                      BuiltInName::gl_MaxTessControlInputComponents, SymbolType::BuiltIn,
                      std::array<TExtension, 2u>{{TExtension::EXT_tessellation_shader,
                                                  TExtension::OES_tessellation_shader}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxTessControlInputComponents);
        static_cast<TVariable *>(m_gl_MaxTessControlInputComponents)->shareConstPointer(unionArray);
    }
    m_gl_MaxTessControlInputComponentsES3_2 =
        new TVariable(BuiltInId::gl_MaxTessControlInputComponentsES3_2,
                      BuiltInName::gl_MaxTessControlInputComponents, SymbolType::BuiltIn,
                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxTessControlInputComponents);
        static_cast<TVariable *>(m_gl_MaxTessControlInputComponentsES3_2)
            ->shareConstPointer(unionArray);
    }
    m_gl_MaxTessControlOutputComponents =
        new TVariable(BuiltInId::gl_MaxTessControlOutputComponents,
                      BuiltInName::gl_MaxTessControlOutputComponents, SymbolType::BuiltIn,
                      std::array<TExtension, 2u>{{TExtension::EXT_tessellation_shader,
                                                  TExtension::OES_tessellation_shader}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxTessControlOutputComponents);
        static_cast<TVariable *>(m_gl_MaxTessControlOutputComponents)
            ->shareConstPointer(unionArray);
    }
    m_gl_MaxTessControlOutputComponentsES3_2 =
        new TVariable(BuiltInId::gl_MaxTessControlOutputComponentsES3_2,
                      BuiltInName::gl_MaxTessControlOutputComponents, SymbolType::BuiltIn,
                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxTessControlOutputComponents);
        static_cast<TVariable *>(m_gl_MaxTessControlOutputComponentsES3_2)
            ->shareConstPointer(unionArray);
    }
    m_gl_MaxTessControlTextureImageUnits =
        new TVariable(BuiltInId::gl_MaxTessControlTextureImageUnits,
                      BuiltInName::gl_MaxTessControlTextureImageUnits, SymbolType::BuiltIn,
                      std::array<TExtension, 2u>{{TExtension::EXT_tessellation_shader,
                                                  TExtension::OES_tessellation_shader}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxTessControlTextureImageUnits);
        static_cast<TVariable *>(m_gl_MaxTessControlTextureImageUnits)
            ->shareConstPointer(unionArray);
    }
    m_gl_MaxTessControlTextureImageUnitsES3_2 =
        new TVariable(BuiltInId::gl_MaxTessControlTextureImageUnitsES3_2,
                      BuiltInName::gl_MaxTessControlTextureImageUnits, SymbolType::BuiltIn,
                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxTessControlTextureImageUnits);
        static_cast<TVariable *>(m_gl_MaxTessControlTextureImageUnitsES3_2)
            ->shareConstPointer(unionArray);
    }
    m_gl_MaxTessControlUniformComponents =
        new TVariable(BuiltInId::gl_MaxTessControlUniformComponents,
                      BuiltInName::gl_MaxTessControlUniformComponents, SymbolType::BuiltIn,
                      std::array<TExtension, 2u>{{TExtension::EXT_tessellation_shader,
                                                  TExtension::OES_tessellation_shader}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxTessControlUniformComponents);
        static_cast<TVariable *>(m_gl_MaxTessControlUniformComponents)
            ->shareConstPointer(unionArray);
    }
    m_gl_MaxTessControlUniformComponentsES3_2 =
        new TVariable(BuiltInId::gl_MaxTessControlUniformComponentsES3_2,
                      BuiltInName::gl_MaxTessControlUniformComponents, SymbolType::BuiltIn,
                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxTessControlUniformComponents);
        static_cast<TVariable *>(m_gl_MaxTessControlUniformComponentsES3_2)
            ->shareConstPointer(unionArray);
    }
    m_gl_MaxTessControlTotalOutputComponents =
        new TVariable(BuiltInId::gl_MaxTessControlTotalOutputComponents,
                      BuiltInName::gl_MaxTessControlTotalOutputComponents, SymbolType::BuiltIn,
                      std::array<TExtension, 2u>{{TExtension::EXT_tessellation_shader,
                                                  TExtension::OES_tessellation_shader}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxTessControlTotalOutputComponents);
        static_cast<TVariable *>(m_gl_MaxTessControlTotalOutputComponents)
            ->shareConstPointer(unionArray);
    }
    m_gl_MaxTessControlTotalOutputComponentsES3_2 =
        new TVariable(BuiltInId::gl_MaxTessControlTotalOutputComponentsES3_2,
                      BuiltInName::gl_MaxTessControlTotalOutputComponents, SymbolType::BuiltIn,
                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxTessControlTotalOutputComponents);
        static_cast<TVariable *>(m_gl_MaxTessControlTotalOutputComponentsES3_2)
            ->shareConstPointer(unionArray);
    }
    m_gl_MaxTessControlImageUniforms =
        new TVariable(BuiltInId::gl_MaxTessControlImageUniforms,
                      BuiltInName::gl_MaxTessControlImageUniforms, SymbolType::BuiltIn,
                      std::array<TExtension, 2u>{{TExtension::EXT_tessellation_shader,
                                                  TExtension::OES_tessellation_shader}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxTessControlImageUniforms);
        static_cast<TVariable *>(m_gl_MaxTessControlImageUniforms)->shareConstPointer(unionArray);
    }
    m_gl_MaxTessControlImageUniformsES3_2 = new TVariable(
        BuiltInId::gl_MaxTessControlImageUniformsES3_2, BuiltInName::gl_MaxTessControlImageUniforms,
        SymbolType::BuiltIn, std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
        StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxTessControlImageUniforms);
        static_cast<TVariable *>(m_gl_MaxTessControlImageUniformsES3_2)
            ->shareConstPointer(unionArray);
    }
    m_gl_MaxTessControlAtomicCounters =
        new TVariable(BuiltInId::gl_MaxTessControlAtomicCounters,
                      BuiltInName::gl_MaxTessControlAtomicCounters, SymbolType::BuiltIn,
                      std::array<TExtension, 2u>{{TExtension::EXT_tessellation_shader,
                                                  TExtension::OES_tessellation_shader}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxTessControlAtomicCounters);
        static_cast<TVariable *>(m_gl_MaxTessControlAtomicCounters)->shareConstPointer(unionArray);
    }
    m_gl_MaxTessControlAtomicCountersES3_2 =
        new TVariable(BuiltInId::gl_MaxTessControlAtomicCountersES3_2,
                      BuiltInName::gl_MaxTessControlAtomicCounters, SymbolType::BuiltIn,
                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxTessControlAtomicCounters);
        static_cast<TVariable *>(m_gl_MaxTessControlAtomicCountersES3_2)
            ->shareConstPointer(unionArray);
    }
    m_gl_MaxTessControlAtomicCounterBuffers =
        new TVariable(BuiltInId::gl_MaxTessControlAtomicCounterBuffers,
                      BuiltInName::gl_MaxTessControlAtomicCounterBuffers, SymbolType::BuiltIn,
                      std::array<TExtension, 2u>{{TExtension::EXT_tessellation_shader,
                                                  TExtension::OES_tessellation_shader}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxTessControlAtomicCounterBuffers);
        static_cast<TVariable *>(m_gl_MaxTessControlAtomicCounterBuffers)
            ->shareConstPointer(unionArray);
    }
    m_gl_MaxTessControlAtomicCounterBuffersES3_2 =
        new TVariable(BuiltInId::gl_MaxTessControlAtomicCounterBuffersES3_2,
                      BuiltInName::gl_MaxTessControlAtomicCounterBuffers, SymbolType::BuiltIn,
                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxTessControlAtomicCounterBuffers);
        static_cast<TVariable *>(m_gl_MaxTessControlAtomicCounterBuffersES3_2)
            ->shareConstPointer(unionArray);
    }
    m_gl_MaxTessPatchComponents =
        new TVariable(BuiltInId::gl_MaxTessPatchComponents, BuiltInName::gl_MaxTessPatchComponents,
                      SymbolType::BuiltIn,
                      std::array<TExtension, 2u>{{TExtension::EXT_tessellation_shader,
                                                  TExtension::OES_tessellation_shader}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxTessPatchComponents);
        static_cast<TVariable *>(m_gl_MaxTessPatchComponents)->shareConstPointer(unionArray);
    }
    m_gl_MaxTessPatchComponentsES3_2 = new TVariable(
        BuiltInId::gl_MaxTessPatchComponentsES3_2, BuiltInName::gl_MaxTessPatchComponents,
        SymbolType::BuiltIn, std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
        StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxTessPatchComponents);
        static_cast<TVariable *>(m_gl_MaxTessPatchComponentsES3_2)->shareConstPointer(unionArray);
    }
    m_gl_MaxPatchVertices = new TVariable(
        BuiltInId::gl_MaxPatchVertices, BuiltInName::gl_MaxPatchVertices, SymbolType::BuiltIn,
        std::array<TExtension, 2u>{
            {TExtension::EXT_tessellation_shader, TExtension::OES_tessellation_shader}},
        StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxPatchVertices);
        static_cast<TVariable *>(m_gl_MaxPatchVertices)->shareConstPointer(unionArray);
    }
    m_gl_MaxPatchVerticesES3_2 =
        new TVariable(BuiltInId::gl_MaxPatchVerticesES3_2, BuiltInName::gl_MaxPatchVertices,
                      SymbolType::BuiltIn, std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxPatchVertices);
        static_cast<TVariable *>(m_gl_MaxPatchVerticesES3_2)->shareConstPointer(unionArray);
    }
    m_gl_MaxTessGenLevel = new TVariable(
        BuiltInId::gl_MaxTessGenLevel, BuiltInName::gl_MaxTessGenLevel, SymbolType::BuiltIn,
        std::array<TExtension, 2u>{
            {TExtension::EXT_tessellation_shader, TExtension::OES_tessellation_shader}},
        StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxTessGenLevel);
        static_cast<TVariable *>(m_gl_MaxTessGenLevel)->shareConstPointer(unionArray);
    }
    m_gl_MaxTessGenLevelES3_2 =
        new TVariable(BuiltInId::gl_MaxTessGenLevelES3_2, BuiltInName::gl_MaxTessGenLevel,
                      SymbolType::BuiltIn, std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxTessGenLevel);
        static_cast<TVariable *>(m_gl_MaxTessGenLevelES3_2)->shareConstPointer(unionArray);
    }
    m_gl_MaxTessEvaluationInputComponents =
        new TVariable(BuiltInId::gl_MaxTessEvaluationInputComponents,
                      BuiltInName::gl_MaxTessEvaluationInputComponents, SymbolType::BuiltIn,
                      std::array<TExtension, 2u>{{TExtension::EXT_tessellation_shader,
                                                  TExtension::OES_tessellation_shader}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxTessEvaluationInputComponents);
        static_cast<TVariable *>(m_gl_MaxTessEvaluationInputComponents)
            ->shareConstPointer(unionArray);
    }
    m_gl_MaxTessEvaluationInputComponentsES3_2 =
        new TVariable(BuiltInId::gl_MaxTessEvaluationInputComponentsES3_2,
                      BuiltInName::gl_MaxTessEvaluationInputComponents, SymbolType::BuiltIn,
                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxTessEvaluationInputComponents);
        static_cast<TVariable *>(m_gl_MaxTessEvaluationInputComponentsES3_2)
            ->shareConstPointer(unionArray);
    }
    m_gl_MaxTessEvaluationOutputComponents =
        new TVariable(BuiltInId::gl_MaxTessEvaluationOutputComponents,
                      BuiltInName::gl_MaxTessEvaluationOutputComponents, SymbolType::BuiltIn,
                      std::array<TExtension, 2u>{{TExtension::EXT_tessellation_shader,
                                                  TExtension::OES_tessellation_shader}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxTessEvaluationOutputComponents);
        static_cast<TVariable *>(m_gl_MaxTessEvaluationOutputComponents)
            ->shareConstPointer(unionArray);
    }
    m_gl_MaxTessEvaluationOutputComponentsES3_2 =
        new TVariable(BuiltInId::gl_MaxTessEvaluationOutputComponentsES3_2,
                      BuiltInName::gl_MaxTessEvaluationOutputComponents, SymbolType::BuiltIn,
                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxTessEvaluationOutputComponents);
        static_cast<TVariable *>(m_gl_MaxTessEvaluationOutputComponentsES3_2)
            ->shareConstPointer(unionArray);
    }
    m_gl_MaxTessEvaluationTextureImageUnits =
        new TVariable(BuiltInId::gl_MaxTessEvaluationTextureImageUnits,
                      BuiltInName::gl_MaxTessEvaluationTextureImageUnits, SymbolType::BuiltIn,
                      std::array<TExtension, 2u>{{TExtension::EXT_tessellation_shader,
                                                  TExtension::OES_tessellation_shader}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxTessEvaluationTextureImageUnits);
        static_cast<TVariable *>(m_gl_MaxTessEvaluationTextureImageUnits)
            ->shareConstPointer(unionArray);
    }
    m_gl_MaxTessEvaluationTextureImageUnitsES3_2 =
        new TVariable(BuiltInId::gl_MaxTessEvaluationTextureImageUnitsES3_2,
                      BuiltInName::gl_MaxTessEvaluationTextureImageUnits, SymbolType::BuiltIn,
                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxTessEvaluationTextureImageUnits);
        static_cast<TVariable *>(m_gl_MaxTessEvaluationTextureImageUnitsES3_2)
            ->shareConstPointer(unionArray);
    }
    m_gl_MaxTessEvaluationUniformComponents =
        new TVariable(BuiltInId::gl_MaxTessEvaluationUniformComponents,
                      BuiltInName::gl_MaxTessEvaluationUniformComponents, SymbolType::BuiltIn,
                      std::array<TExtension, 2u>{{TExtension::EXT_tessellation_shader,
                                                  TExtension::OES_tessellation_shader}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxTessEvaluationUniformComponents);
        static_cast<TVariable *>(m_gl_MaxTessEvaluationUniformComponents)
            ->shareConstPointer(unionArray);
    }
    m_gl_MaxTessEvaluationUniformComponentsES3_2 =
        new TVariable(BuiltInId::gl_MaxTessEvaluationUniformComponentsES3_2,
                      BuiltInName::gl_MaxTessEvaluationUniformComponents, SymbolType::BuiltIn,
                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxTessEvaluationUniformComponents);
        static_cast<TVariable *>(m_gl_MaxTessEvaluationUniformComponentsES3_2)
            ->shareConstPointer(unionArray);
    }
    m_gl_MaxTessEvaluationImageUniforms =
        new TVariable(BuiltInId::gl_MaxTessEvaluationImageUniforms,
                      BuiltInName::gl_MaxTessEvaluationImageUniforms, SymbolType::BuiltIn,
                      std::array<TExtension, 2u>{{TExtension::EXT_tessellation_shader,
                                                  TExtension::OES_tessellation_shader}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxTessEvaluationImageUniforms);
        static_cast<TVariable *>(m_gl_MaxTessEvaluationImageUniforms)
            ->shareConstPointer(unionArray);
    }
    m_gl_MaxTessEvaluationImageUniformsES3_2 =
        new TVariable(BuiltInId::gl_MaxTessEvaluationImageUniformsES3_2,
                      BuiltInName::gl_MaxTessEvaluationImageUniforms, SymbolType::BuiltIn,
                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxTessEvaluationImageUniforms);
        static_cast<TVariable *>(m_gl_MaxTessEvaluationImageUniformsES3_2)
            ->shareConstPointer(unionArray);
    }
    m_gl_MaxTessEvaluationAtomicCounters =
        new TVariable(BuiltInId::gl_MaxTessEvaluationAtomicCounters,
                      BuiltInName::gl_MaxTessEvaluationAtomicCounters, SymbolType::BuiltIn,
                      std::array<TExtension, 2u>{{TExtension::EXT_tessellation_shader,
                                                  TExtension::OES_tessellation_shader}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxTessEvaluationAtomicCounters);
        static_cast<TVariable *>(m_gl_MaxTessEvaluationAtomicCounters)
            ->shareConstPointer(unionArray);
    }
    m_gl_MaxTessEvaluationAtomicCountersES3_2 =
        new TVariable(BuiltInId::gl_MaxTessEvaluationAtomicCountersES3_2,
                      BuiltInName::gl_MaxTessEvaluationAtomicCounters, SymbolType::BuiltIn,
                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxTessEvaluationAtomicCounters);
        static_cast<TVariable *>(m_gl_MaxTessEvaluationAtomicCountersES3_2)
            ->shareConstPointer(unionArray);
    }
    m_gl_MaxTessEvaluationAtomicCounterBuffers =
        new TVariable(BuiltInId::gl_MaxTessEvaluationAtomicCounterBuffers,
                      BuiltInName::gl_MaxTessEvaluationAtomicCounterBuffers, SymbolType::BuiltIn,
                      std::array<TExtension, 2u>{{TExtension::EXT_tessellation_shader,
                                                  TExtension::OES_tessellation_shader}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxTessEvaluationAtomicCounterBuffers);
        static_cast<TVariable *>(m_gl_MaxTessEvaluationAtomicCounterBuffers)
            ->shareConstPointer(unionArray);
    }
    m_gl_MaxTessEvaluationAtomicCounterBuffersES3_2 =
        new TVariable(BuiltInId::gl_MaxTessEvaluationAtomicCounterBuffersES3_2,
                      BuiltInName::gl_MaxTessEvaluationAtomicCounterBuffers, SymbolType::BuiltIn,
                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxTessEvaluationAtomicCounterBuffers);
        static_cast<TVariable *>(m_gl_MaxTessEvaluationAtomicCounterBuffersES3_2)
            ->shareConstPointer(unionArray);
    }
    m_gl_MaxSamples =
        new TVariable(BuiltInId::gl_MaxSamples, BuiltInName::gl_MaxSamples, SymbolType::BuiltIn,
                      std::array<TExtension, 1u>{{TExtension::OES_sample_variables}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxSamples);
        static_cast<TVariable *>(m_gl_MaxSamples)->shareConstPointer(unionArray);
    }
    m_gl_MaxSamplesES3_2 =
        new TVariable(BuiltInId::gl_MaxSamplesES3_2, BuiltInName::gl_MaxSamples,
                      SymbolType::BuiltIn, std::array<TExtension, 1u>{{TExtension::UNDEFINED}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxSamples);
        static_cast<TVariable *>(m_gl_MaxSamplesES3_2)->shareConstPointer(unionArray);
    }
    m_gl_MaxClipDistancesAPPLE = new TVariable(
        BuiltInId::gl_MaxClipDistancesAPPLE, BuiltInName::gl_MaxClipDistances, SymbolType::BuiltIn,
        std::array<TExtension, 1u>{{TExtension::APPLE_clip_distance}},
        StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxClipDistances);
        static_cast<TVariable *>(m_gl_MaxClipDistancesAPPLE)->shareConstPointer(unionArray);
    }
    m_gl_MaxClipDistances = new TVariable(
        BuiltInId::gl_MaxClipDistances, BuiltInName::gl_MaxClipDistances, SymbolType::BuiltIn,
        std::array<TExtension, 2u>{
            {TExtension::EXT_clip_cull_distance, TExtension::ANGLE_clip_cull_distance}},
        StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxClipDistances);
        static_cast<TVariable *>(m_gl_MaxClipDistances)->shareConstPointer(unionArray);
    }
    m_gl_MaxCullDistances = new TVariable(
        BuiltInId::gl_MaxCullDistances, BuiltInName::gl_MaxCullDistances, SymbolType::BuiltIn,
        std::array<TExtension, 2u>{
            {TExtension::EXT_clip_cull_distance, TExtension::ANGLE_clip_cull_distance}},
        StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxCullDistances);
        static_cast<TVariable *>(m_gl_MaxCullDistances)->shareConstPointer(unionArray);
    }
    m_gl_MaxCombinedClipAndCullDistances =
        new TVariable(BuiltInId::gl_MaxCombinedClipAndCullDistances,
                      BuiltInName::gl_MaxCombinedClipAndCullDistances, SymbolType::BuiltIn,
                      std::array<TExtension, 2u>{{TExtension::EXT_clip_cull_distance,
                                                  TExtension::ANGLE_clip_cull_distance}},
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxCombinedClipAndCullDistances);
        static_cast<TVariable *>(m_gl_MaxCombinedClipAndCullDistances)
            ->shareConstPointer(unionArray);
    }
    TType *type_gl_FragData = new TType(EbtFloat, EbpMedium, EvqFragData, 4);
    if (spec != SH_WEBGL2_SPEC && spec != SH_WEBGL3_SPEC)
    {
        type_gl_FragData->makeArray(resources.MaxDrawBuffers);
    }
    else
    {
        type_gl_FragData->makeArray(1u);
    }
    type_gl_FragData->realize();
    m_gl_FragData =
        new TVariable(BuiltInId::gl_FragData, BuiltInName::gl_FragData, SymbolType::BuiltIn,
                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}}, type_gl_FragData);
    TType *type_gl_SecondaryFragDataEXT =
        new TType(EbtFloat, EbpMedium, EvqSecondaryFragDataEXT, 4, 1);
    type_gl_SecondaryFragDataEXT->makeArray(resources.MaxDualSourceDrawBuffers);
    type_gl_SecondaryFragDataEXT->realize();
    m_gl_SecondaryFragDataEXT = new TVariable(
        BuiltInId::gl_SecondaryFragDataEXT, BuiltInName::gl_SecondaryFragDataEXT,
        SymbolType::BuiltIn, std::array<TExtension, 1u>{{TExtension::EXT_blend_func_extended}},
        type_gl_SecondaryFragDataEXT);
    TType *type_gl_FragDepthEXT =
        new TType(EbtFloat, resources.FragmentPrecisionHigh ? EbpHigh : EbpMedium, EvqFragDepth, 1);
    type_gl_FragDepthEXT->realize();
    m_gl_FragDepthEXT = new TVariable(
        BuiltInId::gl_FragDepthEXT, BuiltInName::gl_FragDepthEXT, SymbolType::BuiltIn,
        std::array<TExtension, 1u>{{TExtension::EXT_frag_depth}}, type_gl_FragDepthEXT);
    TType *type_gl_LastFragData = new TType(EbtFloat, EbpMedium, EvqLastFragData, 4, 1);
    type_gl_LastFragData->makeArray(resources.MaxDrawBuffers);
    type_gl_LastFragData->realize();
    m_gl_LastFragData = new TVariable(
        BuiltInId::gl_LastFragData, BuiltInName::gl_LastFragData, SymbolType::BuiltIn,
        std::array<TExtension, 2u>{{TExtension::EXT_shader_framebuffer_fetch,
                                    TExtension::EXT_shader_framebuffer_fetch_non_coherent}},
        type_gl_LastFragData);
    TType *type_gl_LastFragDataNV = new TType(EbtFloat, EbpMedium, EvqLastFragData, 4, 1);
    type_gl_LastFragDataNV->makeArray(resources.MaxDrawBuffers);
    type_gl_LastFragDataNV->realize();
    m_gl_LastFragDataNV = new TVariable(
        BuiltInId::gl_LastFragDataNV, BuiltInName::gl_LastFragData, SymbolType::BuiltIn,
        std::array<TExtension, 1u>{{TExtension::NV_shader_framebuffer_fetch}},
        type_gl_LastFragDataNV);
    TType *type_gl_SampleMaskIn = new TType(EbtInt, EbpHigh, EvqSampleMaskIn, 1);
    type_gl_SampleMaskIn->makeArray((resources.MaxSamples + 31) / 32);
    type_gl_SampleMaskIn->realize();
    m_gl_SampleMaskIn = new TVariable(
        BuiltInId::gl_SampleMaskIn, BuiltInName::gl_SampleMaskIn, SymbolType::BuiltIn,
        std::array<TExtension, 1u>{{TExtension::OES_sample_variables}}, type_gl_SampleMaskIn);
    TType *type_gl_SampleMaskInES3_2 = new TType(EbtInt, EbpHigh, EvqSampleMaskIn, 1);
    type_gl_SampleMaskInES3_2->makeArray((resources.MaxSamples + 31) / 32);
    type_gl_SampleMaskInES3_2->realize();
    m_gl_SampleMaskInES3_2 = new TVariable(
        BuiltInId::gl_SampleMaskInES3_2, BuiltInName::gl_SampleMaskIn, SymbolType::BuiltIn,
        std::array<TExtension, 1u>{{TExtension::UNDEFINED}}, type_gl_SampleMaskInES3_2);
    TType *type_gl_SampleMask = new TType(EbtInt, EbpHigh, EvqSampleMask, 1);
    type_gl_SampleMask->makeArray((resources.MaxSamples + 31) / 32);
    type_gl_SampleMask->realize();
    m_gl_SampleMask = new TVariable(
        BuiltInId::gl_SampleMask, BuiltInName::gl_SampleMask, SymbolType::BuiltIn,
        std::array<TExtension, 1u>{{TExtension::OES_sample_variables}}, type_gl_SampleMask);
    TType *type_gl_SampleMaskES3_2 = new TType(EbtInt, EbpHigh, EvqSampleMask, 1);
    type_gl_SampleMaskES3_2->makeArray((resources.MaxSamples + 31) / 32);
    type_gl_SampleMaskES3_2->realize();
    m_gl_SampleMaskES3_2 = new TVariable(
        BuiltInId::gl_SampleMaskES3_2, BuiltInName::gl_SampleMask, SymbolType::BuiltIn,
        std::array<TExtension, 1u>{{TExtension::UNDEFINED}}, type_gl_SampleMaskES3_2);
    TType *type_gl_ClipDistanceAPPLE = new TType(EbtFloat, EbpHigh, EvqClipDistance, 1);
    type_gl_ClipDistanceAPPLE->makeArray(resources.MaxClipDistances);
    type_gl_ClipDistanceAPPLE->realize();
    m_gl_ClipDistanceAPPLE = new TVariable(
        BuiltInId::gl_ClipDistanceAPPLE, BuiltInName::gl_ClipDistance, SymbolType::BuiltIn,
        std::array<TExtension, 1u>{{TExtension::APPLE_clip_distance}}, type_gl_ClipDistanceAPPLE);
    TFieldList *fields_gl_PerVertex = new TFieldList();
    fields_gl_PerVertex->push_back(new TField(new TType(EbtFloat, EbpHigh, EvqPosition, 4, 1),
                                              BuiltInName::gl_Position, zeroSourceLoc,
                                              SymbolType::BuiltIn));
    TInterfaceBlock *gl_PerVertex =
        new TInterfaceBlock(BuiltInId::gl_PerVertex, BuiltInName::gl_PerVertex,
                            std::array<TExtension, 2u>{
                                {TExtension::EXT_geometry_shader, TExtension::OES_geometry_shader}},
                            fields_gl_PerVertex);
    m_gl_PerVertex                       = gl_PerVertex;
    TFieldList *fields_gl_PerVertexES3_2 = new TFieldList();
    fields_gl_PerVertexES3_2->push_back(new TField(new TType(EbtFloat, EbpHigh, EvqPosition, 4, 1),
                                                   BuiltInName::gl_Position, zeroSourceLoc,
                                                   SymbolType::BuiltIn));
    TInterfaceBlock *gl_PerVertexES3_2 = new TInterfaceBlock(
        BuiltInId::gl_PerVertexES3_2, BuiltInName::gl_PerVertex,
        std::array<TExtension, 1u>{{TExtension::UNDEFINED}}, fields_gl_PerVertexES3_2);
    m_gl_PerVertexES3_2 = gl_PerVertexES3_2;
    TType *type_gl_in   = new TType(gl_PerVertex, EvqPerVertexIn, TLayoutQualifier::Create());
    type_gl_in->makeArray(0u);
    type_gl_in->realize();
    m_gl_in = new TVariable(BuiltInId::gl_in, BuiltInName::gl_in, SymbolType::BuiltIn,
                            std::array<TExtension, 2u>{
                                {TExtension::EXT_geometry_shader, TExtension::OES_geometry_shader}},
                            type_gl_in);
    TType *type_gl_inES3_2 = new TType(gl_PerVertex, EvqPerVertexIn, TLayoutQualifier::Create());
    type_gl_inES3_2->makeArray(0u);
    type_gl_inES3_2->realize();
    m_gl_inES3_2 =
        new TVariable(BuiltInId::gl_inES3_2, BuiltInName::gl_in, SymbolType::BuiltIn,
                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}}, type_gl_inES3_2);
    TFieldList *fields_gl_PerVertexOutBlock = new TFieldList();
    fields_gl_PerVertexOutBlock->push_back(
        new TField(new TType(EbtFloat, EbpHigh, EvqPosition, 4, 1), BuiltInName::gl_Position,
                   zeroSourceLoc, SymbolType::BuiltIn));
    TInterfaceBlock *gl_PerVertexOutBlock =
        new TInterfaceBlock(BuiltInId::gl_PerVertexOutBlock, BuiltInName::gl_PerVertex,
                            std::array<TExtension, 2u>{
                                {TExtension::EXT_geometry_shader, TExtension::OES_geometry_shader}},
                            fields_gl_PerVertexOutBlock);
    TFieldList *fields_gl_PerVertexOutBlockES3_2 = new TFieldList();
    fields_gl_PerVertexOutBlockES3_2->push_back(
        new TField(new TType(EbtFloat, EbpHigh, EvqPosition, 4, 1), BuiltInName::gl_Position,
                   zeroSourceLoc, SymbolType::BuiltIn));
    TInterfaceBlock *gl_PerVertexOutBlockES3_2 = new TInterfaceBlock(
        BuiltInId::gl_PerVertexOutBlockES3_2, BuiltInName::gl_PerVertex,
        std::array<TExtension, 1u>{{TExtension::UNDEFINED}}, fields_gl_PerVertexOutBlockES3_2);
    TType *type_gl_PositionGS = new TType(EbtFloat, EbpHigh, EvqPosition, 4);
    type_gl_PositionGS->setInterfaceBlock(gl_PerVertexOutBlock);
    type_gl_PositionGS->realize();
    m_gl_PositionGS =
        new TVariable(BuiltInId::gl_PositionGS, BuiltInName::gl_Position, SymbolType::BuiltIn,
                      std::array<TExtension, 2u>{
                          {TExtension::EXT_geometry_shader, TExtension::OES_geometry_shader}},
                      type_gl_PositionGS);
    TType *type_gl_PositionGSES3_2 = new TType(EbtFloat, EbpHigh, EvqPosition, 4);
    type_gl_PositionGSES3_2->setInterfaceBlock(gl_PerVertexOutBlockES3_2);
    type_gl_PositionGSES3_2->realize();
    m_gl_PositionGSES3_2 =
        new TVariable(BuiltInId::gl_PositionGSES3_2, BuiltInName::gl_Position, SymbolType::BuiltIn,
                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}}, type_gl_PositionGSES3_2);
    TType *type_gl_TessLevelOuterTCS = new TType(EbtFloat, EbpHigh, EvqTessLevelOuter, 1);
    type_gl_TessLevelOuterTCS->makeArray(4u);
    type_gl_TessLevelOuterTCS->realize();
    m_gl_TessLevelOuterTCS = new TVariable(
        BuiltInId::gl_TessLevelOuterTCS, BuiltInName::gl_TessLevelOuter, SymbolType::BuiltIn,
        std::array<TExtension, 2u>{
            {TExtension::EXT_tessellation_shader, TExtension::OES_tessellation_shader}},
        type_gl_TessLevelOuterTCS);
    TType *type_gl_TessLevelOuterTCSES3_2 = new TType(EbtFloat, EbpHigh, EvqTessLevelOuter, 1);
    type_gl_TessLevelOuterTCSES3_2->makeArray(4u);
    type_gl_TessLevelOuterTCSES3_2->realize();
    m_gl_TessLevelOuterTCSES3_2 = new TVariable(
        BuiltInId::gl_TessLevelOuterTCSES3_2, BuiltInName::gl_TessLevelOuter, SymbolType::BuiltIn,
        std::array<TExtension, 1u>{{TExtension::UNDEFINED}}, type_gl_TessLevelOuterTCSES3_2);
    TType *type_gl_TessLevelInnerTCS = new TType(EbtFloat, EbpHigh, EvqTessLevelInner, 1);
    type_gl_TessLevelInnerTCS->makeArray(2u);
    type_gl_TessLevelInnerTCS->realize();
    m_gl_TessLevelInnerTCS = new TVariable(
        BuiltInId::gl_TessLevelInnerTCS, BuiltInName::gl_TessLevelInner, SymbolType::BuiltIn,
        std::array<TExtension, 2u>{
            {TExtension::EXT_tessellation_shader, TExtension::OES_tessellation_shader}},
        type_gl_TessLevelInnerTCS);
    TType *type_gl_TessLevelInnerTCSES3_2 = new TType(EbtFloat, EbpHigh, EvqTessLevelInner, 1);
    type_gl_TessLevelInnerTCSES3_2->makeArray(2u);
    type_gl_TessLevelInnerTCSES3_2->realize();
    m_gl_TessLevelInnerTCSES3_2 = new TVariable(
        BuiltInId::gl_TessLevelInnerTCSES3_2, BuiltInName::gl_TessLevelInner, SymbolType::BuiltIn,
        std::array<TExtension, 1u>{{TExtension::UNDEFINED}}, type_gl_TessLevelInnerTCSES3_2);
    TFieldList *fields_gl_PerVertexTCS = new TFieldList();
    fields_gl_PerVertexTCS->push_back(new TField(new TType(EbtFloat, EbpHigh, EvqPosition, 4, 1),
                                                 BuiltInName::gl_Position, zeroSourceLoc,
                                                 SymbolType::BuiltIn));
    TInterfaceBlock *gl_PerVertexTCS =
        new TInterfaceBlock(BuiltInId::gl_PerVertexTCS, BuiltInName::gl_PerVertex,
                            std::array<TExtension, 2u>{{TExtension::EXT_tessellation_shader,
                                                        TExtension::OES_tessellation_shader}},
                            fields_gl_PerVertexTCS);
    m_gl_PerVertexTCS                       = gl_PerVertexTCS;
    TFieldList *fields_gl_PerVertexTCSES3_2 = new TFieldList();
    fields_gl_PerVertexTCSES3_2->push_back(
        new TField(new TType(EbtFloat, EbpHigh, EvqPosition, 4, 1), BuiltInName::gl_Position,
                   zeroSourceLoc, SymbolType::BuiltIn));
    TInterfaceBlock *gl_PerVertexTCSES3_2 = new TInterfaceBlock(
        BuiltInId::gl_PerVertexTCSES3_2, BuiltInName::gl_PerVertex,
        std::array<TExtension, 1u>{{TExtension::UNDEFINED}}, fields_gl_PerVertexTCSES3_2);
    m_gl_PerVertexTCSES3_2 = gl_PerVertexTCSES3_2;
    TType *type_gl_inTCS   = new TType(gl_PerVertex, EvqPerVertexIn, TLayoutQualifier::Create());
    type_gl_inTCS->makeArray(resources.MaxPatchVertices);
    type_gl_inTCS->realize();
    m_gl_inTCS = new TVariable(BuiltInId::gl_inTCS, BuiltInName::gl_in, SymbolType::BuiltIn,
                               std::array<TExtension, 2u>{{TExtension::EXT_tessellation_shader,
                                                           TExtension::OES_tessellation_shader}},
                               type_gl_inTCS);
    TType *type_gl_inTCSES3_2 = new TType(gl_PerVertex, EvqPerVertexIn, TLayoutQualifier::Create());
    type_gl_inTCSES3_2->makeArray(resources.MaxPatchVertices);
    type_gl_inTCSES3_2->realize();
    m_gl_inTCSES3_2 =
        new TVariable(BuiltInId::gl_inTCSES3_2, BuiltInName::gl_in, SymbolType::BuiltIn,
                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}}, type_gl_inTCSES3_2);
    TType *type_gl_outTCS = new TType(gl_PerVertex, EvqPerVertexOut, TLayoutQualifier::Create());
    type_gl_outTCS->makeArray(resources.MaxPatchVertices);
    type_gl_outTCS->realize();
    m_gl_outTCS = new TVariable(BuiltInId::gl_outTCS, BuiltInName::gl_out, SymbolType::BuiltIn,
                                std::array<TExtension, 2u>{{TExtension::EXT_tessellation_shader,
                                                            TExtension::OES_tessellation_shader}},
                                type_gl_outTCS);
    TType *type_gl_outTCSES3_2 =
        new TType(gl_PerVertex, EvqPerVertexOut, TLayoutQualifier::Create());
    type_gl_outTCSES3_2->makeArray(resources.MaxPatchVertices);
    type_gl_outTCSES3_2->realize();
    m_gl_outTCSES3_2 =
        new TVariable(BuiltInId::gl_outTCSES3_2, BuiltInName::gl_out, SymbolType::BuiltIn,
                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}}, type_gl_outTCSES3_2);
    TType *type_gl_BoundingBoxTCS = new TType(EbtFloat, EbpHigh, EvqBoundingBox, 4);
    type_gl_BoundingBoxTCS->makeArray(2u);
    type_gl_BoundingBoxTCS->realize();
    m_gl_BoundingBoxTCS = new TVariable(
        BuiltInId::gl_BoundingBoxTCS, BuiltInName::gl_BoundingBox, SymbolType::BuiltIn,
        std::array<TExtension, 2u>{
            {TExtension::EXT_tessellation_shader, TExtension::OES_tessellation_shader}},
        type_gl_BoundingBoxTCS);
    TType *type_gl_BoundingBoxTCSES3_2 = new TType(EbtFloat, EbpHigh, EvqBoundingBox, 4);
    type_gl_BoundingBoxTCSES3_2->makeArray(2u);
    type_gl_BoundingBoxTCSES3_2->realize();
    m_gl_BoundingBoxTCSES3_2 = new TVariable(
        BuiltInId::gl_BoundingBoxTCSES3_2, BuiltInName::gl_BoundingBox, SymbolType::BuiltIn,
        std::array<TExtension, 1u>{{TExtension::UNDEFINED}}, type_gl_BoundingBoxTCSES3_2);
    TFieldList *fields_gl_PerVertexOutTcsBlock = new TFieldList();
    fields_gl_PerVertexOutTcsBlock->push_back(
        new TField(new TType(EbtFloat, EbpHigh, EvqPosition, 4, 1), BuiltInName::gl_Position,
                   zeroSourceLoc, SymbolType::BuiltIn));
    TInterfaceBlock *gl_PerVertexOutTcsBlock =
        new TInterfaceBlock(BuiltInId::gl_PerVertexOutTcsBlock, BuiltInName::gl_PerVertex,
                            std::array<TExtension, 2u>{{TExtension::EXT_tessellation_shader,
                                                        TExtension::OES_tessellation_shader}},
                            fields_gl_PerVertexOutTcsBlock);
    TFieldList *fields_gl_PerVertexOutTcsBlockES3_2 = new TFieldList();
    fields_gl_PerVertexOutTcsBlockES3_2->push_back(
        new TField(new TType(EbtFloat, EbpHigh, EvqPosition, 4, 1), BuiltInName::gl_Position,
                   zeroSourceLoc, SymbolType::BuiltIn));
    TInterfaceBlock *gl_PerVertexOutTcsBlockES3_2 = new TInterfaceBlock(
        BuiltInId::gl_PerVertexOutTcsBlockES3_2, BuiltInName::gl_PerVertex,
        std::array<TExtension, 1u>{{TExtension::UNDEFINED}}, fields_gl_PerVertexOutTcsBlockES3_2);
    TType *type_gl_PositionTCS = new TType(EbtFloat, EbpHigh, EvqPosition, 4);
    type_gl_PositionTCS->setInterfaceBlock(gl_PerVertexOutTcsBlock);
    type_gl_PositionTCS->realize();
    m_gl_PositionTCS =
        new TVariable(BuiltInId::gl_PositionTCS, BuiltInName::gl_Position, SymbolType::BuiltIn,
                      std::array<TExtension, 2u>{{TExtension::EXT_tessellation_shader,
                                                  TExtension::OES_tessellation_shader}},
                      type_gl_PositionTCS);
    TType *type_gl_PositionTCSES3_2 = new TType(EbtFloat, EbpHigh, EvqPosition, 4);
    type_gl_PositionTCSES3_2->setInterfaceBlock(gl_PerVertexOutTcsBlockES3_2);
    type_gl_PositionTCSES3_2->realize();
    m_gl_PositionTCSES3_2 = new TVariable(
        BuiltInId::gl_PositionTCSES3_2, BuiltInName::gl_Position, SymbolType::BuiltIn,
        std::array<TExtension, 1u>{{TExtension::UNDEFINED}}, type_gl_PositionTCSES3_2);
    TType *type_gl_BoundingBoxEXTTCS = new TType(EbtFloat, EbpHigh, EvqBoundingBox, 4);
    type_gl_BoundingBoxEXTTCS->makeArray(2u);
    type_gl_BoundingBoxEXTTCS->realize();
    m_gl_BoundingBoxEXTTCS = new TVariable(
        BuiltInId::gl_BoundingBoxEXTTCS, BuiltInName::gl_BoundingBoxEXT, SymbolType::BuiltIn,
        std::array<TExtension, 2u>{
            {TExtension::EXT_tessellation_shader, TExtension::OES_tessellation_shader}},
        type_gl_BoundingBoxEXTTCS);
    TType *type_gl_BoundingBoxEXTTCSES3_2 = new TType(EbtFloat, EbpHigh, EvqBoundingBox, 4);
    type_gl_BoundingBoxEXTTCSES3_2->makeArray(2u);
    type_gl_BoundingBoxEXTTCSES3_2->realize();
    m_gl_BoundingBoxEXTTCSES3_2 = new TVariable(
        BuiltInId::gl_BoundingBoxEXTTCSES3_2, BuiltInName::gl_BoundingBoxEXT, SymbolType::BuiltIn,
        std::array<TExtension, 1u>{{TExtension::UNDEFINED}}, type_gl_BoundingBoxEXTTCSES3_2);
    TType *type_gl_BoundingBoxOESTCS = new TType(EbtFloat, EbpHigh, EvqBoundingBox, 4);
    type_gl_BoundingBoxOESTCS->makeArray(2u);
    type_gl_BoundingBoxOESTCS->realize();
    m_gl_BoundingBoxOESTCS = new TVariable(
        BuiltInId::gl_BoundingBoxOESTCS, BuiltInName::gl_BoundingBoxOES, SymbolType::BuiltIn,
        std::array<TExtension, 2u>{
            {TExtension::EXT_tessellation_shader, TExtension::OES_tessellation_shader}},
        type_gl_BoundingBoxOESTCS);
    TType *type_gl_BoundingBoxOESTCSES3_2 = new TType(EbtFloat, EbpHigh, EvqBoundingBox, 4);
    type_gl_BoundingBoxOESTCSES3_2->makeArray(2u);
    type_gl_BoundingBoxOESTCSES3_2->realize();
    m_gl_BoundingBoxOESTCSES3_2 = new TVariable(
        BuiltInId::gl_BoundingBoxOESTCSES3_2, BuiltInName::gl_BoundingBoxOES, SymbolType::BuiltIn,
        std::array<TExtension, 1u>{{TExtension::UNDEFINED}}, type_gl_BoundingBoxOESTCSES3_2);
    TType *type_gl_TessLevelOuterTES = new TType(EbtFloat, EbpHigh, EvqTessLevelOuter, 1);
    type_gl_TessLevelOuterTES->makeArray(4u);
    type_gl_TessLevelOuterTES->realize();
    m_gl_TessLevelOuterTES = new TVariable(
        BuiltInId::gl_TessLevelOuterTES, BuiltInName::gl_TessLevelOuter, SymbolType::BuiltIn,
        std::array<TExtension, 2u>{
            {TExtension::EXT_tessellation_shader, TExtension::OES_tessellation_shader}},
        type_gl_TessLevelOuterTES);
    TType *type_gl_TessLevelOuterTESES3_2 = new TType(EbtFloat, EbpHigh, EvqTessLevelOuter, 1);
    type_gl_TessLevelOuterTESES3_2->makeArray(4u);
    type_gl_TessLevelOuterTESES3_2->realize();
    m_gl_TessLevelOuterTESES3_2 = new TVariable(
        BuiltInId::gl_TessLevelOuterTESES3_2, BuiltInName::gl_TessLevelOuter, SymbolType::BuiltIn,
        std::array<TExtension, 1u>{{TExtension::UNDEFINED}}, type_gl_TessLevelOuterTESES3_2);
    TType *type_gl_TessLevelInnerTES = new TType(EbtFloat, EbpHigh, EvqTessLevelInner, 1);
    type_gl_TessLevelInnerTES->makeArray(2u);
    type_gl_TessLevelInnerTES->realize();
    m_gl_TessLevelInnerTES = new TVariable(
        BuiltInId::gl_TessLevelInnerTES, BuiltInName::gl_TessLevelInner, SymbolType::BuiltIn,
        std::array<TExtension, 2u>{
            {TExtension::EXT_tessellation_shader, TExtension::OES_tessellation_shader}},
        type_gl_TessLevelInnerTES);
    TType *type_gl_TessLevelInnerTESES3_2 = new TType(EbtFloat, EbpHigh, EvqTessLevelInner, 1);
    type_gl_TessLevelInnerTESES3_2->makeArray(2u);
    type_gl_TessLevelInnerTESES3_2->realize();
    m_gl_TessLevelInnerTESES3_2 = new TVariable(
        BuiltInId::gl_TessLevelInnerTESES3_2, BuiltInName::gl_TessLevelInner, SymbolType::BuiltIn,
        std::array<TExtension, 1u>{{TExtension::UNDEFINED}}, type_gl_TessLevelInnerTESES3_2);
    TFieldList *fields_gl_PerVertexTES = new TFieldList();
    fields_gl_PerVertexTES->push_back(new TField(new TType(EbtFloat, EbpHigh, EvqPosition, 4, 1),
                                                 BuiltInName::gl_Position, zeroSourceLoc,
                                                 SymbolType::BuiltIn));
    TInterfaceBlock *gl_PerVertexTES =
        new TInterfaceBlock(BuiltInId::gl_PerVertexTES, BuiltInName::gl_PerVertex,
                            std::array<TExtension, 2u>{{TExtension::EXT_tessellation_shader,
                                                        TExtension::OES_tessellation_shader}},
                            fields_gl_PerVertexTES);
    m_gl_PerVertexTES                       = gl_PerVertexTES;
    TFieldList *fields_gl_PerVertexTESES3_2 = new TFieldList();
    fields_gl_PerVertexTESES3_2->push_back(
        new TField(new TType(EbtFloat, EbpHigh, EvqPosition, 4, 1), BuiltInName::gl_Position,
                   zeroSourceLoc, SymbolType::BuiltIn));
    TInterfaceBlock *gl_PerVertexTESES3_2 = new TInterfaceBlock(
        BuiltInId::gl_PerVertexTESES3_2, BuiltInName::gl_PerVertex,
        std::array<TExtension, 1u>{{TExtension::UNDEFINED}}, fields_gl_PerVertexTESES3_2);
    m_gl_PerVertexTESES3_2 = gl_PerVertexTESES3_2;
    TType *type_gl_inTES   = new TType(gl_PerVertex, EvqPerVertexIn, TLayoutQualifier::Create());
    type_gl_inTES->makeArray(resources.MaxPatchVertices);
    type_gl_inTES->realize();
    m_gl_inTES = new TVariable(BuiltInId::gl_inTES, BuiltInName::gl_in, SymbolType::BuiltIn,
                               std::array<TExtension, 2u>{{TExtension::EXT_tessellation_shader,
                                                           TExtension::OES_tessellation_shader}},
                               type_gl_inTES);
    TType *type_gl_inTESES3_2 = new TType(gl_PerVertex, EvqPerVertexIn, TLayoutQualifier::Create());
    type_gl_inTESES3_2->makeArray(resources.MaxPatchVertices);
    type_gl_inTESES3_2->realize();
    m_gl_inTESES3_2 =
        new TVariable(BuiltInId::gl_inTESES3_2, BuiltInName::gl_in, SymbolType::BuiltIn,
                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}}, type_gl_inTESES3_2);
    TType *type_gl_outTES = new TType(gl_PerVertex, EvqPerVertexOut, TLayoutQualifier::Create());
    type_gl_outTES->makeArray(resources.MaxPatchVertices);
    type_gl_outTES->realize();
    m_gl_outTES = new TVariable(BuiltInId::gl_outTES, BuiltInName::gl_out, SymbolType::BuiltIn,
                                std::array<TExtension, 2u>{{TExtension::EXT_tessellation_shader,
                                                            TExtension::OES_tessellation_shader}},
                                type_gl_outTES);
    TType *type_gl_outTESES3_2 =
        new TType(gl_PerVertex, EvqPerVertexOut, TLayoutQualifier::Create());
    type_gl_outTESES3_2->makeArray(resources.MaxPatchVertices);
    type_gl_outTESES3_2->realize();
    m_gl_outTESES3_2 =
        new TVariable(BuiltInId::gl_outTESES3_2, BuiltInName::gl_out, SymbolType::BuiltIn,
                      std::array<TExtension, 1u>{{TExtension::UNDEFINED}}, type_gl_outTESES3_2);
    TFieldList *fields_gl_PerVertexOutTesBlock = new TFieldList();
    fields_gl_PerVertexOutTesBlock->push_back(
        new TField(new TType(EbtFloat, EbpHigh, EvqPosition, 4, 1), BuiltInName::gl_Position,
                   zeroSourceLoc, SymbolType::BuiltIn));
    TInterfaceBlock *gl_PerVertexOutTesBlock =
        new TInterfaceBlock(BuiltInId::gl_PerVertexOutTesBlock, BuiltInName::gl_PerVertex,
                            std::array<TExtension, 2u>{{TExtension::EXT_tessellation_shader,
                                                        TExtension::OES_tessellation_shader}},
                            fields_gl_PerVertexOutTesBlock);
    TFieldList *fields_gl_PerVertexOutTesBlockES3_2 = new TFieldList();
    fields_gl_PerVertexOutTesBlockES3_2->push_back(
        new TField(new TType(EbtFloat, EbpHigh, EvqPosition, 4, 1), BuiltInName::gl_Position,
                   zeroSourceLoc, SymbolType::BuiltIn));
    TInterfaceBlock *gl_PerVertexOutTesBlockES3_2 = new TInterfaceBlock(
        BuiltInId::gl_PerVertexOutTesBlockES3_2, BuiltInName::gl_PerVertex,
        std::array<TExtension, 1u>{{TExtension::UNDEFINED}}, fields_gl_PerVertexOutTesBlockES3_2);
    TType *type_gl_PositionTES = new TType(EbtFloat, EbpHigh, EvqPosition, 4);
    type_gl_PositionTES->setInterfaceBlock(gl_PerVertexOutTesBlock);
    type_gl_PositionTES->realize();
    m_gl_PositionTES =
        new TVariable(BuiltInId::gl_PositionTES, BuiltInName::gl_Position, SymbolType::BuiltIn,
                      std::array<TExtension, 2u>{{TExtension::EXT_tessellation_shader,
                                                  TExtension::OES_tessellation_shader}},
                      type_gl_PositionTES);
    TType *type_gl_PositionTESES3_2 = new TType(EbtFloat, EbpHigh, EvqPosition, 4);
    type_gl_PositionTESES3_2->setInterfaceBlock(gl_PerVertexOutTesBlockES3_2);
    type_gl_PositionTESES3_2->realize();
    m_gl_PositionTESES3_2 = new TVariable(
        BuiltInId::gl_PositionTESES3_2, BuiltInName::gl_Position, SymbolType::BuiltIn,
        std::array<TExtension, 1u>{{TExtension::UNDEFINED}}, type_gl_PositionTESES3_2);
    TType *type_gl_ClipDistance = new TType(EbtFloat, EbpHigh, EvqClipDistance, 1);
    type_gl_ClipDistance->makeArray(resources.MaxClipDistances);
    type_gl_ClipDistance->realize();
    m_gl_ClipDistance =
        new TVariable(BuiltInId::gl_ClipDistance, BuiltInName::gl_ClipDistance, SymbolType::BuiltIn,
                      std::array<TExtension, 2u>{{TExtension::EXT_clip_cull_distance,
                                                  TExtension::ANGLE_clip_cull_distance}},
                      type_gl_ClipDistance);
    TType *type_gl_CullDistance = new TType(EbtFloat, EbpHigh, EvqCullDistance, 1);
    type_gl_CullDistance->makeArray(resources.MaxCullDistances);
    type_gl_CullDistance->realize();
    m_gl_CullDistance =
        new TVariable(BuiltInId::gl_CullDistance, BuiltInName::gl_CullDistance, SymbolType::BuiltIn,
                      std::array<TExtension, 2u>{{TExtension::EXT_clip_cull_distance,
                                                  TExtension::ANGLE_clip_cull_distance}},
                      type_gl_CullDistance);
}

namespace
{
uint16_t GetNextRuleIndex(uint32_t nameHash)
{
    if (nameHash == 1578 - 1)
        return ArraySize(BuiltInArray::kRules);
    return BuiltInArray::kMangledOffsets[nameHash + 1];
}
}  // namespace

const TSymbol *TSymbolTable::findBuiltIn(const ImmutableString &name, int shaderVersion) const
{
    if (name.length() > 40)
        return nullptr;

    uint32_t nameHash = name.mangledNameHash();
    if (nameHash >= 1578)
        return nullptr;

    const char *actualName = BuiltInArray::kMangledNames[nameHash];
    if (name != actualName)
        return nullptr;

    uint16_t startIndex = BuiltInArray::kMangledOffsets[nameHash];
    uint16_t nextIndex  = GetNextRuleIndex(nameHash);

    return FindMangledBuiltIn(mShaderSpec, shaderVersion, mShaderType, mResources, *this,
                              BuiltInArray::kRules, startIndex, nextIndex);
}

bool TSymbolTable::isUnmangledBuiltInName(const ImmutableString &name,
                                          int shaderVersion,
                                          const TExtensionBehavior &extensions) const
{
    if (name.length() > 32)
        return false;

    uint32_t nameHash = name.unmangledNameHash();
    if (nameHash >= 179)
        return false;

    return BuiltInArray::unmangled[nameHash].matches(name, mShaderSpec, shaderVersion, mShaderType,
                                                     extensions);
}

}  // namespace sh
