// GENERATED FILE - DO NOT EDIT.
// Generated by gen_builtin_symbols.py using data from builtin_variables.json and
// builtin_function_declarations.txt.
//
// Copyright 2019 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_ESSL_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;

// Since some of the BuiltInId declarations are used outside of constexpr expressions, we need to
// have these definitions without an initializer. C++17 should eventually remove the need for this.
constexpr const TSymbolUniqueId BuiltInId::radians_Float1;
constexpr const TSymbolUniqueId BuiltInId::radians_Float2;
constexpr const TSymbolUniqueId BuiltInId::radians_Float3;
constexpr const TSymbolUniqueId BuiltInId::radians_Float4;
constexpr const TSymbolUniqueId BuiltInId::degrees_Float1;
constexpr const TSymbolUniqueId BuiltInId::degrees_Float2;
constexpr const TSymbolUniqueId BuiltInId::degrees_Float3;
constexpr const TSymbolUniqueId BuiltInId::degrees_Float4;
constexpr const TSymbolUniqueId BuiltInId::sin_Float1;
constexpr const TSymbolUniqueId BuiltInId::sin_Float2;
constexpr const TSymbolUniqueId BuiltInId::sin_Float3;
constexpr const TSymbolUniqueId BuiltInId::sin_Float4;
constexpr const TSymbolUniqueId BuiltInId::cos_Float1;
constexpr const TSymbolUniqueId BuiltInId::cos_Float2;
constexpr const TSymbolUniqueId BuiltInId::cos_Float3;
constexpr const TSymbolUniqueId BuiltInId::cos_Float4;
constexpr const TSymbolUniqueId BuiltInId::tan_Float1;
constexpr const TSymbolUniqueId BuiltInId::tan_Float2;
constexpr const TSymbolUniqueId BuiltInId::tan_Float3;
constexpr const TSymbolUniqueId BuiltInId::tan_Float4;
constexpr const TSymbolUniqueId BuiltInId::asin_Float1;
constexpr const TSymbolUniqueId BuiltInId::asin_Float2;
constexpr const TSymbolUniqueId BuiltInId::asin_Float3;
constexpr const TSymbolUniqueId BuiltInId::asin_Float4;
constexpr const TSymbolUniqueId BuiltInId::acos_Float1;
constexpr const TSymbolUniqueId BuiltInId::acos_Float2;
constexpr const TSymbolUniqueId BuiltInId::acos_Float3;
constexpr const TSymbolUniqueId BuiltInId::acos_Float4;
constexpr const TSymbolUniqueId BuiltInId::atan_Float1_Float1;
constexpr const TSymbolUniqueId BuiltInId::atan_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::atan_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::atan_Float4_Float4;
constexpr const TSymbolUniqueId BuiltInId::atan_Float1;
constexpr const TSymbolUniqueId BuiltInId::atan_Float2;
constexpr const TSymbolUniqueId BuiltInId::atan_Float3;
constexpr const TSymbolUniqueId BuiltInId::atan_Float4;
constexpr const TSymbolUniqueId BuiltInId::sinh_Float1;
constexpr const TSymbolUniqueId BuiltInId::sinh_Float2;
constexpr const TSymbolUniqueId BuiltInId::sinh_Float3;
constexpr const TSymbolUniqueId BuiltInId::sinh_Float4;
constexpr const TSymbolUniqueId BuiltInId::cosh_Float1;
constexpr const TSymbolUniqueId BuiltInId::cosh_Float2;
constexpr const TSymbolUniqueId BuiltInId::cosh_Float3;
constexpr const TSymbolUniqueId BuiltInId::cosh_Float4;
constexpr const TSymbolUniqueId BuiltInId::tanh_Float1;
constexpr const TSymbolUniqueId BuiltInId::tanh_Float2;
constexpr const TSymbolUniqueId BuiltInId::tanh_Float3;
constexpr const TSymbolUniqueId BuiltInId::tanh_Float4;
constexpr const TSymbolUniqueId BuiltInId::asinh_Float1;
constexpr const TSymbolUniqueId BuiltInId::asinh_Float2;
constexpr const TSymbolUniqueId BuiltInId::asinh_Float3;
constexpr const TSymbolUniqueId BuiltInId::asinh_Float4;
constexpr const TSymbolUniqueId BuiltInId::acosh_Float1;
constexpr const TSymbolUniqueId BuiltInId::acosh_Float2;
constexpr const TSymbolUniqueId BuiltInId::acosh_Float3;
constexpr const TSymbolUniqueId BuiltInId::acosh_Float4;
constexpr const TSymbolUniqueId BuiltInId::atanh_Float1;
constexpr const TSymbolUniqueId BuiltInId::atanh_Float2;
constexpr const TSymbolUniqueId BuiltInId::atanh_Float3;
constexpr const TSymbolUniqueId BuiltInId::atanh_Float4;
constexpr const TSymbolUniqueId BuiltInId::pow_Float1_Float1;
constexpr const TSymbolUniqueId BuiltInId::pow_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::pow_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::pow_Float4_Float4;
constexpr const TSymbolUniqueId BuiltInId::exp_Float1;
constexpr const TSymbolUniqueId BuiltInId::exp_Float2;
constexpr const TSymbolUniqueId BuiltInId::exp_Float3;
constexpr const TSymbolUniqueId BuiltInId::exp_Float4;
constexpr const TSymbolUniqueId BuiltInId::log_Float1;
constexpr const TSymbolUniqueId BuiltInId::log_Float2;
constexpr const TSymbolUniqueId BuiltInId::log_Float3;
constexpr const TSymbolUniqueId BuiltInId::log_Float4;
constexpr const TSymbolUniqueId BuiltInId::exp2_Float1;
constexpr const TSymbolUniqueId BuiltInId::exp2_Float2;
constexpr const TSymbolUniqueId BuiltInId::exp2_Float3;
constexpr const TSymbolUniqueId BuiltInId::exp2_Float4;
constexpr const TSymbolUniqueId BuiltInId::log2_Float1;
constexpr const TSymbolUniqueId BuiltInId::log2_Float2;
constexpr const TSymbolUniqueId BuiltInId::log2_Float3;
constexpr const TSymbolUniqueId BuiltInId::log2_Float4;
constexpr const TSymbolUniqueId BuiltInId::sqrt_Float1;
constexpr const TSymbolUniqueId BuiltInId::sqrt_Float2;
constexpr const TSymbolUniqueId BuiltInId::sqrt_Float3;
constexpr const TSymbolUniqueId BuiltInId::sqrt_Float4;
constexpr const TSymbolUniqueId BuiltInId::inversesqrt_Float1;
constexpr const TSymbolUniqueId BuiltInId::inversesqrt_Float2;
constexpr const TSymbolUniqueId BuiltInId::inversesqrt_Float3;
constexpr const TSymbolUniqueId BuiltInId::inversesqrt_Float4;
constexpr const TSymbolUniqueId BuiltInId::abs_Float1;
constexpr const TSymbolUniqueId BuiltInId::abs_Float2;
constexpr const TSymbolUniqueId BuiltInId::abs_Float3;
constexpr const TSymbolUniqueId BuiltInId::abs_Float4;
constexpr const TSymbolUniqueId BuiltInId::abs_Int1;
constexpr const TSymbolUniqueId BuiltInId::abs_Int2;
constexpr const TSymbolUniqueId BuiltInId::abs_Int3;
constexpr const TSymbolUniqueId BuiltInId::abs_Int4;
constexpr const TSymbolUniqueId BuiltInId::sign_Float1;
constexpr const TSymbolUniqueId BuiltInId::sign_Float2;
constexpr const TSymbolUniqueId BuiltInId::sign_Float3;
constexpr const TSymbolUniqueId BuiltInId::sign_Float4;
constexpr const TSymbolUniqueId BuiltInId::sign_Int1;
constexpr const TSymbolUniqueId BuiltInId::sign_Int2;
constexpr const TSymbolUniqueId BuiltInId::sign_Int3;
constexpr const TSymbolUniqueId BuiltInId::sign_Int4;
constexpr const TSymbolUniqueId BuiltInId::floor_Float1;
constexpr const TSymbolUniqueId BuiltInId::floor_Float2;
constexpr const TSymbolUniqueId BuiltInId::floor_Float3;
constexpr const TSymbolUniqueId BuiltInId::floor_Float4;
constexpr const TSymbolUniqueId BuiltInId::trunc_Float1;
constexpr const TSymbolUniqueId BuiltInId::trunc_Float2;
constexpr const TSymbolUniqueId BuiltInId::trunc_Float3;
constexpr const TSymbolUniqueId BuiltInId::trunc_Float4;
constexpr const TSymbolUniqueId BuiltInId::round_Float1;
constexpr const TSymbolUniqueId BuiltInId::round_Float2;
constexpr const TSymbolUniqueId BuiltInId::round_Float3;
constexpr const TSymbolUniqueId BuiltInId::round_Float4;
constexpr const TSymbolUniqueId BuiltInId::roundEven_Float1;
constexpr const TSymbolUniqueId BuiltInId::roundEven_Float2;
constexpr const TSymbolUniqueId BuiltInId::roundEven_Float3;
constexpr const TSymbolUniqueId BuiltInId::roundEven_Float4;
constexpr const TSymbolUniqueId BuiltInId::ceil_Float1;
constexpr const TSymbolUniqueId BuiltInId::ceil_Float2;
constexpr const TSymbolUniqueId BuiltInId::ceil_Float3;
constexpr const TSymbolUniqueId BuiltInId::ceil_Float4;
constexpr const TSymbolUniqueId BuiltInId::fract_Float1;
constexpr const TSymbolUniqueId BuiltInId::fract_Float2;
constexpr const TSymbolUniqueId BuiltInId::fract_Float3;
constexpr const TSymbolUniqueId BuiltInId::fract_Float4;
constexpr const TSymbolUniqueId BuiltInId::mod_Float1_Float1;
constexpr const TSymbolUniqueId BuiltInId::mod_Float2_Float1;
constexpr const TSymbolUniqueId BuiltInId::mod_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::mod_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::mod_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::mod_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::mod_Float4_Float4;
constexpr const TSymbolUniqueId BuiltInId::min_Float1_Float1;
constexpr const TSymbolUniqueId BuiltInId::min_Float2_Float1;
constexpr const TSymbolUniqueId BuiltInId::min_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::min_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::min_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::min_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::min_Float4_Float4;
constexpr const TSymbolUniqueId BuiltInId::min_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::min_Int2_Int2;
constexpr const TSymbolUniqueId BuiltInId::min_Int3_Int3;
constexpr const TSymbolUniqueId BuiltInId::min_Int4_Int4;
constexpr const TSymbolUniqueId BuiltInId::min_Int2_Int1;
constexpr const TSymbolUniqueId BuiltInId::min_Int3_Int1;
constexpr const TSymbolUniqueId BuiltInId::min_Int4_Int1;
constexpr const TSymbolUniqueId BuiltInId::min_UInt1_UInt1;
constexpr const TSymbolUniqueId BuiltInId::min_UInt2_UInt2;
constexpr const TSymbolUniqueId BuiltInId::min_UInt3_UInt3;
constexpr const TSymbolUniqueId BuiltInId::min_UInt4_UInt4;
constexpr const TSymbolUniqueId BuiltInId::min_UInt2_UInt1;
constexpr const TSymbolUniqueId BuiltInId::min_UInt3_UInt1;
constexpr const TSymbolUniqueId BuiltInId::min_UInt4_UInt1;
constexpr const TSymbolUniqueId BuiltInId::max_Float1_Float1;
constexpr const TSymbolUniqueId BuiltInId::max_Float2_Float1;
constexpr const TSymbolUniqueId BuiltInId::max_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::max_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::max_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::max_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::max_Float4_Float4;
constexpr const TSymbolUniqueId BuiltInId::max_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::max_Int2_Int2;
constexpr const TSymbolUniqueId BuiltInId::max_Int3_Int3;
constexpr const TSymbolUniqueId BuiltInId::max_Int4_Int4;
constexpr const TSymbolUniqueId BuiltInId::max_Int2_Int1;
constexpr const TSymbolUniqueId BuiltInId::max_Int3_Int1;
constexpr const TSymbolUniqueId BuiltInId::max_Int4_Int1;
constexpr const TSymbolUniqueId BuiltInId::max_UInt1_UInt1;
constexpr const TSymbolUniqueId BuiltInId::max_UInt2_UInt2;
constexpr const TSymbolUniqueId BuiltInId::max_UInt3_UInt3;
constexpr const TSymbolUniqueId BuiltInId::max_UInt4_UInt4;
constexpr const TSymbolUniqueId BuiltInId::max_UInt2_UInt1;
constexpr const TSymbolUniqueId BuiltInId::max_UInt3_UInt1;
constexpr const TSymbolUniqueId BuiltInId::max_UInt4_UInt1;
constexpr const TSymbolUniqueId BuiltInId::clamp_Float1_Float1_Float1;
constexpr const TSymbolUniqueId BuiltInId::clamp_Float2_Float1_Float1;
constexpr const TSymbolUniqueId BuiltInId::clamp_Float3_Float1_Float1;
constexpr const TSymbolUniqueId BuiltInId::clamp_Float4_Float1_Float1;
constexpr const TSymbolUniqueId BuiltInId::clamp_Float2_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::clamp_Float3_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::clamp_Float4_Float4_Float4;
constexpr const TSymbolUniqueId BuiltInId::clamp_Int1_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::clamp_Int2_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::clamp_Int3_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::clamp_Int4_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::clamp_Int2_Int2_Int2;
constexpr const TSymbolUniqueId BuiltInId::clamp_Int3_Int3_Int3;
constexpr const TSymbolUniqueId BuiltInId::clamp_Int4_Int4_Int4;
constexpr const TSymbolUniqueId BuiltInId::clamp_UInt1_UInt1_UInt1;
constexpr const TSymbolUniqueId BuiltInId::clamp_UInt2_UInt1_UInt1;
constexpr const TSymbolUniqueId BuiltInId::clamp_UInt3_UInt1_UInt1;
constexpr const TSymbolUniqueId BuiltInId::clamp_UInt4_UInt1_UInt1;
constexpr const TSymbolUniqueId BuiltInId::clamp_UInt2_UInt2_UInt2;
constexpr const TSymbolUniqueId BuiltInId::clamp_UInt3_UInt3_UInt3;
constexpr const TSymbolUniqueId BuiltInId::clamp_UInt4_UInt4_UInt4;
constexpr const TSymbolUniqueId BuiltInId::mix_Float1_Float1_Float1;
constexpr const TSymbolUniqueId BuiltInId::mix_Float2_Float2_Float1;
constexpr const TSymbolUniqueId BuiltInId::mix_Float3_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::mix_Float4_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::mix_Float2_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::mix_Float3_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::mix_Float4_Float4_Float4;
constexpr const TSymbolUniqueId BuiltInId::mix_Float1_Float1_Bool1;
constexpr const TSymbolUniqueId BuiltInId::mix_Float2_Float2_Bool2;
constexpr const TSymbolUniqueId BuiltInId::mix_Float3_Float3_Bool3;
constexpr const TSymbolUniqueId BuiltInId::mix_Float4_Float4_Bool4;
constexpr const TSymbolUniqueId BuiltInId::step_Float1_Float1;
constexpr const TSymbolUniqueId BuiltInId::step_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::step_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::step_Float4_Float4;
constexpr const TSymbolUniqueId BuiltInId::step_Float1_Float2;
constexpr const TSymbolUniqueId BuiltInId::step_Float1_Float3;
constexpr const TSymbolUniqueId BuiltInId::step_Float1_Float4;
constexpr const TSymbolUniqueId BuiltInId::smoothstep_Float1_Float1_Float1;
constexpr const TSymbolUniqueId BuiltInId::smoothstep_Float2_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::smoothstep_Float3_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::smoothstep_Float4_Float4_Float4;
constexpr const TSymbolUniqueId BuiltInId::smoothstep_Float1_Float1_Float2;
constexpr const TSymbolUniqueId BuiltInId::smoothstep_Float1_Float1_Float3;
constexpr const TSymbolUniqueId BuiltInId::smoothstep_Float1_Float1_Float4;
constexpr const TSymbolUniqueId BuiltInId::modf_Float1_Float1;
constexpr const TSymbolUniqueId BuiltInId::modf_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::modf_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::modf_Float4_Float4;
constexpr const TSymbolUniqueId BuiltInId::isnan_Float1;
constexpr const TSymbolUniqueId BuiltInId::isnan_Float2;
constexpr const TSymbolUniqueId BuiltInId::isnan_Float3;
constexpr const TSymbolUniqueId BuiltInId::isnan_Float4;
constexpr const TSymbolUniqueId BuiltInId::isinf_Float1;
constexpr const TSymbolUniqueId BuiltInId::isinf_Float2;
constexpr const TSymbolUniqueId BuiltInId::isinf_Float3;
constexpr const TSymbolUniqueId BuiltInId::isinf_Float4;
constexpr const TSymbolUniqueId BuiltInId::floatBitsToInt_Float1;
constexpr const TSymbolUniqueId BuiltInId::floatBitsToInt_Float2;
constexpr const TSymbolUniqueId BuiltInId::floatBitsToInt_Float3;
constexpr const TSymbolUniqueId BuiltInId::floatBitsToInt_Float4;
constexpr const TSymbolUniqueId BuiltInId::floatBitsToUint_Float1;
constexpr const TSymbolUniqueId BuiltInId::floatBitsToUint_Float2;
constexpr const TSymbolUniqueId BuiltInId::floatBitsToUint_Float3;
constexpr const TSymbolUniqueId BuiltInId::floatBitsToUint_Float4;
constexpr const TSymbolUniqueId BuiltInId::intBitsToFloat_Int1;
constexpr const TSymbolUniqueId BuiltInId::intBitsToFloat_Int2;
constexpr const TSymbolUniqueId BuiltInId::intBitsToFloat_Int3;
constexpr const TSymbolUniqueId BuiltInId::intBitsToFloat_Int4;
constexpr const TSymbolUniqueId BuiltInId::uintBitsToFloat_UInt1;
constexpr const TSymbolUniqueId BuiltInId::uintBitsToFloat_UInt2;
constexpr const TSymbolUniqueId BuiltInId::uintBitsToFloat_UInt3;
constexpr const TSymbolUniqueId BuiltInId::uintBitsToFloat_UInt4;
constexpr const TSymbolUniqueId BuiltInId::fma_Float1_Float1_Float1;
constexpr const TSymbolUniqueId BuiltInId::fma_Float2_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::fma_Float3_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::fma_Float4_Float4_Float4;
constexpr const TSymbolUniqueId BuiltInId::fmaExt_Float1_Float1_Float1;
constexpr const TSymbolUniqueId BuiltInId::fmaExt_Float2_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::fmaExt_Float3_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::fmaExt_Float4_Float4_Float4;
constexpr const TSymbolUniqueId BuiltInId::frexp_Float1_Int1;
constexpr const TSymbolUniqueId BuiltInId::frexp_Float2_Int2;
constexpr const TSymbolUniqueId BuiltInId::frexp_Float3_Int3;
constexpr const TSymbolUniqueId BuiltInId::frexp_Float4_Int4;
constexpr const TSymbolUniqueId BuiltInId::ldexp_Float1_Int1;
constexpr const TSymbolUniqueId BuiltInId::ldexp_Float2_Int2;
constexpr const TSymbolUniqueId BuiltInId::ldexp_Float3_Int3;
constexpr const TSymbolUniqueId BuiltInId::ldexp_Float4_Int4;
constexpr const TSymbolUniqueId BuiltInId::packSnorm2x16_Float2;
constexpr const TSymbolUniqueId BuiltInId::packHalf2x16_Float2;
constexpr const TSymbolUniqueId BuiltInId::unpackSnorm2x16_UInt1;
constexpr const TSymbolUniqueId BuiltInId::unpackHalf2x16_UInt1;
constexpr const TSymbolUniqueId BuiltInId::packUnorm2x16_Float2;
constexpr const TSymbolUniqueId BuiltInId::unpackUnorm2x16_UInt1;
constexpr const TSymbolUniqueId BuiltInId::packUnorm4x8_Float4;
constexpr const TSymbolUniqueId BuiltInId::packSnorm4x8_Float4;
constexpr const TSymbolUniqueId BuiltInId::unpackUnorm4x8_UInt1;
constexpr const TSymbolUniqueId BuiltInId::unpackSnorm4x8_UInt1;
constexpr const TSymbolUniqueId BuiltInId::length_Float1;
constexpr const TSymbolUniqueId BuiltInId::length_Float2;
constexpr const TSymbolUniqueId BuiltInId::length_Float3;
constexpr const TSymbolUniqueId BuiltInId::length_Float4;
constexpr const TSymbolUniqueId BuiltInId::distance_Float1_Float1;
constexpr const TSymbolUniqueId BuiltInId::distance_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::distance_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::distance_Float4_Float4;
constexpr const TSymbolUniqueId BuiltInId::dot_Float1_Float1;
constexpr const TSymbolUniqueId BuiltInId::dot_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::dot_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::dot_Float4_Float4;
constexpr const TSymbolUniqueId BuiltInId::cross_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::normalize_Float1;
constexpr const TSymbolUniqueId BuiltInId::normalize_Float2;
constexpr const TSymbolUniqueId BuiltInId::normalize_Float3;
constexpr const TSymbolUniqueId BuiltInId::normalize_Float4;
constexpr const TSymbolUniqueId BuiltInId::faceforward_Float1_Float1_Float1;
constexpr const TSymbolUniqueId BuiltInId::faceforward_Float2_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::faceforward_Float3_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::faceforward_Float4_Float4_Float4;
constexpr const TSymbolUniqueId BuiltInId::reflect_Float1_Float1;
constexpr const TSymbolUniqueId BuiltInId::reflect_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::reflect_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::reflect_Float4_Float4;
constexpr const TSymbolUniqueId BuiltInId::refract_Float1_Float1_Float1;
constexpr const TSymbolUniqueId BuiltInId::refract_Float2_Float2_Float1;
constexpr const TSymbolUniqueId BuiltInId::refract_Float3_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::refract_Float4_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::matrixCompMult_Float2x2_Float2x2;
constexpr const TSymbolUniqueId BuiltInId::matrixCompMult_Float3x3_Float3x3;
constexpr const TSymbolUniqueId BuiltInId::matrixCompMult_Float4x4_Float4x4;
constexpr const TSymbolUniqueId BuiltInId::matrixCompMult_Float2x3_Float2x3;
constexpr const TSymbolUniqueId BuiltInId::matrixCompMult_Float3x2_Float3x2;
constexpr const TSymbolUniqueId BuiltInId::matrixCompMult_Float2x4_Float2x4;
constexpr const TSymbolUniqueId BuiltInId::matrixCompMult_Float4x2_Float4x2;
constexpr const TSymbolUniqueId BuiltInId::matrixCompMult_Float3x4_Float3x4;
constexpr const TSymbolUniqueId BuiltInId::matrixCompMult_Float4x3_Float4x3;
constexpr const TSymbolUniqueId BuiltInId::outerProduct_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::outerProduct_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::outerProduct_Float4_Float4;
constexpr const TSymbolUniqueId BuiltInId::outerProduct_Float3_Float2;
constexpr const TSymbolUniqueId BuiltInId::outerProduct_Float2_Float3;
constexpr const TSymbolUniqueId BuiltInId::outerProduct_Float4_Float2;
constexpr const TSymbolUniqueId BuiltInId::outerProduct_Float2_Float4;
constexpr const TSymbolUniqueId BuiltInId::outerProduct_Float4_Float3;
constexpr const TSymbolUniqueId BuiltInId::outerProduct_Float3_Float4;
constexpr const TSymbolUniqueId BuiltInId::transpose_Float2x2;
constexpr const TSymbolUniqueId BuiltInId::transpose_Float3x3;
constexpr const TSymbolUniqueId BuiltInId::transpose_Float4x4;
constexpr const TSymbolUniqueId BuiltInId::transpose_Float3x2;
constexpr const TSymbolUniqueId BuiltInId::transpose_Float2x3;
constexpr const TSymbolUniqueId BuiltInId::transpose_Float4x2;
constexpr const TSymbolUniqueId BuiltInId::transpose_Float2x4;
constexpr const TSymbolUniqueId BuiltInId::transpose_Float4x3;
constexpr const TSymbolUniqueId BuiltInId::transpose_Float3x4;
constexpr const TSymbolUniqueId BuiltInId::determinant_Float2x2;
constexpr const TSymbolUniqueId BuiltInId::determinant_Float3x3;
constexpr const TSymbolUniqueId BuiltInId::determinant_Float4x4;
constexpr const TSymbolUniqueId BuiltInId::inverse_Float2x2;
constexpr const TSymbolUniqueId BuiltInId::inverse_Float3x3;
constexpr const TSymbolUniqueId BuiltInId::inverse_Float4x4;
constexpr const TSymbolUniqueId BuiltInId::lessThan_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::lessThan_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::lessThan_Float4_Float4;
constexpr const TSymbolUniqueId BuiltInId::lessThan_Int2_Int2;
constexpr const TSymbolUniqueId BuiltInId::lessThan_Int3_Int3;
constexpr const TSymbolUniqueId BuiltInId::lessThan_Int4_Int4;
constexpr const TSymbolUniqueId BuiltInId::lessThan_UInt2_UInt2;
constexpr const TSymbolUniqueId BuiltInId::lessThan_UInt3_UInt3;
constexpr const TSymbolUniqueId BuiltInId::lessThan_UInt4_UInt4;
constexpr const TSymbolUniqueId BuiltInId::lessThanEqual_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::lessThanEqual_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::lessThanEqual_Float4_Float4;
constexpr const TSymbolUniqueId BuiltInId::lessThanEqual_Int2_Int2;
constexpr const TSymbolUniqueId BuiltInId::lessThanEqual_Int3_Int3;
constexpr const TSymbolUniqueId BuiltInId::lessThanEqual_Int4_Int4;
constexpr const TSymbolUniqueId BuiltInId::lessThanEqual_UInt2_UInt2;
constexpr const TSymbolUniqueId BuiltInId::lessThanEqual_UInt3_UInt3;
constexpr const TSymbolUniqueId BuiltInId::lessThanEqual_UInt4_UInt4;
constexpr const TSymbolUniqueId BuiltInId::greaterThan_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::greaterThan_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::greaterThan_Float4_Float4;
constexpr const TSymbolUniqueId BuiltInId::greaterThan_Int2_Int2;
constexpr const TSymbolUniqueId BuiltInId::greaterThan_Int3_Int3;
constexpr const TSymbolUniqueId BuiltInId::greaterThan_Int4_Int4;
constexpr const TSymbolUniqueId BuiltInId::greaterThan_UInt2_UInt2;
constexpr const TSymbolUniqueId BuiltInId::greaterThan_UInt3_UInt3;
constexpr const TSymbolUniqueId BuiltInId::greaterThan_UInt4_UInt4;
constexpr const TSymbolUniqueId BuiltInId::greaterThanEqual_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::greaterThanEqual_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::greaterThanEqual_Float4_Float4;
constexpr const TSymbolUniqueId BuiltInId::greaterThanEqual_Int2_Int2;
constexpr const TSymbolUniqueId BuiltInId::greaterThanEqual_Int3_Int3;
constexpr const TSymbolUniqueId BuiltInId::greaterThanEqual_Int4_Int4;
constexpr const TSymbolUniqueId BuiltInId::greaterThanEqual_UInt2_UInt2;
constexpr const TSymbolUniqueId BuiltInId::greaterThanEqual_UInt3_UInt3;
constexpr const TSymbolUniqueId BuiltInId::greaterThanEqual_UInt4_UInt4;
constexpr const TSymbolUniqueId BuiltInId::equal_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::equal_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::equal_Float4_Float4;
constexpr const TSymbolUniqueId BuiltInId::equal_Int2_Int2;
constexpr const TSymbolUniqueId BuiltInId::equal_Int3_Int3;
constexpr const TSymbolUniqueId BuiltInId::equal_Int4_Int4;
constexpr const TSymbolUniqueId BuiltInId::equal_UInt2_UInt2;
constexpr const TSymbolUniqueId BuiltInId::equal_UInt3_UInt3;
constexpr const TSymbolUniqueId BuiltInId::equal_UInt4_UInt4;
constexpr const TSymbolUniqueId BuiltInId::equal_Bool2_Bool2;
constexpr const TSymbolUniqueId BuiltInId::equal_Bool3_Bool3;
constexpr const TSymbolUniqueId BuiltInId::equal_Bool4_Bool4;
constexpr const TSymbolUniqueId BuiltInId::notEqual_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::notEqual_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::notEqual_Float4_Float4;
constexpr const TSymbolUniqueId BuiltInId::notEqual_Int2_Int2;
constexpr const TSymbolUniqueId BuiltInId::notEqual_Int3_Int3;
constexpr const TSymbolUniqueId BuiltInId::notEqual_Int4_Int4;
constexpr const TSymbolUniqueId BuiltInId::notEqual_UInt2_UInt2;
constexpr const TSymbolUniqueId BuiltInId::notEqual_UInt3_UInt3;
constexpr const TSymbolUniqueId BuiltInId::notEqual_UInt4_UInt4;
constexpr const TSymbolUniqueId BuiltInId::notEqual_Bool2_Bool2;
constexpr const TSymbolUniqueId BuiltInId::notEqual_Bool3_Bool3;
constexpr const TSymbolUniqueId BuiltInId::notEqual_Bool4_Bool4;
constexpr const TSymbolUniqueId BuiltInId::any_Bool2;
constexpr const TSymbolUniqueId BuiltInId::any_Bool3;
constexpr const TSymbolUniqueId BuiltInId::any_Bool4;
constexpr const TSymbolUniqueId BuiltInId::all_Bool2;
constexpr const TSymbolUniqueId BuiltInId::all_Bool3;
constexpr const TSymbolUniqueId BuiltInId::all_Bool4;
constexpr const TSymbolUniqueId BuiltInId::notFunc_Bool2;
constexpr const TSymbolUniqueId BuiltInId::notFunc_Bool3;
constexpr const TSymbolUniqueId BuiltInId::notFunc_Bool4;
constexpr const TSymbolUniqueId BuiltInId::bitfieldExtract_Int1_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::bitfieldExtract_Int2_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::bitfieldExtract_Int3_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::bitfieldExtract_Int4_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::bitfieldExtract_UInt1_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::bitfieldExtract_UInt2_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::bitfieldExtract_UInt3_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::bitfieldExtract_UInt4_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::bitfieldInsert_Int1_Int1_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::bitfieldInsert_Int2_Int2_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::bitfieldInsert_Int3_Int3_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::bitfieldInsert_Int4_Int4_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::bitfieldInsert_UInt1_UInt1_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::bitfieldInsert_UInt2_UInt2_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::bitfieldInsert_UInt3_UInt3_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::bitfieldInsert_UInt4_UInt4_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::bitfieldReverse_Int1;
constexpr const TSymbolUniqueId BuiltInId::bitfieldReverse_Int2;
constexpr const TSymbolUniqueId BuiltInId::bitfieldReverse_Int3;
constexpr const TSymbolUniqueId BuiltInId::bitfieldReverse_Int4;
constexpr const TSymbolUniqueId BuiltInId::bitfieldReverse_UInt1;
constexpr const TSymbolUniqueId BuiltInId::bitfieldReverse_UInt2;
constexpr const TSymbolUniqueId BuiltInId::bitfieldReverse_UInt3;
constexpr const TSymbolUniqueId BuiltInId::bitfieldReverse_UInt4;
constexpr const TSymbolUniqueId BuiltInId::bitCount_Int1;
constexpr const TSymbolUniqueId BuiltInId::bitCount_Int2;
constexpr const TSymbolUniqueId BuiltInId::bitCount_Int3;
constexpr const TSymbolUniqueId BuiltInId::bitCount_Int4;
constexpr const TSymbolUniqueId BuiltInId::bitCount_UInt1;
constexpr const TSymbolUniqueId BuiltInId::bitCount_UInt2;
constexpr const TSymbolUniqueId BuiltInId::bitCount_UInt3;
constexpr const TSymbolUniqueId BuiltInId::bitCount_UInt4;
constexpr const TSymbolUniqueId BuiltInId::findLSB_Int1;
constexpr const TSymbolUniqueId BuiltInId::findLSB_Int2;
constexpr const TSymbolUniqueId BuiltInId::findLSB_Int3;
constexpr const TSymbolUniqueId BuiltInId::findLSB_Int4;
constexpr const TSymbolUniqueId BuiltInId::findLSB_UInt1;
constexpr const TSymbolUniqueId BuiltInId::findLSB_UInt2;
constexpr const TSymbolUniqueId BuiltInId::findLSB_UInt3;
constexpr const TSymbolUniqueId BuiltInId::findLSB_UInt4;
constexpr const TSymbolUniqueId BuiltInId::findMSB_Int1;
constexpr const TSymbolUniqueId BuiltInId::findMSB_Int2;
constexpr const TSymbolUniqueId BuiltInId::findMSB_Int3;
constexpr const TSymbolUniqueId BuiltInId::findMSB_Int4;
constexpr const TSymbolUniqueId BuiltInId::findMSB_UInt1;
constexpr const TSymbolUniqueId BuiltInId::findMSB_UInt2;
constexpr const TSymbolUniqueId BuiltInId::findMSB_UInt3;
constexpr const TSymbolUniqueId BuiltInId::findMSB_UInt4;
constexpr const TSymbolUniqueId BuiltInId::uaddCarry_UInt1_UInt1_UInt1;
constexpr const TSymbolUniqueId BuiltInId::uaddCarry_UInt2_UInt2_UInt2;
constexpr const TSymbolUniqueId BuiltInId::uaddCarry_UInt3_UInt3_UInt3;
constexpr const TSymbolUniqueId BuiltInId::uaddCarry_UInt4_UInt4_UInt4;
constexpr const TSymbolUniqueId BuiltInId::usubBorrow_UInt1_UInt1_UInt1;
constexpr const TSymbolUniqueId BuiltInId::usubBorrow_UInt2_UInt2_UInt2;
constexpr const TSymbolUniqueId BuiltInId::usubBorrow_UInt3_UInt3_UInt3;
constexpr const TSymbolUniqueId BuiltInId::usubBorrow_UInt4_UInt4_UInt4;
constexpr const TSymbolUniqueId BuiltInId::umulExtended_UInt1_UInt1_UInt1_UInt1;
constexpr const TSymbolUniqueId BuiltInId::umulExtended_UInt2_UInt2_UInt2_UInt2;
constexpr const TSymbolUniqueId BuiltInId::umulExtended_UInt3_UInt3_UInt3_UInt3;
constexpr const TSymbolUniqueId BuiltInId::umulExtended_UInt4_UInt4_UInt4_UInt4;
constexpr const TSymbolUniqueId BuiltInId::imulExtended_Int1_Int1_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::imulExtended_Int2_Int2_Int2_Int2;
constexpr const TSymbolUniqueId BuiltInId::imulExtended_Int3_Int3_Int3_Int3;
constexpr const TSymbolUniqueId BuiltInId::imulExtended_Int4_Int4_Int4_Int4;
constexpr const TSymbolUniqueId BuiltInId::texture2D_Sampler2D1_Float2;
constexpr const TSymbolUniqueId BuiltInId::texture2DProj_Sampler2D1_Float3;
constexpr const TSymbolUniqueId BuiltInId::texture2DProj_Sampler2D1_Float4;
constexpr const TSymbolUniqueId BuiltInId::textureCube_SamplerCube1_Float3;
constexpr const TSymbolUniqueId BuiltInId::texture2D_SamplerExternalOES1_Float2;
constexpr const TSymbolUniqueId BuiltInId::texture2DProj_SamplerExternalOES1_Float3;
constexpr const TSymbolUniqueId BuiltInId::texture2DProj_SamplerExternalOES1_Float4;
constexpr const TSymbolUniqueId BuiltInId::texture2DRect_Sampler2DRect1_Float2;
constexpr const TSymbolUniqueId BuiltInId::texture2DRectProj_Sampler2DRect1_Float3;
constexpr const TSymbolUniqueId BuiltInId::texture2DRectProj_Sampler2DRect1_Float4;
constexpr const TSymbolUniqueId BuiltInId::texture_Sampler2DRect1_Float2;
constexpr const TSymbolUniqueId BuiltInId::textureProj_Sampler2DRect1_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureProj_Sampler2DRect1_Float4;
constexpr const TSymbolUniqueId BuiltInId::texture2DGradEXT_Sampler2D1_Float2_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::texture2DProjGradEXT_Sampler2D1_Float3_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::texture2DProjGradEXT_Sampler2D1_Float4_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::textureCubeGradEXT_SamplerCube1_Float3_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::texture2D_Sampler2D1_Float2_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture2DProj_Sampler2D1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture2DProj_Sampler2D1_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureCube_SamplerCube1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::dFdxExt_Float1;
constexpr const TSymbolUniqueId BuiltInId::dFdxExt_Float2;
constexpr const TSymbolUniqueId BuiltInId::dFdxExt_Float3;
constexpr const TSymbolUniqueId BuiltInId::dFdxExt_Float4;
constexpr const TSymbolUniqueId BuiltInId::dFdyExt_Float1;
constexpr const TSymbolUniqueId BuiltInId::dFdyExt_Float2;
constexpr const TSymbolUniqueId BuiltInId::dFdyExt_Float3;
constexpr const TSymbolUniqueId BuiltInId::dFdyExt_Float4;
constexpr const TSymbolUniqueId BuiltInId::fwidthExt_Float1;
constexpr const TSymbolUniqueId BuiltInId::fwidthExt_Float2;
constexpr const TSymbolUniqueId BuiltInId::fwidthExt_Float3;
constexpr const TSymbolUniqueId BuiltInId::fwidthExt_Float4;
constexpr const TSymbolUniqueId BuiltInId::texture2DLodEXT_Sampler2D1_Float2_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture2DProjLodEXT_Sampler2D1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture2DProjLodEXT_Sampler2D1_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureCubeLodEXT_SamplerCube1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture3D_Sampler3D1_Float3;
constexpr const TSymbolUniqueId BuiltInId::texture3DProj_Sampler3D1_Float4;
constexpr const TSymbolUniqueId BuiltInId::texture3D_Sampler3D1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture3DProj_Sampler3D1_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture3DLod_Sampler3D1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture3DProjLod_Sampler3D1_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture2DLod_Sampler2D1_Float2_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture2DProjLod_Sampler2D1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture2DProjLod_Sampler2D1_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureCubeLod_SamplerCube1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture_Sampler2D1_Float2;
constexpr const TSymbolUniqueId BuiltInId::texture_ISampler2D1_Float2;
constexpr const TSymbolUniqueId BuiltInId::texture_USampler2D1_Float2;
constexpr const TSymbolUniqueId BuiltInId::texture_Sampler3D1_Float3;
constexpr const TSymbolUniqueId BuiltInId::texture_ISampler3D1_Float3;
constexpr const TSymbolUniqueId BuiltInId::texture_USampler3D1_Float3;
constexpr const TSymbolUniqueId BuiltInId::texture_SamplerCube1_Float3;
constexpr const TSymbolUniqueId BuiltInId::texture_ISamplerCube1_Float3;
constexpr const TSymbolUniqueId BuiltInId::texture_USamplerCube1_Float3;
constexpr const TSymbolUniqueId BuiltInId::texture_Sampler2DArray1_Float3;
constexpr const TSymbolUniqueId BuiltInId::texture_ISampler2DArray1_Float3;
constexpr const TSymbolUniqueId BuiltInId::texture_USampler2DArray1_Float3;
constexpr const TSymbolUniqueId BuiltInId::texture_Sampler2DShadow1_Float3;
constexpr const TSymbolUniqueId BuiltInId::texture_SamplerCubeShadow1_Float4;
constexpr const TSymbolUniqueId BuiltInId::texture_Sampler2DArrayShadow1_Float4;
constexpr const TSymbolUniqueId BuiltInId::textureProj_Sampler2D1_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureProj_ISampler2D1_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureProj_USampler2D1_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureProj_Sampler2D1_Float4;
constexpr const TSymbolUniqueId BuiltInId::textureProj_ISampler2D1_Float4;
constexpr const TSymbolUniqueId BuiltInId::textureProj_USampler2D1_Float4;
constexpr const TSymbolUniqueId BuiltInId::textureProj_Sampler3D1_Float4;
constexpr const TSymbolUniqueId BuiltInId::textureProj_ISampler3D1_Float4;
constexpr const TSymbolUniqueId BuiltInId::textureProj_USampler3D1_Float4;
constexpr const TSymbolUniqueId BuiltInId::textureProj_Sampler2DShadow1_Float4;
constexpr const TSymbolUniqueId BuiltInId::textureLod_Sampler2D1_Float2_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureLod_ISampler2D1_Float2_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureLod_USampler2D1_Float2_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureLod_Sampler3D1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureLod_ISampler3D1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureLod_USampler3D1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureLod_SamplerCube1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureLod_ISamplerCube1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureLod_USamplerCube1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureLod_Sampler2DArray1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureLod_ISampler2DArray1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureLod_USampler2DArray1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureLod_Sampler2DShadow1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureSize_Sampler2D1_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureSize_ISampler2D1_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureSize_USampler2D1_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureSize_Sampler3D1_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureSize_ISampler3D1_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureSize_USampler3D1_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureSize_SamplerCube1_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureSize_ISamplerCube1_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureSize_USamplerCube1_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureSize_Sampler2DArray1_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureSize_ISampler2DArray1_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureSize_USampler2DArray1_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureSize_Sampler2DShadow1_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureSize_SamplerCubeShadow1_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureSize_Sampler2DArrayShadow1_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureProjLod_Sampler2D1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProjLod_ISampler2D1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProjLod_USampler2D1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProjLod_Sampler2D1_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProjLod_ISampler2D1_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProjLod_USampler2D1_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProjLod_Sampler3D1_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProjLod_ISampler3D1_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProjLod_USampler3D1_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProjLod_Sampler2DShadow1_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::texelFetch_Sampler2D1_Int2_Int1;
constexpr const TSymbolUniqueId BuiltInId::texelFetch_ISampler2D1_Int2_Int1;
constexpr const TSymbolUniqueId BuiltInId::texelFetch_USampler2D1_Int2_Int1;
constexpr const TSymbolUniqueId BuiltInId::texelFetch_Sampler3D1_Int3_Int1;
constexpr const TSymbolUniqueId BuiltInId::texelFetch_ISampler3D1_Int3_Int1;
constexpr const TSymbolUniqueId BuiltInId::texelFetch_USampler3D1_Int3_Int1;
constexpr const TSymbolUniqueId BuiltInId::texelFetch_Sampler2DArray1_Int3_Int1;
constexpr const TSymbolUniqueId BuiltInId::texelFetch_ISampler2DArray1_Int3_Int1;
constexpr const TSymbolUniqueId BuiltInId::texelFetch_USampler2DArray1_Int3_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGrad_Sampler2D1_Float2_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::textureGrad_ISampler2D1_Float2_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::textureGrad_USampler2D1_Float2_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::textureGrad_Sampler3D1_Float3_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureGrad_ISampler3D1_Float3_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureGrad_USampler3D1_Float3_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureGrad_SamplerCube1_Float3_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureGrad_ISamplerCube1_Float3_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureGrad_USamplerCube1_Float3_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureGrad_Sampler2DShadow1_Float3_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::textureGrad_SamplerCubeShadow1_Float4_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureGrad_Sampler2DArray1_Float3_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::textureGrad_ISampler2DArray1_Float3_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::textureGrad_USampler2DArray1_Float3_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::textureGrad_Sampler2DArrayShadow1_Float4_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_Sampler2D1_Float3_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_ISampler2D1_Float3_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_USampler2D1_Float3_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_Sampler2D1_Float4_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_ISampler2D1_Float4_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_USampler2D1_Float4_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_Sampler3D1_Float4_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_ISampler3D1_Float4_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_USampler3D1_Float4_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_Sampler2DShadow1_Float4_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::textureSize_Sampler2DMS1;
constexpr const TSymbolUniqueId BuiltInId::textureSize_ISampler2DMS1;
constexpr const TSymbolUniqueId BuiltInId::textureSize_USampler2DMS1;
constexpr const TSymbolUniqueId BuiltInId::textureSizeExt_Sampler2DMS1;
constexpr const TSymbolUniqueId BuiltInId::textureSizeExt_ISampler2DMS1;
constexpr const TSymbolUniqueId BuiltInId::textureSizeExt_USampler2DMS1;
constexpr const TSymbolUniqueId BuiltInId::textureSizeExt_Sampler2DMSArray1;
constexpr const TSymbolUniqueId BuiltInId::textureSizeExt_ISampler2DMSArray1;
constexpr const TSymbolUniqueId BuiltInId::textureSizeExt_USampler2DMSArray1;
constexpr const TSymbolUniqueId BuiltInId::texelFetch_Sampler2DMS1_Int2_Int1;
constexpr const TSymbolUniqueId BuiltInId::texelFetch_ISampler2DMS1_Int2_Int1;
constexpr const TSymbolUniqueId BuiltInId::texelFetch_USampler2DMS1_Int2_Int1;
constexpr const TSymbolUniqueId BuiltInId::texelFetchExt_Sampler2DMS1_Int2_Int1;
constexpr const TSymbolUniqueId BuiltInId::texelFetchExt_ISampler2DMS1_Int2_Int1;
constexpr const TSymbolUniqueId BuiltInId::texelFetchExt_USampler2DMS1_Int2_Int1;
constexpr const TSymbolUniqueId BuiltInId::texelFetchExt_Sampler2DMSArray1_Int3_Int1;
constexpr const TSymbolUniqueId BuiltInId::texelFetchExt_ISampler2DMSArray1_Int3_Int1;
constexpr const TSymbolUniqueId BuiltInId::texelFetchExt_USampler2DMSArray1_Int3_Int1;
constexpr const TSymbolUniqueId BuiltInId::texture_Sampler2D1_Float2_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture_ISampler2D1_Float2_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture_USampler2D1_Float2_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture_Sampler3D1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture_ISampler3D1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture_USampler3D1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture_SamplerCube1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture_ISamplerCube1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture_USamplerCube1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture_Sampler2DArray1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture_ISampler2DArray1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture_USampler2DArray1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProj_Sampler2D1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProj_ISampler2D1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProj_USampler2D1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProj_Sampler2D1_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProj_ISampler2D1_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProj_USampler2D1_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProj_Sampler3D1_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProj_ISampler3D1_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProj_USampler3D1_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture_Sampler2DShadow1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture_SamplerCubeShadow1_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProj_Sampler2DShadow1_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture_SamplerExternalOES1_Float2_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProj_SamplerExternalOES1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProj_SamplerExternalOES1_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture_SamplerExternal2DY2YEXT1_Float2_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureOffset_Sampler2D1_Float2_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureOffset_ISampler2D1_Float2_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureOffset_USampler2D1_Float2_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureOffset_Sampler3D1_Float3_Int3;
constexpr const TSymbolUniqueId BuiltInId::textureOffset_ISampler3D1_Float3_Int3;
constexpr const TSymbolUniqueId BuiltInId::textureOffset_USampler3D1_Float3_Int3;
constexpr const TSymbolUniqueId BuiltInId::textureOffset_Sampler2DShadow1_Float3_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureOffset_Sampler2DArray1_Float3_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureOffset_ISampler2DArray1_Float3_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureOffset_USampler2DArray1_Float3_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_Sampler2D1_Float3_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_ISampler2D1_Float3_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_USampler2D1_Float3_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_Sampler2D1_Float4_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_ISampler2D1_Float4_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_USampler2D1_Float4_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_Sampler3D1_Float4_Int3;
constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_ISampler3D1_Float4_Int3;
constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_USampler3D1_Float4_Int3;
constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_Sampler2DShadow1_Float4_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureLodOffset_Sampler2D1_Float2_Float1_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureLodOffset_ISampler2D1_Float2_Float1_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureLodOffset_USampler2D1_Float2_Float1_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureLodOffset_Sampler3D1_Float3_Float1_Int3;
constexpr const TSymbolUniqueId BuiltInId::textureLodOffset_ISampler3D1_Float3_Float1_Int3;
constexpr const TSymbolUniqueId BuiltInId::textureLodOffset_USampler3D1_Float3_Float1_Int3;
constexpr const TSymbolUniqueId BuiltInId::textureLodOffset_Sampler2DShadow1_Float3_Float1_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureLodOffset_Sampler2DArray1_Float3_Float1_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureLodOffset_ISampler2DArray1_Float3_Float1_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureLodOffset_USampler2DArray1_Float3_Float1_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureProjLodOffset_Sampler2D1_Float3_Float1_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureProjLodOffset_ISampler2D1_Float3_Float1_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureProjLodOffset_USampler2D1_Float3_Float1_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureProjLodOffset_Sampler2D1_Float4_Float1_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureProjLodOffset_ISampler2D1_Float4_Float1_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureProjLodOffset_USampler2D1_Float4_Float1_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureProjLodOffset_Sampler3D1_Float4_Float1_Int3;
constexpr const TSymbolUniqueId BuiltInId::textureProjLodOffset_ISampler3D1_Float4_Float1_Int3;
constexpr const TSymbolUniqueId BuiltInId::textureProjLodOffset_USampler3D1_Float4_Float1_Int3;
constexpr const TSymbolUniqueId BuiltInId::textureProjLodOffset_Sampler2DShadow1_Float4_Float1_Int2;
constexpr const TSymbolUniqueId BuiltInId::texelFetchOffset_Sampler2D1_Int2_Int1_Int2;
constexpr const TSymbolUniqueId BuiltInId::texelFetchOffset_ISampler2D1_Int2_Int1_Int2;
constexpr const TSymbolUniqueId BuiltInId::texelFetchOffset_USampler2D1_Int2_Int1_Int2;
constexpr const TSymbolUniqueId BuiltInId::texelFetchOffset_Sampler3D1_Int3_Int1_Int3;
constexpr const TSymbolUniqueId BuiltInId::texelFetchOffset_ISampler3D1_Int3_Int1_Int3;
constexpr const TSymbolUniqueId BuiltInId::texelFetchOffset_USampler3D1_Int3_Int1_Int3;
constexpr const TSymbolUniqueId BuiltInId::texelFetchOffset_Sampler2DArray1_Int3_Int1_Int2;
constexpr const TSymbolUniqueId BuiltInId::texelFetchOffset_ISampler2DArray1_Int3_Int1_Int2;
constexpr const TSymbolUniqueId BuiltInId::texelFetchOffset_USampler2DArray1_Int3_Int1_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureGradOffset_Sampler2D1_Float2_Float2_Float2_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureGradOffset_ISampler2D1_Float2_Float2_Float2_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureGradOffset_USampler2D1_Float2_Float2_Float2_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureGradOffset_Sampler3D1_Float3_Float3_Float3_Int3;
constexpr const TSymbolUniqueId BuiltInId::textureGradOffset_ISampler3D1_Float3_Float3_Float3_Int3;
constexpr const TSymbolUniqueId BuiltInId::textureGradOffset_USampler3D1_Float3_Float3_Float3_Int3;
constexpr const TSymbolUniqueId
    BuiltInId::textureGradOffset_Sampler2DShadow1_Float3_Float2_Float2_Int2;
constexpr const TSymbolUniqueId
    BuiltInId::textureGradOffset_Sampler2DArray1_Float3_Float2_Float2_Int2;
constexpr const TSymbolUniqueId
    BuiltInId::textureGradOffset_ISampler2DArray1_Float3_Float2_Float2_Int2;
constexpr const TSymbolUniqueId
    BuiltInId::textureGradOffset_USampler2DArray1_Float3_Float2_Float2_Int2;
constexpr const TSymbolUniqueId
    BuiltInId::textureGradOffset_Sampler2DArrayShadow1_Float4_Float2_Float2_Int2;
constexpr const TSymbolUniqueId
    BuiltInId::textureProjGradOffset_Sampler2D1_Float3_Float2_Float2_Int2;
constexpr const TSymbolUniqueId
    BuiltInId::textureProjGradOffset_ISampler2D1_Float3_Float2_Float2_Int2;
constexpr const TSymbolUniqueId
    BuiltInId::textureProjGradOffset_USampler2D1_Float3_Float2_Float2_Int2;
constexpr const TSymbolUniqueId
    BuiltInId::textureProjGradOffset_Sampler2D1_Float4_Float2_Float2_Int2;
constexpr const TSymbolUniqueId
    BuiltInId::textureProjGradOffset_ISampler2D1_Float4_Float2_Float2_Int2;
constexpr const TSymbolUniqueId
    BuiltInId::textureProjGradOffset_USampler2D1_Float4_Float2_Float2_Int2;
constexpr const TSymbolUniqueId
    BuiltInId::textureProjGradOffset_Sampler3D1_Float4_Float3_Float3_Int3;
constexpr const TSymbolUniqueId
    BuiltInId::textureProjGradOffset_ISampler3D1_Float4_Float3_Float3_Int3;
constexpr const TSymbolUniqueId
    BuiltInId::textureProjGradOffset_USampler3D1_Float4_Float3_Float3_Int3;
constexpr const TSymbolUniqueId
    BuiltInId::textureProjGradOffset_Sampler2DShadow1_Float4_Float2_Float2_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureOffset_Sampler2D1_Float2_Int2_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureOffset_ISampler2D1_Float2_Int2_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureOffset_USampler2D1_Float2_Int2_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureOffset_Sampler3D1_Float3_Int3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureOffset_ISampler3D1_Float3_Int3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureOffset_USampler3D1_Float3_Int3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureOffset_Sampler2DShadow1_Float3_Int2_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureOffset_Sampler2DArray1_Float3_Int2_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureOffset_ISampler2DArray1_Float3_Int2_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureOffset_USampler2DArray1_Float3_Int2_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_Sampler2D1_Float3_Int2_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_ISampler2D1_Float3_Int2_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_USampler2D1_Float3_Int2_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_Sampler2D1_Float4_Int2_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_ISampler2D1_Float4_Int2_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_USampler2D1_Float4_Int2_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_Sampler3D1_Float4_Int3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_ISampler3D1_Float4_Int3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_USampler3D1_Float4_Int3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_Sampler2DShadow1_Float4_Int2_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture_SamplerExternalOES1_Float2;
constexpr const TSymbolUniqueId BuiltInId::textureProj_SamplerExternalOES1_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureProj_SamplerExternalOES1_Float4;
constexpr const TSymbolUniqueId BuiltInId::textureSize_SamplerExternalOES1_Int1;
constexpr const TSymbolUniqueId BuiltInId::texelFetch_SamplerExternalOES1_Int2_Int1;
constexpr const TSymbolUniqueId BuiltInId::texture_SamplerExternal2DY2YEXT1_Float2;
constexpr const TSymbolUniqueId BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float4;
constexpr const TSymbolUniqueId BuiltInId::rgb_2_yuv_Float3_YuvCscStandardEXT1;
constexpr const TSymbolUniqueId BuiltInId::yuv_2_rgb_Float3_YuvCscStandardEXT1;
constexpr const TSymbolUniqueId BuiltInId::textureSize_SamplerExternal2DY2YEXT1_Int1;
constexpr const TSymbolUniqueId BuiltInId::texelFetch_SamplerExternal2DY2YEXT1_Int2_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGather_Sampler2D1_Float2;
constexpr const TSymbolUniqueId BuiltInId::textureGather_ISampler2D1_Float2;
constexpr const TSymbolUniqueId BuiltInId::textureGather_USampler2D1_Float2;
constexpr const TSymbolUniqueId BuiltInId::textureGather_Sampler2D1_Float2_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGather_ISampler2D1_Float2_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGather_USampler2D1_Float2_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGather_Sampler2DArray1_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureGather_ISampler2DArray1_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureGather_USampler2DArray1_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureGather_Sampler2DArray1_Float3_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGather_ISampler2DArray1_Float3_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGather_USampler2DArray1_Float3_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGather_SamplerCube1_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureGather_ISamplerCube1_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureGather_USamplerCube1_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureGather_SamplerCube1_Float3_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGather_ISamplerCube1_Float3_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGather_USamplerCube1_Float3_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGather_Sampler2DShadow1_Float2;
constexpr const TSymbolUniqueId BuiltInId::textureGather_Sampler2DShadow1_Float2_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureGather_Sampler2DArrayShadow1_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureGather_Sampler2DArrayShadow1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureGather_SamplerCubeShadow1_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureGather_SamplerCubeShadow1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsets_Sampler2D1_Float2_Int4x2_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsets_ISampler2D1_Float2_Int4x2_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsets_USampler2D1_Float2_Int4x2_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsets_Sampler2DArray1_Float3_Int4x2_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsets_ISampler2DArray1_Float3_Int4x2_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsets_USampler2DArray1_Float3_Int4x2_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsetsExt_Sampler2D1_Float2_Int4x2_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsetsExt_ISampler2D1_Float2_Int4x2_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsetsExt_USampler2D1_Float2_Int4x2_Int1;
constexpr const TSymbolUniqueId
    BuiltInId::textureGatherOffsetsExt_Sampler2DArray1_Float3_Int4x2_Int1;
constexpr const TSymbolUniqueId
    BuiltInId::textureGatherOffsetsExt_ISampler2DArray1_Float3_Int4x2_Int1;
constexpr const TSymbolUniqueId
    BuiltInId::textureGatherOffsetsExt_USampler2DArray1_Float3_Int4x2_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsets_Sampler2D1_Float2_Int4x2;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsets_ISampler2D1_Float2_Int4x2;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsets_USampler2D1_Float2_Int4x2;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsets_Sampler2DArray1_Float3_Int4x2;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsets_ISampler2DArray1_Float3_Int4x2;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsets_USampler2DArray1_Float3_Int4x2;
constexpr const TSymbolUniqueId
    BuiltInId::textureGatherOffsets_Sampler2DShadow1_Float2_Float1_Int4x2;
constexpr const TSymbolUniqueId
    BuiltInId::textureGatherOffsets_Sampler2DArrayShadow1_Float3_Float1_Int4x2;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsetsExt_Sampler2D1_Float2_Int4x2;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsetsExt_ISampler2D1_Float2_Int4x2;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsetsExt_USampler2D1_Float2_Int4x2;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsetsExt_Sampler2DArray1_Float3_Int4x2;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsetsExt_ISampler2DArray1_Float3_Int4x2;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsetsExt_USampler2DArray1_Float3_Int4x2;
constexpr const TSymbolUniqueId
    BuiltInId::textureGatherOffsetsExt_Sampler2DShadow1_Float2_Float1_Int4x2;
constexpr const TSymbolUniqueId
    BuiltInId::textureGatherOffsetsExt_Sampler2DArrayShadow1_Float3_Float1_Int4x2;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_Sampler2D1_Float2_Int2_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_ISampler2D1_Float2_Int2_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_USampler2D1_Float2_Int2_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_Sampler2DArray1_Float3_Int2_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_ISampler2DArray1_Float3_Int2_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_USampler2DArray1_Float3_Int2_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_Sampler2D1_Float2_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_ISampler2D1_Float2_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_USampler2D1_Float2_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_Sampler2DArray1_Float3_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_ISampler2DArray1_Float3_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_USampler2DArray1_Float3_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_Sampler2DShadow1_Float2_Float1_Int2;
constexpr const TSymbolUniqueId
    BuiltInId::textureGatherOffset_Sampler2DArrayShadow1_Float3_Float1_Int2;
constexpr const TSymbolUniqueId BuiltInId::dFdx_Float1;
constexpr const TSymbolUniqueId BuiltInId::dFdx_Float2;
constexpr const TSymbolUniqueId BuiltInId::dFdx_Float3;
constexpr const TSymbolUniqueId BuiltInId::dFdx_Float4;
constexpr const TSymbolUniqueId BuiltInId::dFdy_Float1;
constexpr const TSymbolUniqueId BuiltInId::dFdy_Float2;
constexpr const TSymbolUniqueId BuiltInId::dFdy_Float3;
constexpr const TSymbolUniqueId BuiltInId::dFdy_Float4;
constexpr const TSymbolUniqueId BuiltInId::fwidth_Float1;
constexpr const TSymbolUniqueId BuiltInId::fwidth_Float2;
constexpr const TSymbolUniqueId BuiltInId::fwidth_Float3;
constexpr const TSymbolUniqueId BuiltInId::fwidth_Float4;
constexpr const TSymbolUniqueId BuiltInId::atomicCounter_AtomicCounter1;
constexpr const TSymbolUniqueId BuiltInId::atomicCounterIncrement_AtomicCounter1;
constexpr const TSymbolUniqueId BuiltInId::atomicCounterDecrement_AtomicCounter1;
constexpr const TSymbolUniqueId BuiltInId::atomicAdd_UInt1_UInt1;
constexpr const TSymbolUniqueId BuiltInId::atomicAdd_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::atomicMin_UInt1_UInt1;
constexpr const TSymbolUniqueId BuiltInId::atomicMin_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::atomicMax_UInt1_UInt1;
constexpr const TSymbolUniqueId BuiltInId::atomicMax_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::atomicAnd_UInt1_UInt1;
constexpr const TSymbolUniqueId BuiltInId::atomicAnd_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::atomicOr_UInt1_UInt1;
constexpr const TSymbolUniqueId BuiltInId::atomicOr_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::atomicXor_UInt1_UInt1;
constexpr const TSymbolUniqueId BuiltInId::atomicXor_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::atomicExchange_UInt1_UInt1;
constexpr const TSymbolUniqueId BuiltInId::atomicExchange_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::atomicCompSwap_UInt1_UInt1_UInt1;
constexpr const TSymbolUniqueId BuiltInId::atomicCompSwap_Int1_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::imageSize_Image2D1;
constexpr const TSymbolUniqueId BuiltInId::imageSize_IImage2D1;
constexpr const TSymbolUniqueId BuiltInId::imageSize_UImage2D1;
constexpr const TSymbolUniqueId BuiltInId::imageSize_Image3D1;
constexpr const TSymbolUniqueId BuiltInId::imageSize_IImage3D1;
constexpr const TSymbolUniqueId BuiltInId::imageSize_UImage3D1;
constexpr const TSymbolUniqueId BuiltInId::imageSize_Image2DArray1;
constexpr const TSymbolUniqueId BuiltInId::imageSize_IImage2DArray1;
constexpr const TSymbolUniqueId BuiltInId::imageSize_UImage2DArray1;
constexpr const TSymbolUniqueId BuiltInId::imageSize_ImageCube1;
constexpr const TSymbolUniqueId BuiltInId::imageSize_IImageCube1;
constexpr const TSymbolUniqueId BuiltInId::imageSize_UImageCube1;
constexpr const TSymbolUniqueId BuiltInId::imageLoad_Image2D1_Int2;
constexpr const TSymbolUniqueId BuiltInId::imageLoad_IImage2D1_Int2;
constexpr const TSymbolUniqueId BuiltInId::imageLoad_UImage2D1_Int2;
constexpr const TSymbolUniqueId BuiltInId::imageLoad_Image3D1_Int3;
constexpr const TSymbolUniqueId BuiltInId::imageLoad_IImage3D1_Int3;
constexpr const TSymbolUniqueId BuiltInId::imageLoad_UImage3D1_Int3;
constexpr const TSymbolUniqueId BuiltInId::imageLoad_Image2DArray1_Int3;
constexpr const TSymbolUniqueId BuiltInId::imageLoad_IImage2DArray1_Int3;
constexpr const TSymbolUniqueId BuiltInId::imageLoad_UImage2DArray1_Int3;
constexpr const TSymbolUniqueId BuiltInId::imageLoad_ImageCube1_Int3;
constexpr const TSymbolUniqueId BuiltInId::imageLoad_IImageCube1_Int3;
constexpr const TSymbolUniqueId BuiltInId::imageLoad_UImageCube1_Int3;
constexpr const TSymbolUniqueId BuiltInId::imageStore_Image2D1_Int2_Float4;
constexpr const TSymbolUniqueId BuiltInId::imageStore_IImage2D1_Int2_Int4;
constexpr const TSymbolUniqueId BuiltInId::imageStore_UImage2D1_Int2_UInt4;
constexpr const TSymbolUniqueId BuiltInId::imageStore_Image3D1_Int3_Float4;
constexpr const TSymbolUniqueId BuiltInId::imageStore_IImage3D1_Int3_Int4;
constexpr const TSymbolUniqueId BuiltInId::imageStore_UImage3D1_Int3_UInt4;
constexpr const TSymbolUniqueId BuiltInId::imageStore_Image2DArray1_Int3_Float4;
constexpr const TSymbolUniqueId BuiltInId::imageStore_IImage2DArray1_Int3_Int4;
constexpr const TSymbolUniqueId BuiltInId::imageStore_UImage2DArray1_Int3_UInt4;
constexpr const TSymbolUniqueId BuiltInId::imageStore_ImageCube1_Int3_Float4;
constexpr const TSymbolUniqueId BuiltInId::imageStore_IImageCube1_Int3_Int4;
constexpr const TSymbolUniqueId BuiltInId::imageStore_UImageCube1_Int3_UInt4;
constexpr const TSymbolUniqueId BuiltInId::memoryBarrier;
constexpr const TSymbolUniqueId BuiltInId::memoryBarrierAtomicCounter;
constexpr const TSymbolUniqueId BuiltInId::memoryBarrierBuffer;
constexpr const TSymbolUniqueId BuiltInId::memoryBarrierImage;
constexpr const TSymbolUniqueId BuiltInId::barrier;
constexpr const TSymbolUniqueId BuiltInId::memoryBarrierShared;
constexpr const TSymbolUniqueId BuiltInId::groupMemoryBarrier;
constexpr const TSymbolUniqueId BuiltInId::EmitVertex;
constexpr const TSymbolUniqueId BuiltInId::EndPrimitive;
constexpr const TSymbolUniqueId BuiltInId::textureVideoWEBGL_SamplerVideoWEBGL1_Float2;
constexpr const TSymbolUniqueId BuiltInId::texture_SamplerVideoWEBGL1_Float2;
constexpr const TSymbolUniqueId BuiltInId::gl_DepthRangeParameters;
constexpr const TSymbolUniqueId BuiltInId::gl_DepthRange;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxVertexAttribs;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxVertexUniformVectors;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxVertexTextureImageUnits;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxCombinedTextureImageUnits;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxTextureImageUnits;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxFragmentUniformVectors;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxVaryingVectors;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxDrawBuffers;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxDualSourceDrawBuffersEXT;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxVertexOutputVectors;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxFragmentInputVectors;
constexpr const TSymbolUniqueId BuiltInId::gl_MinProgramTexelOffset;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxProgramTexelOffset;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxImageUnits;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxVertexImageUniforms;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxFragmentImageUniforms;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxComputeImageUniforms;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxCombinedImageUniforms;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxCombinedShaderOutputResources;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxComputeWorkGroupCount;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxComputeWorkGroupSize;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxComputeUniformComponents;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxComputeTextureImageUnits;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxComputeAtomicCounters;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxComputeAtomicCounterBuffers;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxVertexAtomicCounters;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxFragmentAtomicCounters;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxCombinedAtomicCounters;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxAtomicCounterBindings;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxVertexAtomicCounterBuffers;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxFragmentAtomicCounterBuffers;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxCombinedAtomicCounterBuffers;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxAtomicCounterBufferSize;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxGeometryInputComponents;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxGeometryOutputComponents;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxGeometryImageUniforms;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxGeometryTextureImageUnits;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxGeometryOutputVertices;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxGeometryTotalOutputComponents;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxGeometryUniformComponents;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxGeometryAtomicCounters;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxGeometryAtomicCounterBuffers;
constexpr const TSymbolUniqueId BuiltInId::gl_FragCoord;
constexpr const TSymbolUniqueId BuiltInId::gl_FrontFacing;
constexpr const TSymbolUniqueId BuiltInId::gl_PointCoord;
constexpr const TSymbolUniqueId BuiltInId::gl_FragColor;
constexpr const TSymbolUniqueId BuiltInId::gl_FragData;
constexpr const TSymbolUniqueId BuiltInId::gl_FragDepth;
constexpr const TSymbolUniqueId BuiltInId::gl_HelperInvocation;
constexpr const TSymbolUniqueId BuiltInId::gl_SecondaryFragColorEXT;
constexpr const TSymbolUniqueId BuiltInId::gl_SecondaryFragDataEXT;
constexpr const TSymbolUniqueId BuiltInId::gl_FragDepthEXT;
constexpr const TSymbolUniqueId BuiltInId::gl_LastFragData;
constexpr const TSymbolUniqueId BuiltInId::gl_LastFragColor;
constexpr const TSymbolUniqueId BuiltInId::gl_LastFragDataNV;
constexpr const TSymbolUniqueId BuiltInId::gl_LastFragColorARM;
constexpr const TSymbolUniqueId BuiltInId::gl_PrimitiveID;
constexpr const TSymbolUniqueId BuiltInId::gl_Layer;
constexpr const TSymbolUniqueId BuiltInId::gl_Position;
constexpr const TSymbolUniqueId BuiltInId::gl_PointSize;
constexpr const TSymbolUniqueId BuiltInId::gl_InstanceID;
constexpr const TSymbolUniqueId BuiltInId::gl_InstanceIndex;
constexpr const TSymbolUniqueId BuiltInId::gl_VertexID;
constexpr const TSymbolUniqueId BuiltInId::gl_VertexIndex;
constexpr const TSymbolUniqueId BuiltInId::gl_ViewportIndex;
constexpr const TSymbolUniqueId BuiltInId::gl_LayerVS;
constexpr const TSymbolUniqueId BuiltInId::gl_DrawID;
constexpr const TSymbolUniqueId BuiltInId::gl_BaseVertex;
constexpr const TSymbolUniqueId BuiltInId::gl_BaseInstance;
constexpr const TSymbolUniqueId BuiltInId::angle_BaseVertex;
constexpr const TSymbolUniqueId BuiltInId::angle_BaseInstance;
constexpr const TSymbolUniqueId BuiltInId::gl_NumWorkGroups;
constexpr const TSymbolUniqueId BuiltInId::gl_WorkGroupSize;
constexpr const TSymbolUniqueId BuiltInId::gl_WorkGroupID;
constexpr const TSymbolUniqueId BuiltInId::gl_LocalInvocationID;
constexpr const TSymbolUniqueId BuiltInId::gl_GlobalInvocationID;
constexpr const TSymbolUniqueId BuiltInId::gl_LocalInvocationIndex;
constexpr const TSymbolUniqueId BuiltInId::gl_PrimitiveIDIn;
constexpr const TSymbolUniqueId BuiltInId::gl_InvocationID;
constexpr const TSymbolUniqueId BuiltInId::gl_PrimitiveIDGS;
constexpr const TSymbolUniqueId BuiltInId::gl_LayerGS;
constexpr const TSymbolUniqueId BuiltInId::gl_PerVertex;
constexpr const TSymbolUniqueId BuiltInId::gl_in;
constexpr const TSymbolUniqueId BuiltInId::gl_PerVertexOutBlock;
constexpr const TSymbolUniqueId BuiltInId::gl_PositionGS;
constexpr const TSymbolUniqueId BuiltInId::gl_ViewID_OVR;

const int TSymbolTable::kLastBuiltInId = 3397;

namespace BuiltInName
{

constexpr const ImmutableString _empty("");
constexpr const ImmutableString EmitVertex("EmitVertex");
constexpr const ImmutableString EndPrimitive("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 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 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_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_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_MaxCombinedAtomicCounterBuffers(
    "gl_MaxCombinedAtomicCounterBuffers");
constexpr const ImmutableString gl_MaxCombinedAtomicCounters("gl_MaxCombinedAtomicCounters");
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_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_MaxProgramTexelOffset("gl_MaxProgramTexelOffset");
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_NumWorkGroups("gl_NumWorkGroups");
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_SecondaryFragColorEXT("gl_SecondaryFragColorEXT");
constexpr const ImmutableString gl_SecondaryFragDataEXT("gl_SecondaryFragDataEXT");
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_ViewportIndex("gl_ViewportIndex");
constexpr const ImmutableString gl_WorkGroupID("gl_WorkGroupID");
constexpr const ImmutableString gl_WorkGroupSize("gl_WorkGroupSize");
constexpr const ImmutableString gl_in("gl_in");
constexpr const ImmutableString greaterThan("greaterThan");
constexpr const ImmutableString greaterThanEqual("greaterThanEqual");
constexpr const ImmutableString groupMemoryBarrier("groupMemoryBarrier");
constexpr const ImmutableString imageLoad("imageLoad");
constexpr const ImmutableString imageSize("imageSize");
constexpr const ImmutableString imageStore("imageStore");
constexpr const ImmutableString imulExtended("imulExtended");
constexpr const ImmutableString intBitsToFloat("intBitsToFloat");
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 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 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 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 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 textureGather("textureGather");
constexpr const ImmutableString textureGatherOffset("textureGatherOffset");
constexpr const ImmutableString textureGatherOffsets("textureGatherOffsets");
constexpr const ImmutableString textureGatherOffsetsExt("textureGatherOffsets");
constexpr const ImmutableString textureGrad("textureGrad");
constexpr const ImmutableString textureGradOffset("textureGradOffset");
constexpr const ImmutableString textureLod("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 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/2390
namespace BuiltInVariable
{

constexpr const TVariable kangle_BaseInstance(
    BuiltInId::angle_BaseInstance,
    BuiltInName::angle_BaseInstance,
    SymbolType::BuiltIn,
    TExtension::ANGLE_base_vertex_base_instance,
    StaticType::Get<EbtInt, EbpHigh, EvqBaseInstance, 1, 1>());
constexpr const TVariable kangle_BaseVertex(
    BuiltInId::angle_BaseVertex,
    BuiltInName::angle_BaseVertex,
    SymbolType::BuiltIn,
    TExtension::ANGLE_base_vertex_base_instance,
    StaticType::Get<EbtInt, EbpHigh, EvqBaseVertex, 1, 1>());
constexpr const TVariable kgl_BaseInstance(
    BuiltInId::gl_BaseInstance,
    BuiltInName::gl_BaseInstance,
    SymbolType::BuiltIn,
    TExtension::ANGLE_base_vertex_base_instance,
    StaticType::Get<EbtInt, EbpHigh, EvqBaseInstance, 1, 1>());
constexpr const TVariable kgl_BaseVertex(BuiltInId::gl_BaseVertex,
                                         BuiltInName::gl_BaseVertex,
                                         SymbolType::BuiltIn,
                                         TExtension::ANGLE_base_vertex_base_instance,
                                         StaticType::Get<EbtInt, EbpHigh, EvqBaseVertex, 1, 1>());
constexpr const TVariable kgl_DrawID(BuiltInId::gl_DrawID,
                                     BuiltInName::gl_DrawID,
                                     SymbolType::BuiltIn,
                                     TExtension::ANGLE_multi_draw,
                                     StaticType::Get<EbtInt, EbpHigh, EvqDrawID, 1, 1>());
constexpr const TVariable kgl_FragColor(BuiltInId::gl_FragColor,
                                        BuiltInName::gl_FragColor,
                                        SymbolType::BuiltIn,
                                        TExtension::UNDEFINED,
                                        StaticType::Get<EbtFloat, EbpMedium, EvqFragColor, 4, 1>());
constexpr const TVariable kgl_FragCoord(BuiltInId::gl_FragCoord,
                                        BuiltInName::gl_FragCoord,
                                        SymbolType::BuiltIn,
                                        TExtension::UNDEFINED,
                                        StaticType::Get<EbtFloat, EbpMedium, EvqFragCoord, 4, 1>());
constexpr const TVariable kgl_FragDepth(BuiltInId::gl_FragDepth,
                                        BuiltInName::gl_FragDepth,
                                        SymbolType::BuiltIn,
                                        TExtension::UNDEFINED,
                                        StaticType::Get<EbtFloat, EbpHigh, EvqFragDepth, 1, 1>());
constexpr const TVariable kgl_FrontFacing(
    BuiltInId::gl_FrontFacing,
    BuiltInName::gl_FrontFacing,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtBool, EbpUndefined, EvqFrontFacing, 1, 1>());
constexpr const TVariable kgl_GlobalInvocationID(
    BuiltInId::gl_GlobalInvocationID,
    BuiltInName::gl_GlobalInvocationID,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobalInvocationID, 3, 1>());
constexpr const TVariable kgl_HelperInvocation(
    BuiltInId::gl_HelperInvocation,
    BuiltInName::gl_HelperInvocation,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtBool, EbpUndefined, EvqHelperInvocation, 1, 1>());
constexpr const TVariable kgl_InstanceID(BuiltInId::gl_InstanceID,
                                         BuiltInName::gl_InstanceID,
                                         SymbolType::BuiltIn,
                                         TExtension::UNDEFINED,
                                         StaticType::Get<EbtInt, EbpHigh, EvqInstanceID, 1, 1>());
constexpr const TVariable kgl_InstanceIndex(
    BuiltInId::gl_InstanceIndex,
    BuiltInName::gl_InstanceIndex,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtInt, EbpHigh, EvqInstanceID, 1, 1>());
constexpr const TVariable kgl_InvocationID(
    BuiltInId::gl_InvocationID,
    BuiltInName::gl_InvocationID,
    SymbolType::BuiltIn,
    TExtension::EXT_geometry_shader,
    StaticType::Get<EbtInt, EbpHigh, EvqInvocationID, 1, 1>());
constexpr const TVariable kgl_LastFragColor(
    BuiltInId::gl_LastFragColor,
    BuiltInName::gl_LastFragColor,
    SymbolType::BuiltIn,
    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,
    TExtension::ARM_shader_framebuffer_fetch,
    StaticType::Get<EbtFloat, EbpMedium, EvqLastFragColor, 4, 1>());
constexpr const TVariable kgl_Layer(BuiltInId::gl_Layer,
                                    BuiltInName::gl_Layer,
                                    SymbolType::BuiltIn,
                                    TExtension::EXT_geometry_shader,
                                    StaticType::Get<EbtInt, EbpHigh, EvqLayer, 1, 1>());
constexpr const TVariable kgl_LayerGS(BuiltInId::gl_LayerGS,
                                      BuiltInName::gl_Layer,
                                      SymbolType::BuiltIn,
                                      TExtension::EXT_geometry_shader,
                                      StaticType::Get<EbtInt, EbpHigh, EvqLayer, 1, 1>());
constexpr const TVariable kgl_LayerVS(BuiltInId::gl_LayerVS,
                                      BuiltInName::gl_Layer,
                                      SymbolType::BuiltIn,
                                      TExtension::UNDEFINED,
                                      StaticType::Get<EbtInt, EbpHigh, EvqLayer, 1, 1>());
constexpr const TVariable kgl_LocalInvocationID(
    BuiltInId::gl_LocalInvocationID,
    BuiltInName::gl_LocalInvocationID,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtUInt, EbpUndefined, EvqLocalInvocationID, 3, 1>());
constexpr const TVariable kgl_LocalInvocationIndex(
    BuiltInId::gl_LocalInvocationIndex,
    BuiltInName::gl_LocalInvocationIndex,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtUInt, EbpUndefined, EvqLocalInvocationIndex, 1, 1>());
constexpr const TVariable kgl_NumWorkGroups(
    BuiltInId::gl_NumWorkGroups,
    BuiltInName::gl_NumWorkGroups,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtUInt, EbpUndefined, EvqNumWorkGroups, 3, 1>());
constexpr const TVariable kgl_PointCoord(
    BuiltInId::gl_PointCoord,
    BuiltInName::gl_PointCoord,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtFloat, EbpMedium, EvqPointCoord, 2, 1>());
constexpr const TVariable kgl_PointSize(BuiltInId::gl_PointSize,
                                        BuiltInName::gl_PointSize,
                                        SymbolType::BuiltIn,
                                        TExtension::UNDEFINED,
                                        StaticType::Get<EbtFloat, EbpMedium, EvqPointSize, 1, 1>());
constexpr const TVariable kgl_Position(BuiltInId::gl_Position,
                                       BuiltInName::gl_Position,
                                       SymbolType::BuiltIn,
                                       TExtension::UNDEFINED,
                                       StaticType::Get<EbtFloat, EbpHigh, EvqPosition, 4, 1>());
constexpr const TVariable kgl_PrimitiveID(BuiltInId::gl_PrimitiveID,
                                          BuiltInName::gl_PrimitiveID,
                                          SymbolType::BuiltIn,
                                          TExtension::EXT_geometry_shader,
                                          StaticType::Get<EbtInt, EbpHigh, EvqPrimitiveID, 1, 1>());
constexpr const TVariable kgl_PrimitiveIDGS(
    BuiltInId::gl_PrimitiveIDGS,
    BuiltInName::gl_PrimitiveID,
    SymbolType::BuiltIn,
    TExtension::EXT_geometry_shader,
    StaticType::Get<EbtInt, EbpHigh, EvqPrimitiveID, 1, 1>());
constexpr const TVariable kgl_PrimitiveIDIn(
    BuiltInId::gl_PrimitiveIDIn,
    BuiltInName::gl_PrimitiveIDIn,
    SymbolType::BuiltIn,
    TExtension::EXT_geometry_shader,
    StaticType::Get<EbtInt, EbpHigh, EvqPrimitiveIDIn, 1, 1>());
constexpr const TVariable kgl_SecondaryFragColorEXT(
    BuiltInId::gl_SecondaryFragColorEXT,
    BuiltInName::gl_SecondaryFragColorEXT,
    SymbolType::BuiltIn,
    TExtension::EXT_blend_func_extended,
    StaticType::Get<EbtFloat, EbpMedium, EvqSecondaryFragColorEXT, 4, 1>());
constexpr const TVariable kgl_VertexID(BuiltInId::gl_VertexID,
                                       BuiltInName::gl_VertexID,
                                       SymbolType::BuiltIn,
                                       TExtension::UNDEFINED,
                                       StaticType::Get<EbtInt, EbpHigh, EvqVertexID, 1, 1>());
constexpr const TVariable kgl_VertexIndex(BuiltInId::gl_VertexIndex,
                                          BuiltInName::gl_VertexIndex,
                                          SymbolType::BuiltIn,
                                          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,
                                         TExtension::OVR_multiview,
                                         StaticType::Get<EbtUInt, EbpHigh, EvqViewIDOVR, 1, 1>());
constexpr const TVariable kgl_ViewportIndex(
    BuiltInId::gl_ViewportIndex,
    BuiltInName::gl_ViewportIndex,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtInt, EbpHigh, EvqViewportIndex, 1, 1>());
constexpr const TVariable kgl_WorkGroupID(
    BuiltInId::gl_WorkGroupID,
    BuiltInName::gl_WorkGroupID,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtUInt, EbpUndefined, EvqWorkGroupID, 3, 1>());
constexpr const TVariable kgl_WorkGroupSize(
    BuiltInId::gl_WorkGroupSize,
    BuiltInName::gl_WorkGroupSize,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtUInt, EbpUndefined, EvqWorkGroupSize, 3, 1>());
constexpr const TVariable kpt00B(BuiltInId::pt00B,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00D(BuiltInId::pt00D,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00E(BuiltInId::pt00E,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00F(BuiltInId::pt00F,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00G(
    BuiltInId::pt00G,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtAtomicCounter, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00H(
    BuiltInId::pt00H,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtYuvCscStandardEXT, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00I(BuiltInId::pt00I,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtSampler2D, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00J(BuiltInId::pt00J,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtSampler3D, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00K(BuiltInId::pt00K,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtSamplerCube, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00L(
    BuiltInId::pt00L,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtSampler2DArray, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00M(
    BuiltInId::pt00M,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtSamplerExternalOES, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00N(
    BuiltInId::pt00N,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtSamplerExternal2DY2YEXT, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00O(
    BuiltInId::pt00O,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtSampler2DRect, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00P(BuiltInId::pt00P,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtSampler2DMS, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00Q(
    BuiltInId::pt00Q,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtSampler2DMSArray, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00R(BuiltInId::pt00R,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtISampler2D, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00S(BuiltInId::pt00S,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtISampler3D, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00T(BuiltInId::pt00T,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtISamplerCube, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00U(
    BuiltInId::pt00U,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtISampler2DArray, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00V(BuiltInId::pt00V,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtISampler2DMS, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00W(
    BuiltInId::pt00W,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtISampler2DMSArray, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00X(BuiltInId::pt00X,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtUSampler2D, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00Y(BuiltInId::pt00Y,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtUSampler3D, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00Z(BuiltInId::pt00Z,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtUSamplerCube, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00a(
    BuiltInId::pt00a,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtUSampler2DArray, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00b(BuiltInId::pt00b,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtUSampler2DMS, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00c(
    BuiltInId::pt00c,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtUSampler2DMSArray, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00d(
    BuiltInId::pt00d,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtSampler2DShadow, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00e(
    BuiltInId::pt00e,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtSamplerCubeShadow, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00f(
    BuiltInId::pt00f,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtSampler2DArrayShadow, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00y(
    BuiltInId::pt00y,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtSamplerVideoWEBGL, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00z(BuiltInId::pt00z,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtImage2D, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01A(BuiltInId::pt01A,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtIImage2D, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01B(BuiltInId::pt01B,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtUImage2D, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01C(BuiltInId::pt01C,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtImage3D, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01D(BuiltInId::pt01D,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtIImage3D, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01E(BuiltInId::pt01E,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtUImage3D, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01F(BuiltInId::pt01F,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtImage2DArray, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01G(
    BuiltInId::pt01G,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtIImage2DArray, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01H(
    BuiltInId::pt01H,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtUImage2DArray, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01I(BuiltInId::pt01I,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtImageCube, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01J(BuiltInId::pt01J,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtIImageCube, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01K(BuiltInId::pt01K,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtUImageCube, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt10B(BuiltInId::pt10B,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>());
constexpr const TVariable kpt10D(BuiltInId::pt10D,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>());
constexpr const TVariable kpt10E(BuiltInId::pt10E,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>());
constexpr const TVariable kpt10F(BuiltInId::pt10F,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>());
constexpr const TVariable kpt20B(BuiltInId::pt20B,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>());
constexpr const TVariable kpt20D(BuiltInId::pt20D,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>());
constexpr const TVariable kpt20E(BuiltInId::pt20E,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>());
constexpr const TVariable kpt20F(BuiltInId::pt20F,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>());
constexpr const TVariable kpt30B(BuiltInId::pt30B,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>());
constexpr const TVariable kpt30D(BuiltInId::pt30D,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>());
constexpr const TVariable kpt30E(BuiltInId::pt30E,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>());
constexpr const TVariable kpt30F(BuiltInId::pt30F,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>());
constexpr const TVariable kpt50B(BuiltInId::pt50B,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 2>());
constexpr const TVariable kpt60B(BuiltInId::pt60B,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 2>());
constexpr const TVariable kpt70B(BuiltInId::pt70B,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 2>());
constexpr const TVariable kpt70D(BuiltInId::pt70D,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 2>());
constexpr const TVariable kpt90B(BuiltInId::pt90B,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 3>());
constexpr const TVariable kptA0B(BuiltInId::ptA0B,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 3>());
constexpr const TVariable kptB0B(BuiltInId::ptB0B,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 3>());
constexpr const TVariable kptD0B(BuiltInId::ptD0B,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 4>());
constexpr const TVariable kptE0B(BuiltInId::ptE0B,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 4>());
constexpr const TVariable kptF0B(BuiltInId::ptF0B,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 4>());
constexpr const TVariable kpt_io_00D(BuiltInId::pt_io_00D,
                                     BuiltInName::_empty,
                                     SymbolType::BuiltIn,
                                     TExtension::UNDEFINED,
                                     StaticType::Get<EbtInt, EbpUndefined, EvqInOut, 1, 1>());
constexpr const TVariable kpt_io_00E(BuiltInId::pt_io_00E,
                                     BuiltInName::_empty,
                                     SymbolType::BuiltIn,
                                     TExtension::UNDEFINED,
                                     StaticType::Get<EbtUInt, EbpUndefined, EvqInOut, 1, 1>());
constexpr const TVariable kpt_o_00B(BuiltInId::pt_o_00B,
                                    BuiltInName::_empty,
                                    SymbolType::BuiltIn,
                                    TExtension::UNDEFINED,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqOut, 1, 1>());
constexpr const TVariable kpt_o_00D(BuiltInId::pt_o_00D,
                                    BuiltInName::_empty,
                                    SymbolType::BuiltIn,
                                    TExtension::UNDEFINED,
                                    StaticType::Get<EbtInt, EbpUndefined, EvqOut, 1, 1>());
constexpr const TVariable kpt_o_00E(BuiltInId::pt_o_00E,
                                    BuiltInName::_empty,
                                    SymbolType::BuiltIn,
                                    TExtension::UNDEFINED,
                                    StaticType::Get<EbtUInt, EbpUndefined, EvqOut, 1, 1>());
constexpr const TVariable kpt_o_10B(BuiltInId::pt_o_10B,
                                    BuiltInName::_empty,
                                    SymbolType::BuiltIn,
                                    TExtension::UNDEFINED,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqOut, 2, 1>());
constexpr const TVariable kpt_o_10D(BuiltInId::pt_o_10D,
                                    BuiltInName::_empty,
                                    SymbolType::BuiltIn,
                                    TExtension::UNDEFINED,
                                    StaticType::Get<EbtInt, EbpUndefined, EvqOut, 2, 1>());
constexpr const TVariable kpt_o_10E(BuiltInId::pt_o_10E,
                                    BuiltInName::_empty,
                                    SymbolType::BuiltIn,
                                    TExtension::UNDEFINED,
                                    StaticType::Get<EbtUInt, EbpUndefined, EvqOut, 2, 1>());
constexpr const TVariable kpt_o_20B(BuiltInId::pt_o_20B,
                                    BuiltInName::_empty,
                                    SymbolType::BuiltIn,
                                    TExtension::UNDEFINED,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqOut, 3, 1>());
constexpr const TVariable kpt_o_20D(BuiltInId::pt_o_20D,
                                    BuiltInName::_empty,
                                    SymbolType::BuiltIn,
                                    TExtension::UNDEFINED,
                                    StaticType::Get<EbtInt, EbpUndefined, EvqOut, 3, 1>());
constexpr const TVariable kpt_o_20E(BuiltInId::pt_o_20E,
                                    BuiltInName::_empty,
                                    SymbolType::BuiltIn,
                                    TExtension::UNDEFINED,
                                    StaticType::Get<EbtUInt, EbpUndefined, EvqOut, 3, 1>());
constexpr const TVariable kpt_o_30B(BuiltInId::pt_o_30B,
                                    BuiltInName::_empty,
                                    SymbolType::BuiltIn,
                                    TExtension::UNDEFINED,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqOut, 4, 1>());
constexpr const TVariable kpt_o_30D(BuiltInId::pt_o_30D,
                                    BuiltInName::_empty,
                                    SymbolType::BuiltIn,
                                    TExtension::UNDEFINED,
                                    StaticType::Get<EbtInt, EbpUndefined, EvqOut, 4, 1>());
constexpr const TVariable kpt_o_30E(BuiltInId::pt_o_30E,
                                    BuiltInName::_empty,
                                    SymbolType::BuiltIn,
                                    TExtension::UNDEFINED,
                                    StaticType::Get<EbtUInt, EbpUndefined, EvqOut, 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_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_LastFragColor()
{
    return &kgl_LastFragColor;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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_ViewportIndex()
{
    return &kgl_ViewportIndex;
}

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 *p00B00B00F[3] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt00B,
                                            &BuiltInVariable::kpt00F};
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 *p00B00D[2]    = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D};
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_00D[2] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt_o_00D};
constexpr const TVariable *p00D00D00D00D[4] = {&BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00D00D_o_00D_o_00D[4] = {
    &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D, &BuiltInVariable::kpt_o_00D,
    &BuiltInVariable::kpt_o_00D};
constexpr const TVariable *p00E00D00D[3]    = {&BuiltInVariable::kpt00E, &BuiltInVariable::kpt00D,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p00E00E00D00D[4] = {&BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00E00E00E[3]    = {&BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E,
                                            &BuiltInVariable::kpt00E};
constexpr const TVariable *p00E00E_o_00E_o_00E[4] = {
    &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E, &BuiltInVariable::kpt_o_00E,
    &BuiltInVariable::kpt_o_00E};
constexpr const TVariable *p00G[1]          = {&BuiltInVariable::kpt00G};
constexpr const TVariable *p00I00D[2]       = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00I10B00B10D[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt10B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00I10B00D[3]    = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt10B,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p00I10B10B10B10D[5] = {
    &BuiltInVariable::kpt00I, &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00I10B10D00B[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt10B,
                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00I10B10D00D[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt10B,
                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00I10B70D00D[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt10B,
                                               &BuiltInVariable::kpt70D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00I10D00D10D[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt10D,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00I20B00B10D[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00I20B10B10B10D[5] = {
    &BuiltInVariable::kpt00I, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00I20B10D00B[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00I30B00B10D[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00I30B10B10B10D[5] = {
    &BuiltInVariable::kpt00I, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00I30B10D00B[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00J00D[2]       = {&BuiltInVariable::kpt00J, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00J20B00B20D[4] = {&BuiltInVariable::kpt00J, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt20D};
constexpr const TVariable *p00J20B20B20B20D[5] = {
    &BuiltInVariable::kpt00J, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B,
    &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20D};
constexpr const TVariable *p00J20B20D00B[4] = {&BuiltInVariable::kpt00J, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00J20D00D20D[4] = {&BuiltInVariable::kpt00J, &BuiltInVariable::kpt20D,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt20D};
constexpr const TVariable *p00J30B00B20D[4] = {&BuiltInVariable::kpt00J, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt20D};
constexpr const TVariable *p00J30B20B20B20D[5] = {
    &BuiltInVariable::kpt00J, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt20B,
    &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20D};
constexpr const TVariable *p00J30B20D00B[4] = {&BuiltInVariable::kpt00J, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00K00D[2]       = {&BuiltInVariable::kpt00K, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00K20B00B[3]    = {&BuiltInVariable::kpt00K, &BuiltInVariable::kpt20B,
                                            &BuiltInVariable::kpt00B};
constexpr const TVariable *p00K20B00D[3]    = {&BuiltInVariable::kpt00K, &BuiltInVariable::kpt20B,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p00K20B20B20B[4] = {&BuiltInVariable::kpt00K, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B};
constexpr const TVariable *p00L00D[2]       = {&BuiltInVariable::kpt00L, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00L20B00B10D[4] = {&BuiltInVariable::kpt00L, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00L20B00D[3]    = {&BuiltInVariable::kpt00L, &BuiltInVariable::kpt20B,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p00L20B10B10B10D[5] = {
    &BuiltInVariable::kpt00L, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00L20B10D00B[4] = {&BuiltInVariable::kpt00L, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00L20B10D00D[4] = {&BuiltInVariable::kpt00L, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00L20B70D00D[4] = {&BuiltInVariable::kpt00L, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt70D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00L20D00D10D[4] = {&BuiltInVariable::kpt00L, &BuiltInVariable::kpt20D,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00M00D[2]       = {&BuiltInVariable::kpt00M, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00M10B00B[3]    = {&BuiltInVariable::kpt00M, &BuiltInVariable::kpt10B,
                                            &BuiltInVariable::kpt00B};
constexpr const TVariable *p00M10D00D[3]    = {&BuiltInVariable::kpt00M, &BuiltInVariable::kpt10D,
                                            &BuiltInVariable::kpt00D};
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 *p00N00D[2]       = {&BuiltInVariable::kpt00N, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00N10B00B[3]    = {&BuiltInVariable::kpt00N, &BuiltInVariable::kpt10B,
                                            &BuiltInVariable::kpt00B};
constexpr const TVariable *p00N10D00D[3]    = {&BuiltInVariable::kpt00N, &BuiltInVariable::kpt10D,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p00N20B00B[3]    = {&BuiltInVariable::kpt00N, &BuiltInVariable::kpt20B,
                                            &BuiltInVariable::kpt00B};
constexpr const TVariable *p00N30B00B[3]    = {&BuiltInVariable::kpt00N, &BuiltInVariable::kpt30B,
                                            &BuiltInVariable::kpt00B};
constexpr const TVariable *p00O10B[2]       = {&BuiltInVariable::kpt00O, &BuiltInVariable::kpt10B};
constexpr const TVariable *p00O20B[2]       = {&BuiltInVariable::kpt00O, &BuiltInVariable::kpt20B};
constexpr const TVariable *p00O30B[2]       = {&BuiltInVariable::kpt00O, &BuiltInVariable::kpt30B};
constexpr const TVariable *p00P10D00D[3]    = {&BuiltInVariable::kpt00P, &BuiltInVariable::kpt10D,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p00Q20D00D[3]    = {&BuiltInVariable::kpt00Q, &BuiltInVariable::kpt20D,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p00R00D[2]       = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00R10B00B10D[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt10B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00R10B00D[3]    = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt10B,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p00R10B10B10B10D[5] = {
    &BuiltInVariable::kpt00R, &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00R10B10D00B[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt10B,
                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00R10B10D00D[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt10B,
                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00R10B70D00D[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt10B,
                                               &BuiltInVariable::kpt70D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00R10D00D10D[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt10D,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00R20B00B10D[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00R20B10B10B10D[5] = {
    &BuiltInVariable::kpt00R, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00R20B10D00B[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00R30B00B10D[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00R30B10B10B10D[5] = {
    &BuiltInVariable::kpt00R, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00R30B10D00B[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00S00D[2]       = {&BuiltInVariable::kpt00S, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00S20B00B20D[4] = {&BuiltInVariable::kpt00S, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt20D};
constexpr const TVariable *p00S20B20B20B20D[5] = {
    &BuiltInVariable::kpt00S, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B,
    &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20D};
constexpr const TVariable *p00S20B20D00B[4] = {&BuiltInVariable::kpt00S, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00S20D00D20D[4] = {&BuiltInVariable::kpt00S, &BuiltInVariable::kpt20D,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt20D};
constexpr const TVariable *p00S30B00B20D[4] = {&BuiltInVariable::kpt00S, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt20D};
constexpr const TVariable *p00S30B20B20B20D[5] = {
    &BuiltInVariable::kpt00S, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt20B,
    &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20D};
constexpr const TVariable *p00S30B20D00B[4] = {&BuiltInVariable::kpt00S, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00T00D[2]       = {&BuiltInVariable::kpt00T, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00T20B00B[3]    = {&BuiltInVariable::kpt00T, &BuiltInVariable::kpt20B,
                                            &BuiltInVariable::kpt00B};
constexpr const TVariable *p00T20B00D[3]    = {&BuiltInVariable::kpt00T, &BuiltInVariable::kpt20B,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p00T20B20B20B[4] = {&BuiltInVariable::kpt00T, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B};
constexpr const TVariable *p00U00D[2]       = {&BuiltInVariable::kpt00U, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00U20B00B10D[4] = {&BuiltInVariable::kpt00U, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00U20B00D[3]    = {&BuiltInVariable::kpt00U, &BuiltInVariable::kpt20B,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p00U20B10B10B10D[5] = {
    &BuiltInVariable::kpt00U, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00U20B10D00B[4] = {&BuiltInVariable::kpt00U, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00U20B10D00D[4] = {&BuiltInVariable::kpt00U, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00U20B70D00D[4] = {&BuiltInVariable::kpt00U, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt70D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00U20D00D10D[4] = {&BuiltInVariable::kpt00U, &BuiltInVariable::kpt20D,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00V10D00D[3]    = {&BuiltInVariable::kpt00V, &BuiltInVariable::kpt10D,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p00W20D00D[3]    = {&BuiltInVariable::kpt00W, &BuiltInVariable::kpt20D,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p00X00D[2]       = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00X10B00B10D[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt10B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00X10B00D[3]    = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt10B,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p00X10B10B10B10D[5] = {
    &BuiltInVariable::kpt00X, &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00X10B10D00B[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt10B,
                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00X10B10D00D[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt10B,
                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00X10B70D00D[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt10B,
                                               &BuiltInVariable::kpt70D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00X10D00D10D[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt10D,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00X20B00B10D[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00X20B10B10B10D[5] = {
    &BuiltInVariable::kpt00X, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00X20B10D00B[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00X30B00B10D[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00X30B10B10B10D[5] = {
    &BuiltInVariable::kpt00X, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00X30B10D00B[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00Y00D[2]       = {&BuiltInVariable::kpt00Y, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00Y20B00B20D[4] = {&BuiltInVariable::kpt00Y, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt20D};
constexpr const TVariable *p00Y20B20B20B20D[5] = {
    &BuiltInVariable::kpt00Y, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B,
    &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20D};
constexpr const TVariable *p00Y20B20D00B[4] = {&BuiltInVariable::kpt00Y, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00Y20D00D20D[4] = {&BuiltInVariable::kpt00Y, &BuiltInVariable::kpt20D,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt20D};
constexpr const TVariable *p00Y30B00B20D[4] = {&BuiltInVariable::kpt00Y, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt20D};
constexpr const TVariable *p00Y30B20B20B20D[5] = {
    &BuiltInVariable::kpt00Y, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt20B,
    &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20D};
constexpr const TVariable *p00Y30B20D00B[4] = {&BuiltInVariable::kpt00Y, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00Z00D[2]       = {&BuiltInVariable::kpt00Z, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00Z20B00B[3]    = {&BuiltInVariable::kpt00Z, &BuiltInVariable::kpt20B,
                                            &BuiltInVariable::kpt00B};
constexpr const TVariable *p00Z20B00D[3]    = {&BuiltInVariable::kpt00Z, &BuiltInVariable::kpt20B,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p00Z20B20B20B[4] = {&BuiltInVariable::kpt00Z, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B};
constexpr const TVariable *p00a00D[2]       = {&BuiltInVariable::kpt00a, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00a20B00B10D[4] = {&BuiltInVariable::kpt00a, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00a20B00D[3]    = {&BuiltInVariable::kpt00a, &BuiltInVariable::kpt20B,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p00a20B10B10B10D[5] = {
    &BuiltInVariable::kpt00a, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00a20B10D00B[4] = {&BuiltInVariable::kpt00a, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00a20B10D00D[4] = {&BuiltInVariable::kpt00a, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00a20B70D00D[4] = {&BuiltInVariable::kpt00a, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt70D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00a20D00D10D[4] = {&BuiltInVariable::kpt00a, &BuiltInVariable::kpt20D,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00b10D00D[3]    = {&BuiltInVariable::kpt00b, &BuiltInVariable::kpt10D,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p00c20D00D[3]    = {&BuiltInVariable::kpt00c, &BuiltInVariable::kpt20D,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p00d00D[2]       = {&BuiltInVariable::kpt00d, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00d10B00B10D[4] = {&BuiltInVariable::kpt00d, &BuiltInVariable::kpt10B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00d10B00B70D[4] = {&BuiltInVariable::kpt00d, &BuiltInVariable::kpt10B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt70D};
constexpr const TVariable *p00d20B00B10D[4] = {&BuiltInVariable::kpt00d, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00d20B10B10B10D[5] = {
    &BuiltInVariable::kpt00d, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00d20B10D00B[4] = {&BuiltInVariable::kpt00d, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00d30B00B10D[4] = {&BuiltInVariable::kpt00d, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00d30B10B10B10D[5] = {
    &BuiltInVariable::kpt00d, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00d30B10D00B[4] = {&BuiltInVariable::kpt00d, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00e00D[2]       = {&BuiltInVariable::kpt00e, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00e20B00B[3]    = {&BuiltInVariable::kpt00e, &BuiltInVariable::kpt20B,
                                            &BuiltInVariable::kpt00B};
constexpr const TVariable *p00e30B00B[3]    = {&BuiltInVariable::kpt00e, &BuiltInVariable::kpt30B,
                                            &BuiltInVariable::kpt00B};
constexpr const TVariable *p00e30B20B20B[4] = {&BuiltInVariable::kpt00e, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B};
constexpr const TVariable *p00f00D[2]       = {&BuiltInVariable::kpt00f, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00f20B00B10D[4] = {&BuiltInVariable::kpt00f, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00f20B00B70D[4] = {&BuiltInVariable::kpt00f, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt70D};
constexpr const TVariable *p00f30B10B10B10D[5] = {
    &BuiltInVariable::kpt00f, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00y10B[2]    = {&BuiltInVariable::kpt00y, &BuiltInVariable::kpt10B};
constexpr const TVariable *p00z10D30B[3] = {&BuiltInVariable::kpt00z, &BuiltInVariable::kpt10D,
                                            &BuiltInVariable::kpt30B};
constexpr const TVariable *p01A10D30D[3] = {&BuiltInVariable::kpt01A, &BuiltInVariable::kpt10D,
                                            &BuiltInVariable::kpt30D};
constexpr const TVariable *p01B10D30E[3] = {&BuiltInVariable::kpt01B, &BuiltInVariable::kpt10D,
                                            &BuiltInVariable::kpt30E};
constexpr const TVariable *p01C20D30B[3] = {&BuiltInVariable::kpt01C, &BuiltInVariable::kpt20D,
                                            &BuiltInVariable::kpt30B};
constexpr const TVariable *p01D20D30D[3] = {&BuiltInVariable::kpt01D, &BuiltInVariable::kpt20D,
                                            &BuiltInVariable::kpt30D};
constexpr const TVariable *p01E20D30E[3] = {&BuiltInVariable::kpt01E, &BuiltInVariable::kpt20D,
                                            &BuiltInVariable::kpt30E};
constexpr const TVariable *p01F20D30B[3] = {&BuiltInVariable::kpt01F, &BuiltInVariable::kpt20D,
                                            &BuiltInVariable::kpt30B};
constexpr const TVariable *p01G20D30D[3] = {&BuiltInVariable::kpt01G, &BuiltInVariable::kpt20D,
                                            &BuiltInVariable::kpt30D};
constexpr const TVariable *p01H20D30E[3] = {&BuiltInVariable::kpt01H, &BuiltInVariable::kpt20D,
                                            &BuiltInVariable::kpt30E};
constexpr const TVariable *p01I20D30B[3] = {&BuiltInVariable::kpt01I, &BuiltInVariable::kpt20D,
                                            &BuiltInVariable::kpt30B};
constexpr const TVariable *p01J20D30D[3] = {&BuiltInVariable::kpt01J, &BuiltInVariable::kpt20D,
                                            &BuiltInVariable::kpt30D};
constexpr const TVariable *p01K20D30E[3] = {&BuiltInVariable::kpt01K, &BuiltInVariable::kpt20D,
                                            &BuiltInVariable::kpt30E};
constexpr const TVariable *p10B00B00B[3] = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt00B,
                                            &BuiltInVariable::kpt00B};
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 *p10B10B10F[3] = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt10B,
                                            &BuiltInVariable::kpt10F};
constexpr const TVariable *p10B10D[2]    = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
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_10D[2] = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt_o_10D};
constexpr const TVariable *p10D00D00D[3] = {&BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p10D10D00D00D[4] = {&BuiltInVariable::kpt10D, &BuiltInVariable::kpt10D,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p10D10D10D[3]    = {&BuiltInVariable::kpt10D, &BuiltInVariable::kpt10D,
                                            &BuiltInVariable::kpt10D};
constexpr const TVariable *p10D10D_o_10D_o_10D[4] = {
    &BuiltInVariable::kpt10D, &BuiltInVariable::kpt10D, &BuiltInVariable::kpt_o_10D,
    &BuiltInVariable::kpt_o_10D};
constexpr const TVariable *p10E00D00D[3]    = {&BuiltInVariable::kpt10E, &BuiltInVariable::kpt00D,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p10E00E00E[3]    = {&BuiltInVariable::kpt10E, &BuiltInVariable::kpt00E,
                                            &BuiltInVariable::kpt00E};
constexpr const TVariable *p10E10E00D00D[4] = {&BuiltInVariable::kpt10E, &BuiltInVariable::kpt10E,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p10E10E10E[3]    = {&BuiltInVariable::kpt10E, &BuiltInVariable::kpt10E,
                                            &BuiltInVariable::kpt10E};
constexpr const TVariable *p10E10E_o_10E_o_10E[4] = {
    &BuiltInVariable::kpt10E, &BuiltInVariable::kpt10E, &BuiltInVariable::kpt_o_10E,
    &BuiltInVariable::kpt_o_10E};
constexpr const TVariable *p10F10F[2]    = {&BuiltInVariable::kpt10F, &BuiltInVariable::kpt10F};
constexpr const TVariable *p20B00B00B[3] = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt00B,
                                            &BuiltInVariable::kpt00B};
constexpr const TVariable *p20B00H[2]    = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt00H};
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 *p20B20B20F[3] = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B,
                                            &BuiltInVariable::kpt20F};
constexpr const TVariable *p20B20D[2]    = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt20D};
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_20D[2] = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt_o_20D};
constexpr const TVariable *p20D00D00D[3] = {&BuiltInVariable::kpt20D, &BuiltInVariable::kpt00D,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p20D20D00D00D[4] = {&BuiltInVariable::kpt20D, &BuiltInVariable::kpt20D,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p20D20D20D[3]    = {&BuiltInVariable::kpt20D, &BuiltInVariable::kpt20D,
                                            &BuiltInVariable::kpt20D};
constexpr const TVariable *p20D20D_o_20D_o_20D[4] = {
    &BuiltInVariable::kpt20D, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt_o_20D,
    &BuiltInVariable::kpt_o_20D};
constexpr const TVariable *p20E00D00D[3]    = {&BuiltInVariable::kpt20E, &BuiltInVariable::kpt00D,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p20E00E00E[3]    = {&BuiltInVariable::kpt20E, &BuiltInVariable::kpt00E,
                                            &BuiltInVariable::kpt00E};
constexpr const TVariable *p20E20E00D00D[4] = {&BuiltInVariable::kpt20E, &BuiltInVariable::kpt20E,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p20E20E20E[3]    = {&BuiltInVariable::kpt20E, &BuiltInVariable::kpt20E,
                                            &BuiltInVariable::kpt20E};
constexpr const TVariable *p20E20E_o_20E_o_20E[4] = {
    &BuiltInVariable::kpt20E, &BuiltInVariable::kpt20E, &BuiltInVariable::kpt_o_20E,
    &BuiltInVariable::kpt_o_20E};
constexpr const TVariable *p20F20F[2]    = {&BuiltInVariable::kpt20F, &BuiltInVariable::kpt20F};
constexpr const TVariable *p30B00B00B[3] = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt00B,
                                            &BuiltInVariable::kpt00B};
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 *p30B30B30F[3] = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt30B,
                                            &BuiltInVariable::kpt30F};
constexpr const TVariable *p30B30D[2]    = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt30D};
constexpr const TVariable *p30B_o_30B[2] = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt_o_30B};
constexpr const TVariable *p30B_o_30D[2] = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt_o_30D};
constexpr const TVariable *p30D00D00D[3] = {&BuiltInVariable::kpt30D, &BuiltInVariable::kpt00D,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p30D30D00D00D[4] = {&BuiltInVariable::kpt30D, &BuiltInVariable::kpt30D,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p30D30D30D[3]    = {&BuiltInVariable::kpt30D, &BuiltInVariable::kpt30D,
                                            &BuiltInVariable::kpt30D};
constexpr const TVariable *p30D30D_o_30D_o_30D[4] = {
    &BuiltInVariable::kpt30D, &BuiltInVariable::kpt30D, &BuiltInVariable::kpt_o_30D,
    &BuiltInVariable::kpt_o_30D};
constexpr const TVariable *p30E00D00D[3]    = {&BuiltInVariable::kpt30E, &BuiltInVariable::kpt00D,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p30E00E00E[3]    = {&BuiltInVariable::kpt30E, &BuiltInVariable::kpt00E,
                                            &BuiltInVariable::kpt00E};
constexpr const TVariable *p30E30E00D00D[4] = {&BuiltInVariable::kpt30E, &BuiltInVariable::kpt30E,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p30E30E30E[3]    = {&BuiltInVariable::kpt30E, &BuiltInVariable::kpt30E,
                                            &BuiltInVariable::kpt30E};
constexpr const TVariable *p30E30E_o_30E_o_30E[4] = {
    &BuiltInVariable::kpt30E, &BuiltInVariable::kpt30E, &BuiltInVariable::kpt_o_30E,
    &BuiltInVariable::kpt_o_30E};
constexpr const TVariable *p30F30F[2]        = {&BuiltInVariable::kpt30F, &BuiltInVariable::kpt30F};
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_00D00D00D[3] = {&BuiltInVariable::kpt_io_00D,
                                                &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p_io_00E00E00E[3] = {&BuiltInVariable::kpt_io_00E,
                                                &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E};

}  // 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/2390
namespace Func
{

constexpr const TFunction radians_00B(BuiltInId::radians_Float1,
                                      BuiltInName::radians,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p00B30B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                      EOpRadians,
                                      true);
constexpr const TFunction radians_10B(BuiltInId::radians_Float2,
                                      BuiltInName::radians,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p10B20B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                      EOpRadians,
                                      true);
constexpr const TFunction radians_20B(BuiltInId::radians_Float3,
                                      BuiltInName::radians,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p20B00H,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                      EOpRadians,
                                      true);
constexpr const TFunction radians_30B(BuiltInId::radians_Float4,
                                      BuiltInName::radians,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p30B00B00B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                      EOpRadians,
                                      true);
constexpr const TFunction degrees_00B(BuiltInId::degrees_Float1,
                                      BuiltInName::degrees,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p00B30B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                      EOpDegrees,
                                      true);
constexpr const TFunction degrees_10B(BuiltInId::degrees_Float2,
                                      BuiltInName::degrees,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p10B20B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                      EOpDegrees,
                                      true);
constexpr const TFunction degrees_20B(BuiltInId::degrees_Float3,
                                      BuiltInName::degrees,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p20B00H,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                      EOpDegrees,
                                      true);
constexpr const TFunction degrees_30B(BuiltInId::degrees_Float4,
                                      BuiltInName::degrees,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p30B00B00B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                      EOpDegrees,
                                      true);
constexpr const TFunction sin_00B(BuiltInId::sin_Float1,
                                  BuiltInName::sin,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p00B30B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                  EOpSin,
                                  true);
constexpr const TFunction sin_10B(BuiltInId::sin_Float2,
                                  BuiltInName::sin,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p10B20B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                  EOpSin,
                                  true);
constexpr const TFunction sin_20B(BuiltInId::sin_Float3,
                                  BuiltInName::sin,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p20B00H,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                  EOpSin,
                                  true);
constexpr const TFunction sin_30B(BuiltInId::sin_Float4,
                                  BuiltInName::sin,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p30B00B00B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                  EOpSin,
                                  true);
constexpr const TFunction cos_00B(BuiltInId::cos_Float1,
                                  BuiltInName::cos,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p00B30B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                  EOpCos,
                                  true);
constexpr const TFunction cos_10B(BuiltInId::cos_Float2,
                                  BuiltInName::cos,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p10B20B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                  EOpCos,
                                  true);
constexpr const TFunction cos_20B(BuiltInId::cos_Float3,
                                  BuiltInName::cos,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p20B00H,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                  EOpCos,
                                  true);
constexpr const TFunction cos_30B(BuiltInId::cos_Float4,
                                  BuiltInName::cos,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p30B00B00B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                  EOpCos,
                                  true);
constexpr const TFunction tan_00B(BuiltInId::tan_Float1,
                                  BuiltInName::tan,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p00B30B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                  EOpTan,
                                  true);
constexpr const TFunction tan_10B(BuiltInId::tan_Float2,
                                  BuiltInName::tan,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p10B20B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                  EOpTan,
                                  true);
constexpr const TFunction tan_20B(BuiltInId::tan_Float3,
                                  BuiltInName::tan,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p20B00H,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                  EOpTan,
                                  true);
constexpr const TFunction tan_30B(BuiltInId::tan_Float4,
                                  BuiltInName::tan,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p30B00B00B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                  EOpTan,
                                  true);
constexpr const TFunction asin_00B(BuiltInId::asin_Float1,
                                   BuiltInName::asin,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00B30B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpAsin,
                                   true);
constexpr const TFunction asin_10B(BuiltInId::asin_Float2,
                                   BuiltInName::asin,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p10B20B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpAsin,
                                   true);
constexpr const TFunction asin_20B(BuiltInId::asin_Float3,
                                   BuiltInName::asin,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p20B00H,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpAsin,
                                   true);
constexpr const TFunction asin_30B(BuiltInId::asin_Float4,
                                   BuiltInName::asin,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p30B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpAsin,
                                   true);
constexpr const TFunction acos_00B(BuiltInId::acos_Float1,
                                   BuiltInName::acos,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00B30B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpAcos,
                                   true);
constexpr const TFunction acos_10B(BuiltInId::acos_Float2,
                                   BuiltInName::acos,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p10B20B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpAcos,
                                   true);
constexpr const TFunction acos_20B(BuiltInId::acos_Float3,
                                   BuiltInName::acos,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p20B00H,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpAcos,
                                   true);
constexpr const TFunction acos_30B(BuiltInId::acos_Float4,
                                   BuiltInName::acos,
                                   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,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p00B00B20B,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                      EOpAtan,
                                      true);
constexpr const TFunction atan_10B10B(BuiltInId::atan_Float2_Float2,
                                      BuiltInName::atan,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p10B10B10F,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                      EOpAtan,
                                      true);
constexpr const TFunction atan_20B20B(BuiltInId::atan_Float3_Float3,
                                      BuiltInName::atan,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p20B20B20F,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                      EOpAtan,
                                      true);
constexpr const TFunction atan_30B30B(BuiltInId::atan_Float4_Float4,
                                      BuiltInName::atan,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p30B30B30F,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                      EOpAtan,
                                      true);
constexpr const TFunction atan_00B(BuiltInId::atan_Float1,
                                   BuiltInName::atan,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00B30B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpAtan,
                                   true);
constexpr const TFunction atan_10B(BuiltInId::atan_Float2,
                                   BuiltInName::atan,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p10B20B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpAtan,
                                   true);
constexpr const TFunction atan_20B(BuiltInId::atan_Float3,
                                   BuiltInName::atan,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p20B00H,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpAtan,
                                   true);
constexpr const TFunction atan_30B(BuiltInId::atan_Float4,
                                   BuiltInName::atan,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p30B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpAtan,
                                   true);
constexpr const TFunction sinh_00B(BuiltInId::sinh_Float1,
                                   BuiltInName::sinh,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00B30B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpSinh,
                                   true);
constexpr const TFunction sinh_10B(BuiltInId::sinh_Float2,
                                   BuiltInName::sinh,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p10B20B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpSinh,
                                   true);
constexpr const TFunction sinh_20B(BuiltInId::sinh_Float3,
                                   BuiltInName::sinh,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p20B00H,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpSinh,
                                   true);
constexpr const TFunction sinh_30B(BuiltInId::sinh_Float4,
                                   BuiltInName::sinh,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p30B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpSinh,
                                   true);
constexpr const TFunction cosh_00B(BuiltInId::cosh_Float1,
                                   BuiltInName::cosh,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00B30B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpCosh,
                                   true);
constexpr const TFunction cosh_10B(BuiltInId::cosh_Float2,
                                   BuiltInName::cosh,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p10B20B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpCosh,
                                   true);
constexpr const TFunction cosh_20B(BuiltInId::cosh_Float3,
                                   BuiltInName::cosh,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p20B00H,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpCosh,
                                   true);
constexpr const TFunction cosh_30B(BuiltInId::cosh_Float4,
                                   BuiltInName::cosh,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p30B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpCosh,
                                   true);
constexpr const TFunction tanh_00B(BuiltInId::tanh_Float1,
                                   BuiltInName::tanh,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00B30B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpTanh,
                                   true);
constexpr const TFunction tanh_10B(BuiltInId::tanh_Float2,
                                   BuiltInName::tanh,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p10B20B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpTanh,
                                   true);
constexpr const TFunction tanh_20B(BuiltInId::tanh_Float3,
                                   BuiltInName::tanh,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p20B00H,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpTanh,
                                   true);
constexpr const TFunction tanh_30B(BuiltInId::tanh_Float4,
                                   BuiltInName::tanh,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p30B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpTanh,
                                   true);
constexpr const TFunction asinh_00B(BuiltInId::asinh_Float1,
                                    BuiltInName::asinh,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p00B30B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                    EOpAsinh,
                                    true);
constexpr const TFunction asinh_10B(BuiltInId::asinh_Float2,
                                    BuiltInName::asinh,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p10B20B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                    EOpAsinh,
                                    true);
constexpr const TFunction asinh_20B(BuiltInId::asinh_Float3,
                                    BuiltInName::asinh,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p20B00H,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                    EOpAsinh,
                                    true);
constexpr const TFunction asinh_30B(BuiltInId::asinh_Float4,
                                    BuiltInName::asinh,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p30B00B00B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                    EOpAsinh,
                                    true);
constexpr const TFunction acosh_00B(BuiltInId::acosh_Float1,
                                    BuiltInName::acosh,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p00B30B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                    EOpAcosh,
                                    true);
constexpr const TFunction acosh_10B(BuiltInId::acosh_Float2,
                                    BuiltInName::acosh,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p10B20B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                    EOpAcosh,
                                    true);
constexpr const TFunction acosh_20B(BuiltInId::acosh_Float3,
                                    BuiltInName::acosh,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p20B00H,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                    EOpAcosh,
                                    true);
constexpr const TFunction acosh_30B(BuiltInId::acosh_Float4,
                                    BuiltInName::acosh,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p30B00B00B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                    EOpAcosh,
                                    true);
constexpr const TFunction atanh_00B(BuiltInId::atanh_Float1,
                                    BuiltInName::atanh,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p00B30B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                    EOpAtanh,
                                    true);
constexpr const TFunction atanh_10B(BuiltInId::atanh_Float2,
                                    BuiltInName::atanh,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p10B20B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                    EOpAtanh,
                                    true);
constexpr const TFunction atanh_20B(BuiltInId::atanh_Float3,
                                    BuiltInName::atanh,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p20B00H,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                    EOpAtanh,
                                    true);
constexpr const TFunction atanh_30B(BuiltInId::atanh_Float4,
                                    BuiltInName::atanh,
                                    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,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p00B00B20B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpPow,
                                     true);
constexpr const TFunction pow_10B10B(BuiltInId::pow_Float2_Float2,
                                     BuiltInName::pow,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p10B10B10F,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                     EOpPow,
                                     true);
constexpr const TFunction pow_20B20B(BuiltInId::pow_Float3_Float3,
                                     BuiltInName::pow,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p20B20B20F,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                     EOpPow,
                                     true);
constexpr const TFunction pow_30B30B(BuiltInId::pow_Float4_Float4,
                                     BuiltInName::pow,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p30B30B30F,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpPow,
                                     true);
constexpr const TFunction exp_00B(BuiltInId::exp_Float1,
                                  BuiltInName::exp,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p00B30B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                  EOpExp,
                                  true);
constexpr const TFunction exp_10B(BuiltInId::exp_Float2,
                                  BuiltInName::exp,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p10B20B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                  EOpExp,
                                  true);
constexpr const TFunction exp_20B(BuiltInId::exp_Float3,
                                  BuiltInName::exp,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p20B00H,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                  EOpExp,
                                  true);
constexpr const TFunction exp_30B(BuiltInId::exp_Float4,
                                  BuiltInName::exp,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p30B00B00B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                  EOpExp,
                                  true);
constexpr const TFunction log_00B(BuiltInId::log_Float1,
                                  BuiltInName::log,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p00B30B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                  EOpLog,
                                  true);
constexpr const TFunction log_10B(BuiltInId::log_Float2,
                                  BuiltInName::log,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p10B20B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                  EOpLog,
                                  true);
constexpr const TFunction log_20B(BuiltInId::log_Float3,
                                  BuiltInName::log,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p20B00H,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                  EOpLog,
                                  true);
constexpr const TFunction log_30B(BuiltInId::log_Float4,
                                  BuiltInName::log,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p30B00B00B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                  EOpLog,
                                  true);
constexpr const TFunction exp2_00B(BuiltInId::exp2_Float1,
                                   BuiltInName::exp2,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00B30B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpExp2,
                                   true);
constexpr const TFunction exp2_10B(BuiltInId::exp2_Float2,
                                   BuiltInName::exp2,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p10B20B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpExp2,
                                   true);
constexpr const TFunction exp2_20B(BuiltInId::exp2_Float3,
                                   BuiltInName::exp2,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p20B00H,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpExp2,
                                   true);
constexpr const TFunction exp2_30B(BuiltInId::exp2_Float4,
                                   BuiltInName::exp2,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p30B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpExp2,
                                   true);
constexpr const TFunction log2_00B(BuiltInId::log2_Float1,
                                   BuiltInName::log2,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00B30B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpLog2,
                                   true);
constexpr const TFunction log2_10B(BuiltInId::log2_Float2,
                                   BuiltInName::log2,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p10B20B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpLog2,
                                   true);
constexpr const TFunction log2_20B(BuiltInId::log2_Float3,
                                   BuiltInName::log2,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p20B00H,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpLog2,
                                   true);
constexpr const TFunction log2_30B(BuiltInId::log2_Float4,
                                   BuiltInName::log2,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p30B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpLog2,
                                   true);
constexpr const TFunction sqrt_00B(BuiltInId::sqrt_Float1,
                                   BuiltInName::sqrt,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00B30B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpSqrt,
                                   true);
constexpr const TFunction sqrt_10B(BuiltInId::sqrt_Float2,
                                   BuiltInName::sqrt,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p10B20B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpSqrt,
                                   true);
constexpr const TFunction sqrt_20B(BuiltInId::sqrt_Float3,
                                   BuiltInName::sqrt,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p20B00H,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpSqrt,
                                   true);
constexpr const TFunction sqrt_30B(BuiltInId::sqrt_Float4,
                                   BuiltInName::sqrt,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p30B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpSqrt,
                                   true);
constexpr const TFunction inversesqrt_00B(
    BuiltInId::inversesqrt_Float1,
    BuiltInName::inversesqrt,
    TExtension::UNDEFINED,
    BuiltInParameters::p00B30B,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpInversesqrt,
    true);
constexpr const TFunction inversesqrt_10B(
    BuiltInId::inversesqrt_Float2,
    BuiltInName::inversesqrt,
    TExtension::UNDEFINED,
    BuiltInParameters::p10B20B,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpInversesqrt,
    true);
constexpr const TFunction inversesqrt_20B(
    BuiltInId::inversesqrt_Float3,
    BuiltInName::inversesqrt,
    TExtension::UNDEFINED,
    BuiltInParameters::p20B00H,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpInversesqrt,
    true);
constexpr const TFunction inversesqrt_30B(
    BuiltInId::inversesqrt_Float4,
    BuiltInName::inversesqrt,
    TExtension::UNDEFINED,
    BuiltInParameters::p30B00B00B,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpInversesqrt,
    true);
constexpr const TFunction abs_00B(BuiltInId::abs_Float1,
                                  BuiltInName::abs,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p00B30B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                  EOpAbs,
                                  true);
constexpr const TFunction abs_10B(BuiltInId::abs_Float2,
                                  BuiltInName::abs,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p10B20B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                  EOpAbs,
                                  true);
constexpr const TFunction abs_20B(BuiltInId::abs_Float3,
                                  BuiltInName::abs,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p20B00H,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                  EOpAbs,
                                  true);
constexpr const TFunction abs_30B(BuiltInId::abs_Float4,
                                  BuiltInName::abs,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p30B00B00B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                  EOpAbs,
                                  true);
constexpr const TFunction abs_00D(BuiltInId::abs_Int1,
                                  BuiltInName::abs,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p00D00D00D00D,
                                  1,
                                  StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                  EOpAbs,
                                  true);
constexpr const TFunction abs_10D(BuiltInId::abs_Int2,
                                  BuiltInName::abs,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p10D00D00D,
                                  1,
                                  StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                  EOpAbs,
                                  true);
constexpr const TFunction abs_20D(BuiltInId::abs_Int3,
                                  BuiltInName::abs,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p20D20D00D00D,
                                  1,
                                  StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                  EOpAbs,
                                  true);
constexpr const TFunction abs_30D(BuiltInId::abs_Int4,
                                  BuiltInName::abs,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p30D00D00D,
                                  1,
                                  StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                  EOpAbs,
                                  true);
constexpr const TFunction sign_00B(BuiltInId::sign_Float1,
                                   BuiltInName::sign,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00B30B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpSign,
                                   true);
constexpr const TFunction sign_10B(BuiltInId::sign_Float2,
                                   BuiltInName::sign,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p10B20B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpSign,
                                   true);
constexpr const TFunction sign_20B(BuiltInId::sign_Float3,
                                   BuiltInName::sign,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p20B00H,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpSign,
                                   true);
constexpr const TFunction sign_30B(BuiltInId::sign_Float4,
                                   BuiltInName::sign,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p30B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpSign,
                                   true);
constexpr const TFunction sign_00D(BuiltInId::sign_Int1,
                                   BuiltInName::sign,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00D00D00D00D,
                                   1,
                                   StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpSign,
                                   true);
constexpr const TFunction sign_10D(BuiltInId::sign_Int2,
                                   BuiltInName::sign,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p10D00D00D,
                                   1,
                                   StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpSign,
                                   true);
constexpr const TFunction sign_20D(BuiltInId::sign_Int3,
                                   BuiltInName::sign,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p20D20D00D00D,
                                   1,
                                   StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpSign,
                                   true);
constexpr const TFunction sign_30D(BuiltInId::sign_Int4,
                                   BuiltInName::sign,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p30D00D00D,
                                   1,
                                   StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpSign,
                                   true);
constexpr const TFunction floor_00B(BuiltInId::floor_Float1,
                                    BuiltInName::floor,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p00B30B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                    EOpFloor,
                                    true);
constexpr const TFunction floor_10B(BuiltInId::floor_Float2,
                                    BuiltInName::floor,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p10B20B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                    EOpFloor,
                                    true);
constexpr const TFunction floor_20B(BuiltInId::floor_Float3,
                                    BuiltInName::floor,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p20B00H,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                    EOpFloor,
                                    true);
constexpr const TFunction floor_30B(BuiltInId::floor_Float4,
                                    BuiltInName::floor,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p30B00B00B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                    EOpFloor,
                                    true);
constexpr const TFunction trunc_00B(BuiltInId::trunc_Float1,
                                    BuiltInName::trunc,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p00B30B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                    EOpTrunc,
                                    true);
constexpr const TFunction trunc_10B(BuiltInId::trunc_Float2,
                                    BuiltInName::trunc,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p10B20B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                    EOpTrunc,
                                    true);
constexpr const TFunction trunc_20B(BuiltInId::trunc_Float3,
                                    BuiltInName::trunc,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p20B00H,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                    EOpTrunc,
                                    true);
constexpr const TFunction trunc_30B(BuiltInId::trunc_Float4,
                                    BuiltInName::trunc,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p30B00B00B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                    EOpTrunc,
                                    true);
constexpr const TFunction round_00B(BuiltInId::round_Float1,
                                    BuiltInName::round,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p00B30B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                    EOpRound,
                                    true);
constexpr const TFunction round_10B(BuiltInId::round_Float2,
                                    BuiltInName::round,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p10B20B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                    EOpRound,
                                    true);
constexpr const TFunction round_20B(BuiltInId::round_Float3,
                                    BuiltInName::round,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p20B00H,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                    EOpRound,
                                    true);
constexpr const TFunction round_30B(BuiltInId::round_Float4,
                                    BuiltInName::round,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p30B00B00B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                    EOpRound,
                                    true);
constexpr const TFunction roundEven_00B(BuiltInId::roundEven_Float1,
                                        BuiltInName::roundEven,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p00B30B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                        EOpRoundEven,
                                        true);
constexpr const TFunction roundEven_10B(BuiltInId::roundEven_Float2,
                                        BuiltInName::roundEven,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p10B20B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpRoundEven,
                                        true);
constexpr const TFunction roundEven_20B(BuiltInId::roundEven_Float3,
                                        BuiltInName::roundEven,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p20B00H,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpRoundEven,
                                        true);
constexpr const TFunction roundEven_30B(BuiltInId::roundEven_Float4,
                                        BuiltInName::roundEven,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p30B00B00B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                        EOpRoundEven,
                                        true);
constexpr const TFunction ceil_00B(BuiltInId::ceil_Float1,
                                   BuiltInName::ceil,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00B30B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpCeil,
                                   true);
constexpr const TFunction ceil_10B(BuiltInId::ceil_Float2,
                                   BuiltInName::ceil,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p10B20B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpCeil,
                                   true);
constexpr const TFunction ceil_20B(BuiltInId::ceil_Float3,
                                   BuiltInName::ceil,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p20B00H,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpCeil,
                                   true);
constexpr const TFunction ceil_30B(BuiltInId::ceil_Float4,
                                   BuiltInName::ceil,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p30B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpCeil,
                                   true);
constexpr const TFunction fract_00B(BuiltInId::fract_Float1,
                                    BuiltInName::fract,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p00B30B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                    EOpFract,
                                    true);
constexpr const TFunction fract_10B(BuiltInId::fract_Float2,
                                    BuiltInName::fract,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p10B20B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                    EOpFract,
                                    true);
constexpr const TFunction fract_20B(BuiltInId::fract_Float3,
                                    BuiltInName::fract,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p20B00H,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                    EOpFract,
                                    true);
constexpr const TFunction fract_30B(BuiltInId::fract_Float4,
                                    BuiltInName::fract,
                                    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,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p00B00B20B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpMod,
                                     true);
constexpr const TFunction mod_10B00B(BuiltInId::mod_Float2_Float1,
                                     BuiltInName::mod,
                                     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,
                                     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,
                                     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,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p10B10B10F,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                     EOpMod,
                                     true);
constexpr const TFunction mod_20B20B(BuiltInId::mod_Float3_Float3,
                                     BuiltInName::mod,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p20B20B20F,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                     EOpMod,
                                     true);
constexpr const TFunction mod_30B30B(BuiltInId::mod_Float4_Float4,
                                     BuiltInName::mod,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p30B30B30F,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpMod,
                                     true);
constexpr const TFunction min_00B00B(BuiltInId::min_Float1_Float1,
                                     BuiltInName::min,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p00B00B20B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_10B00B(BuiltInId::min_Float2_Float1,
                                     BuiltInName::min,
                                     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,
                                     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,
                                     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,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p10B10B10F,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_20B20B(BuiltInId::min_Float3_Float3,
                                     BuiltInName::min,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p20B20B20F,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_30B30B(BuiltInId::min_Float4_Float4,
                                     BuiltInName::min,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p30B30B30F,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_00D00D(BuiltInId::min_Int1_Int1,
                                     BuiltInName::min,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p00D00D00D00D,
                                     2,
                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_10D10D(BuiltInId::min_Int2_Int2,
                                     BuiltInName::min,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p10D10D10D,
                                     2,
                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_20D20D(BuiltInId::min_Int3_Int3,
                                     BuiltInName::min,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p20D20D00D00D,
                                     2,
                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_30D30D(BuiltInId::min_Int4_Int4,
                                     BuiltInName::min,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p30D30D30D,
                                     2,
                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_10D00D(BuiltInId::min_Int2_Int1,
                                     BuiltInName::min,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p10D00D00D,
                                     2,
                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_20D00D(BuiltInId::min_Int3_Int1,
                                     BuiltInName::min,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p20D00D00D,
                                     2,
                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_30D00D(BuiltInId::min_Int4_Int1,
                                     BuiltInName::min,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p30D00D00D,
                                     2,
                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_00E00E(BuiltInId::min_UInt1_UInt1,
                                     BuiltInName::min,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p00E00E00E,
                                     2,
                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_10E10E(BuiltInId::min_UInt2_UInt2,
                                     BuiltInName::min,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p10E10E10E,
                                     2,
                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_20E20E(BuiltInId::min_UInt3_UInt3,
                                     BuiltInName::min,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p20E20E00D00D,
                                     2,
                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_30E30E(BuiltInId::min_UInt4_UInt4,
                                     BuiltInName::min,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p30E30E00D00D,
                                     2,
                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_10E00E(BuiltInId::min_UInt2_UInt1,
                                     BuiltInName::min,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p10E00E00E,
                                     2,
                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_20E00E(BuiltInId::min_UInt3_UInt1,
                                     BuiltInName::min,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p20E00E00E,
                                     2,
                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_30E00E(BuiltInId::min_UInt4_UInt1,
                                     BuiltInName::min,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p30E00E00E,
                                     2,
                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction max_00B00B(BuiltInId::max_Float1_Float1,
                                     BuiltInName::max,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p00B00B20B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpMax,
                                     true);
constexpr const TFunction max_10B00B(BuiltInId::max_Float2_Float1,
                                     BuiltInName::max,
                                     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,
                                     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,
                                     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,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p10B10B10F,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                     EOpMax,
                                     true);
constexpr const TFunction max_20B20B(BuiltInId::max_Float3_Float3,
                                     BuiltInName::max,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p20B20B20F,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                     EOpMax,
                                     true);
constexpr const TFunction max_30B30B(BuiltInId::max_Float4_Float4,
                                     BuiltInName::max,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p30B30B30F,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpMax,
                                     true);
constexpr const TFunction max_00D00D(BuiltInId::max_Int1_Int1,
                                     BuiltInName::max,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p00D00D00D00D,
                                     2,
                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpMax,
                                     true);
constexpr const TFunction max_10D10D(BuiltInId::max_Int2_Int2,
                                     BuiltInName::max,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p10D10D10D,
                                     2,
                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                     EOpMax,
                                     true);
constexpr const TFunction max_20D20D(BuiltInId::max_Int3_Int3,
                                     BuiltInName::max,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p20D20D00D00D,
                                     2,
                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                     EOpMax,
                                     true);
constexpr const TFunction max_30D30D(BuiltInId::max_Int4_Int4,
                                     BuiltInName::max,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p30D30D30D,
                                     2,
                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpMax,
                                     true);
constexpr const TFunction max_10D00D(BuiltInId::max_Int2_Int1,
                                     BuiltInName::max,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p10D00D00D,
                                     2,
                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                     EOpMax,
                                     true);
constexpr const TFunction max_20D00D(BuiltInId::max_Int3_Int1,
                                     BuiltInName::max,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p20D00D00D,
                                     2,
                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                     EOpMax,
                                     true);
constexpr const TFunction max_30D00D(BuiltInId::max_Int4_Int1,
                                     BuiltInName::max,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p30D00D00D,
                                     2,
                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpMax,
                                     true);
constexpr const TFunction max_00E00E(BuiltInId::max_UInt1_UInt1,
                                     BuiltInName::max,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p00E00E00E,
                                     2,
                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpMax,
                                     true);
constexpr const TFunction max_10E10E(BuiltInId::max_UInt2_UInt2,
                                     BuiltInName::max,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p10E10E10E,
                                     2,
                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                     EOpMax,
                                     true);
constexpr const TFunction max_20E20E(BuiltInId::max_UInt3_UInt3,
                                     BuiltInName::max,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p20E20E00D00D,
                                     2,
                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                     EOpMax,
                                     true);
constexpr const TFunction max_30E30E(BuiltInId::max_UInt4_UInt4,
                                     BuiltInName::max,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p30E30E00D00D,
                                     2,
                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpMax,
                                     true);
constexpr const TFunction max_10E00E(BuiltInId::max_UInt2_UInt1,
                                     BuiltInName::max,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p10E00E00E,
                                     2,
                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                     EOpMax,
                                     true);
constexpr const TFunction max_20E00E(BuiltInId::max_UInt3_UInt1,
                                     BuiltInName::max,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p20E00E00E,
                                     2,
                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                     EOpMax,
                                     true);
constexpr const TFunction max_30E00E(BuiltInId::max_UInt4_UInt1,
                                     BuiltInName::max,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p30E00E00E,
                                     2,
                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpMax,
                                     true);
constexpr const TFunction clamp_00B00B00B(
    BuiltInId::clamp_Float1_Float1_Float1,
    BuiltInName::clamp,
    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,
    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,
    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,
    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,
    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,
    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,
    TExtension::UNDEFINED,
    BuiltInParameters::p30B30B30B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpClamp,
    true);
constexpr const TFunction clamp_00D00D00D(BuiltInId::clamp_Int1_Int1_Int1,
                                          BuiltInName::clamp,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p00D00D00D00D,
                                          3,
                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                          EOpClamp,
                                          true);
constexpr const TFunction clamp_10D00D00D(BuiltInId::clamp_Int2_Int1_Int1,
                                          BuiltInName::clamp,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p10D00D00D,
                                          3,
                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                          EOpClamp,
                                          true);
constexpr const TFunction clamp_20D00D00D(BuiltInId::clamp_Int3_Int1_Int1,
                                          BuiltInName::clamp,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p20D00D00D,
                                          3,
                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                          EOpClamp,
                                          true);
constexpr const TFunction clamp_30D00D00D(BuiltInId::clamp_Int4_Int1_Int1,
                                          BuiltInName::clamp,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p30D00D00D,
                                          3,
                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                          EOpClamp,
                                          true);
constexpr const TFunction clamp_10D10D10D(BuiltInId::clamp_Int2_Int2_Int2,
                                          BuiltInName::clamp,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p10D10D10D,
                                          3,
                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                          EOpClamp,
                                          true);
constexpr const TFunction clamp_20D20D20D(BuiltInId::clamp_Int3_Int3_Int3,
                                          BuiltInName::clamp,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p20D20D20D,
                                          3,
                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                          EOpClamp,
                                          true);
constexpr const TFunction clamp_30D30D30D(BuiltInId::clamp_Int4_Int4_Int4,
                                          BuiltInName::clamp,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p30D30D30D,
                                          3,
                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                          EOpClamp,
                                          true);
constexpr const TFunction clamp_00E00E00E(BuiltInId::clamp_UInt1_UInt1_UInt1,
                                          BuiltInName::clamp,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p00E00E00E,
                                          3,
                                          StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                          EOpClamp,
                                          true);
constexpr const TFunction clamp_10E00E00E(BuiltInId::clamp_UInt2_UInt1_UInt1,
                                          BuiltInName::clamp,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p10E00E00E,
                                          3,
                                          StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                          EOpClamp,
                                          true);
constexpr const TFunction clamp_20E00E00E(BuiltInId::clamp_UInt3_UInt1_UInt1,
                                          BuiltInName::clamp,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p20E00E00E,
                                          3,
                                          StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                          EOpClamp,
                                          true);
constexpr const TFunction clamp_30E00E00E(BuiltInId::clamp_UInt4_UInt1_UInt1,
                                          BuiltInName::clamp,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p30E00E00E,
                                          3,
                                          StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                          EOpClamp,
                                          true);
constexpr const TFunction clamp_10E10E10E(BuiltInId::clamp_UInt2_UInt2_UInt2,
                                          BuiltInName::clamp,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p10E10E10E,
                                          3,
                                          StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                          EOpClamp,
                                          true);
constexpr const TFunction clamp_20E20E20E(BuiltInId::clamp_UInt3_UInt3_UInt3,
                                          BuiltInName::clamp,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p20E20E20E,
                                          3,
                                          StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                          EOpClamp,
                                          true);
constexpr const TFunction clamp_30E30E30E(BuiltInId::clamp_UInt4_UInt4_UInt4,
                                          BuiltInName::clamp,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p30E30E30E,
                                          3,
                                          StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                          EOpClamp,
                                          true);
constexpr const TFunction mix_00B00B00B(BuiltInId::mix_Float1_Float1_Float1,
                                        BuiltInName::mix,
                                        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,
                                        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,
                                        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,
                                        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,
                                        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,
                                        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,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p30B30B30B,
                                        3,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                        EOpMix,
                                        true);
constexpr const TFunction mix_00B00B00F(BuiltInId::mix_Float1_Float1_Bool1,
                                        BuiltInName::mix,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p00B00B00F,
                                        3,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                        EOpMix,
                                        true);
constexpr const TFunction mix_10B10B10F(BuiltInId::mix_Float2_Float2_Bool2,
                                        BuiltInName::mix,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p10B10B10F,
                                        3,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpMix,
                                        true);
constexpr const TFunction mix_20B20B20F(BuiltInId::mix_Float3_Float3_Bool3,
                                        BuiltInName::mix,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p20B20B20F,
                                        3,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpMix,
                                        true);
constexpr const TFunction mix_30B30B30F(BuiltInId::mix_Float4_Float4_Bool4,
                                        BuiltInName::mix,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p30B30B30F,
                                        3,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                        EOpMix,
                                        true);
constexpr const TFunction step_00B00B(BuiltInId::step_Float1_Float1,
                                      BuiltInName::step,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p00B00B20B,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                      EOpStep,
                                      true);
constexpr const TFunction step_10B10B(BuiltInId::step_Float2_Float2,
                                      BuiltInName::step,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p10B10B10F,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                      EOpStep,
                                      true);
constexpr const TFunction step_20B20B(BuiltInId::step_Float3_Float3,
                                      BuiltInName::step,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p20B20B20F,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                      EOpStep,
                                      true);
constexpr const TFunction step_30B30B(BuiltInId::step_Float4_Float4,
                                      BuiltInName::step,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p30B30B30F,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                      EOpStep,
                                      true);
constexpr const TFunction step_00B10B(BuiltInId::step_Float1_Float2,
                                      BuiltInName::step,
                                      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,
                                      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,
                                      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,
    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,
    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,
    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,
    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,
    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,
    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,
    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,
                                      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,
                                      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,
                                      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,
                                      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,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p00B30B,
                                    1,
                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
                                    EOpIsnan,
                                    true);
constexpr const TFunction isnan_10B(BuiltInId::isnan_Float2,
                                    BuiltInName::isnan,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p10B20B,
                                    1,
                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                    EOpIsnan,
                                    true);
constexpr const TFunction isnan_20B(BuiltInId::isnan_Float3,
                                    BuiltInName::isnan,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p20B00H,
                                    1,
                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                    EOpIsnan,
                                    true);
constexpr const TFunction isnan_30B(BuiltInId::isnan_Float4,
                                    BuiltInName::isnan,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p30B00B00B,
                                    1,
                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                    EOpIsnan,
                                    true);
constexpr const TFunction isinf_00B(BuiltInId::isinf_Float1,
                                    BuiltInName::isinf,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p00B30B,
                                    1,
                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
                                    EOpIsinf,
                                    true);
constexpr const TFunction isinf_10B(BuiltInId::isinf_Float2,
                                    BuiltInName::isinf,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p10B20B,
                                    1,
                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                    EOpIsinf,
                                    true);
constexpr const TFunction isinf_20B(BuiltInId::isinf_Float3,
                                    BuiltInName::isinf,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p20B00H,
                                    1,
                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                    EOpIsinf,
                                    true);
constexpr const TFunction isinf_30B(BuiltInId::isinf_Float4,
                                    BuiltInName::isinf,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p30B00B00B,
                                    1,
                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                    EOpIsinf,
                                    true);
constexpr const TFunction floatBitsToInt_00B(
    BuiltInId::floatBitsToInt_Float1,
    BuiltInName::floatBitsToInt,
    TExtension::UNDEFINED,
    BuiltInParameters::p00B30B,
    1,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpFloatBitsToInt,
    true);
constexpr const TFunction floatBitsToInt_10B(
    BuiltInId::floatBitsToInt_Float2,
    BuiltInName::floatBitsToInt,
    TExtension::UNDEFINED,
    BuiltInParameters::p10B20B,
    1,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpFloatBitsToInt,
    true);
constexpr const TFunction floatBitsToInt_20B(
    BuiltInId::floatBitsToInt_Float3,
    BuiltInName::floatBitsToInt,
    TExtension::UNDEFINED,
    BuiltInParameters::p20B00H,
    1,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpFloatBitsToInt,
    true);
constexpr const TFunction floatBitsToInt_30B(
    BuiltInId::floatBitsToInt_Float4,
    BuiltInName::floatBitsToInt,
    TExtension::UNDEFINED,
    BuiltInParameters::p30B00B00B,
    1,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpFloatBitsToInt,
    true);
constexpr const TFunction floatBitsToUint_00B(
    BuiltInId::floatBitsToUint_Float1,
    BuiltInName::floatBitsToUint,
    TExtension::UNDEFINED,
    BuiltInParameters::p00B30B,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpFloatBitsToUint,
    true);
constexpr const TFunction floatBitsToUint_10B(
    BuiltInId::floatBitsToUint_Float2,
    BuiltInName::floatBitsToUint,
    TExtension::UNDEFINED,
    BuiltInParameters::p10B20B,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpFloatBitsToUint,
    true);
constexpr const TFunction floatBitsToUint_20B(
    BuiltInId::floatBitsToUint_Float3,
    BuiltInName::floatBitsToUint,
    TExtension::UNDEFINED,
    BuiltInParameters::p20B00H,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpFloatBitsToUint,
    true);
constexpr const TFunction floatBitsToUint_30B(
    BuiltInId::floatBitsToUint_Float4,
    BuiltInName::floatBitsToUint,
    TExtension::UNDEFINED,
    BuiltInParameters::p30B00B00B,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpFloatBitsToUint,
    true);
constexpr const TFunction intBitsToFloat_00D(
    BuiltInId::intBitsToFloat_Int1,
    BuiltInName::intBitsToFloat,
    TExtension::UNDEFINED,
    BuiltInParameters::p00D00D00D00D,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpIntBitsToFloat,
    true);
constexpr const TFunction intBitsToFloat_10D(
    BuiltInId::intBitsToFloat_Int2,
    BuiltInName::intBitsToFloat,
    TExtension::UNDEFINED,
    BuiltInParameters::p10D00D00D,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpIntBitsToFloat,
    true);
constexpr const TFunction intBitsToFloat_20D(
    BuiltInId::intBitsToFloat_Int3,
    BuiltInName::intBitsToFloat,
    TExtension::UNDEFINED,
    BuiltInParameters::p20D20D00D00D,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpIntBitsToFloat,
    true);
constexpr const TFunction intBitsToFloat_30D(
    BuiltInId::intBitsToFloat_Int4,
    BuiltInName::intBitsToFloat,
    TExtension::UNDEFINED,
    BuiltInParameters::p30D00D00D,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpIntBitsToFloat,
    true);
constexpr const TFunction uintBitsToFloat_00E(
    BuiltInId::uintBitsToFloat_UInt1,
    BuiltInName::uintBitsToFloat,
    TExtension::UNDEFINED,
    BuiltInParameters::p00E00E00E,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpUintBitsToFloat,
    true);
constexpr const TFunction uintBitsToFloat_10E(
    BuiltInId::uintBitsToFloat_UInt2,
    BuiltInName::uintBitsToFloat,
    TExtension::UNDEFINED,
    BuiltInParameters::p10E00D00D,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpUintBitsToFloat,
    true);
constexpr const TFunction uintBitsToFloat_20E(
    BuiltInId::uintBitsToFloat_UInt3,
    BuiltInName::uintBitsToFloat,
    TExtension::UNDEFINED,
    BuiltInParameters::p20E20E00D00D,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpUintBitsToFloat,
    true);
constexpr const TFunction uintBitsToFloat_30E(
    BuiltInId::uintBitsToFloat_UInt4,
    BuiltInName::uintBitsToFloat,
    TExtension::UNDEFINED,
    BuiltInParameters::p30E30E00D00D,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpUintBitsToFloat,
    true);
constexpr const TFunction fma_00B00B00B(BuiltInId::fma_Float1_Float1_Float1,
                                        BuiltInName::fma,
                                        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,
                                        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,
                                        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,
                                        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,
    TExtension::EXT_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,
    TExtension::EXT_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,
    TExtension::EXT_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,
    TExtension::EXT_gpu_shader5,
    BuiltInParameters::p30B30B30B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpFma,
    true);
constexpr const TFunction frexp_00B00D(BuiltInId::frexp_Float1_Int1,
                                       BuiltInName::frexp,
                                       TExtension::UNDEFINED,
                                       BuiltInParameters::p00B_o_00D,
                                       2,
                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                       EOpFrexp,
                                       false);
constexpr const TFunction frexp_10B10D(BuiltInId::frexp_Float2_Int2,
                                       BuiltInName::frexp,
                                       TExtension::UNDEFINED,
                                       BuiltInParameters::p10B_o_10D,
                                       2,
                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                       EOpFrexp,
                                       false);
constexpr const TFunction frexp_20B20D(BuiltInId::frexp_Float3_Int3,
                                       BuiltInName::frexp,
                                       TExtension::UNDEFINED,
                                       BuiltInParameters::p20B_o_20D,
                                       2,
                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                       EOpFrexp,
                                       false);
constexpr const TFunction frexp_30B30D(BuiltInId::frexp_Float4_Int4,
                                       BuiltInName::frexp,
                                       TExtension::UNDEFINED,
                                       BuiltInParameters::p30B_o_30D,
                                       2,
                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                       EOpFrexp,
                                       false);
constexpr const TFunction ldexp_00B00D(BuiltInId::ldexp_Float1_Int1,
                                       BuiltInName::ldexp,
                                       TExtension::UNDEFINED,
                                       BuiltInParameters::p00B00D,
                                       2,
                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                       EOpLdexp,
                                       true);
constexpr const TFunction ldexp_10B10D(BuiltInId::ldexp_Float2_Int2,
                                       BuiltInName::ldexp,
                                       TExtension::UNDEFINED,
                                       BuiltInParameters::p10B10D,
                                       2,
                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                       EOpLdexp,
                                       true);
constexpr const TFunction ldexp_20B20D(BuiltInId::ldexp_Float3_Int3,
                                       BuiltInName::ldexp,
                                       TExtension::UNDEFINED,
                                       BuiltInParameters::p20B20D,
                                       2,
                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                       EOpLdexp,
                                       true);
constexpr const TFunction ldexp_30B30D(BuiltInId::ldexp_Float4_Int4,
                                       BuiltInName::ldexp,
                                       TExtension::UNDEFINED,
                                       BuiltInParameters::p30B30D,
                                       2,
                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                       EOpLdexp,
                                       true);
constexpr const TFunction packSnorm2x16_10B(
    BuiltInId::packSnorm2x16_Float2,
    BuiltInName::packSnorm2x16,
    TExtension::UNDEFINED,
    BuiltInParameters::p10B20B,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpPackSnorm2x16,
    true);
constexpr const TFunction packHalf2x16_10B(
    BuiltInId::packHalf2x16_Float2,
    BuiltInName::packHalf2x16,
    TExtension::UNDEFINED,
    BuiltInParameters::p10B20B,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpPackHalf2x16,
    true);
constexpr const TFunction unpackSnorm2x16_00E(
    BuiltInId::unpackSnorm2x16_UInt1,
    BuiltInName::unpackSnorm2x16,
    TExtension::UNDEFINED,
    BuiltInParameters::p00E00E00E,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpUnpackSnorm2x16,
    true);
constexpr const TFunction unpackHalf2x16_00E(
    BuiltInId::unpackHalf2x16_UInt1,
    BuiltInName::unpackHalf2x16,
    TExtension::UNDEFINED,
    BuiltInParameters::p00E00E00E,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpUnpackHalf2x16,
    true);
constexpr const TFunction packUnorm2x16_10B(
    BuiltInId::packUnorm2x16_Float2,
    BuiltInName::packUnorm2x16,
    TExtension::UNDEFINED,
    BuiltInParameters::p10B20B,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpPackUnorm2x16,
    true);
constexpr const TFunction unpackUnorm2x16_00E(
    BuiltInId::unpackUnorm2x16_UInt1,
    BuiltInName::unpackUnorm2x16,
    TExtension::UNDEFINED,
    BuiltInParameters::p00E00E00E,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpUnpackUnorm2x16,
    true);
constexpr const TFunction packUnorm4x8_30B(
    BuiltInId::packUnorm4x8_Float4,
    BuiltInName::packUnorm4x8,
    TExtension::UNDEFINED,
    BuiltInParameters::p30B00B00B,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpPackUnorm4x8,
    true);
constexpr const TFunction packSnorm4x8_30B(
    BuiltInId::packSnorm4x8_Float4,
    BuiltInName::packSnorm4x8,
    TExtension::UNDEFINED,
    BuiltInParameters::p30B00B00B,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpPackSnorm4x8,
    true);
constexpr const TFunction unpackUnorm4x8_00E(
    BuiltInId::unpackUnorm4x8_UInt1,
    BuiltInName::unpackUnorm4x8,
    TExtension::UNDEFINED,
    BuiltInParameters::p00E00E00E,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpUnpackUnorm4x8,
    true);
constexpr const TFunction unpackSnorm4x8_00E(
    BuiltInId::unpackSnorm4x8_UInt1,
    BuiltInName::unpackSnorm4x8,
    TExtension::UNDEFINED,
    BuiltInParameters::p00E00E00E,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpUnpackSnorm4x8,
    true);
constexpr const TFunction length_00B(BuiltInId::length_Float1,
                                     BuiltInName::length,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p00B30B,
                                     1,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpLength,
                                     true);
constexpr const TFunction length_10B(BuiltInId::length_Float2,
                                     BuiltInName::length,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p10B20B,
                                     1,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpLength,
                                     true);
constexpr const TFunction length_20B(BuiltInId::length_Float3,
                                     BuiltInName::length,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p20B00H,
                                     1,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpLength,
                                     true);
constexpr const TFunction length_30B(BuiltInId::length_Float4,
                                     BuiltInName::length,
                                     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,
    TExtension::UNDEFINED,
    BuiltInParameters::p00B00B20B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpDistance,
    true);
constexpr const TFunction distance_10B10B(
    BuiltInId::distance_Float2_Float2,
    BuiltInName::distance,
    TExtension::UNDEFINED,
    BuiltInParameters::p10B10B10F,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpDistance,
    true);
constexpr const TFunction distance_20B20B(
    BuiltInId::distance_Float3_Float3,
    BuiltInName::distance,
    TExtension::UNDEFINED,
    BuiltInParameters::p20B20B20F,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpDistance,
    true);
constexpr const TFunction distance_30B30B(
    BuiltInId::distance_Float4_Float4,
    BuiltInName::distance,
    TExtension::UNDEFINED,
    BuiltInParameters::p30B30B30F,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpDistance,
    true);
constexpr const TFunction dot_00B00B(BuiltInId::dot_Float1_Float1,
                                     BuiltInName::dot,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p00B00B20B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpDot,
                                     true);
constexpr const TFunction dot_10B10B(BuiltInId::dot_Float2_Float2,
                                     BuiltInName::dot,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p10B10B10F,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpDot,
                                     true);
constexpr const TFunction dot_20B20B(BuiltInId::dot_Float3_Float3,
                                     BuiltInName::dot,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p20B20B20F,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpDot,
                                     true);
constexpr const TFunction dot_30B30B(BuiltInId::dot_Float4_Float4,
                                     BuiltInName::dot,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p30B30B30F,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpDot,
                                     true);
constexpr const TFunction cross_20B20B(BuiltInId::cross_Float3_Float3,
                                       BuiltInName::cross,
                                       TExtension::UNDEFINED,
                                       BuiltInParameters::p20B20B20F,
                                       2,
                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                       EOpCross,
                                       true);
constexpr const TFunction normalize_00B(BuiltInId::normalize_Float1,
                                        BuiltInName::normalize,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p00B30B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                        EOpNormalize,
                                        true);
constexpr const TFunction normalize_10B(BuiltInId::normalize_Float2,
                                        BuiltInName::normalize,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p10B20B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpNormalize,
                                        true);
constexpr const TFunction normalize_20B(BuiltInId::normalize_Float3,
                                        BuiltInName::normalize,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p20B00H,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpNormalize,
                                        true);
constexpr const TFunction normalize_30B(BuiltInId::normalize_Float4,
                                        BuiltInName::normalize,
                                        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,
    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,
    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,
    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,
    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,
                                         TExtension::UNDEFINED,
                                         BuiltInParameters::p00B00B20B,
                                         2,
                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                         EOpReflect,
                                         true);
constexpr const TFunction reflect_10B10B(BuiltInId::reflect_Float2_Float2,
                                         BuiltInName::reflect,
                                         TExtension::UNDEFINED,
                                         BuiltInParameters::p10B10B10F,
                                         2,
                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                         EOpReflect,
                                         true);
constexpr const TFunction reflect_20B20B(BuiltInId::reflect_Float3_Float3,
                                         BuiltInName::reflect,
                                         TExtension::UNDEFINED,
                                         BuiltInParameters::p20B20B20F,
                                         2,
                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                         EOpReflect,
                                         true);
constexpr const TFunction reflect_30B30B(BuiltInId::reflect_Float4_Float4,
                                         BuiltInName::reflect,
                                         TExtension::UNDEFINED,
                                         BuiltInParameters::p30B30B30F,
                                         2,
                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                         EOpReflect,
                                         true);
constexpr const TFunction refract_00B00B00B(
    BuiltInId::refract_Float1_Float1_Float1,
    BuiltInName::refract,
    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,
    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,
    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,
    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,
    TExtension::UNDEFINED,
    BuiltInParameters::p50B50B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 2>(),
    EOpMulMatrixComponentWise,
    true);
constexpr const TFunction matrixCompMult_A0BA0B(
    BuiltInId::matrixCompMult_Float3x3_Float3x3,
    BuiltInName::matrixCompMult,
    TExtension::UNDEFINED,
    BuiltInParameters::pA0BA0B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 3>(),
    EOpMulMatrixComponentWise,
    true);
constexpr const TFunction matrixCompMult_F0BF0B(
    BuiltInId::matrixCompMult_Float4x4_Float4x4,
    BuiltInName::matrixCompMult,
    TExtension::UNDEFINED,
    BuiltInParameters::pF0BF0B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 4>(),
    EOpMulMatrixComponentWise,
    true);
constexpr const TFunction matrixCompMult_90B90B(
    BuiltInId::matrixCompMult_Float2x3_Float2x3,
    BuiltInName::matrixCompMult,
    TExtension::UNDEFINED,
    BuiltInParameters::p90B90B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 3>(),
    EOpMulMatrixComponentWise,
    true);
constexpr const TFunction matrixCompMult_60B60B(
    BuiltInId::matrixCompMult_Float3x2_Float3x2,
    BuiltInName::matrixCompMult,
    TExtension::UNDEFINED,
    BuiltInParameters::p60B60B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 2>(),
    EOpMulMatrixComponentWise,
    true);
constexpr const TFunction matrixCompMult_D0BD0B(
    BuiltInId::matrixCompMult_Float2x4_Float2x4,
    BuiltInName::matrixCompMult,
    TExtension::UNDEFINED,
    BuiltInParameters::pD0BD0B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 4>(),
    EOpMulMatrixComponentWise,
    true);
constexpr const TFunction matrixCompMult_70B70B(
    BuiltInId::matrixCompMult_Float4x2_Float4x2,
    BuiltInName::matrixCompMult,
    TExtension::UNDEFINED,
    BuiltInParameters::p70B70B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 2>(),
    EOpMulMatrixComponentWise,
    true);
constexpr const TFunction matrixCompMult_E0BE0B(
    BuiltInId::matrixCompMult_Float3x4_Float3x4,
    BuiltInName::matrixCompMult,
    TExtension::UNDEFINED,
    BuiltInParameters::pE0BE0B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 4>(),
    EOpMulMatrixComponentWise,
    true);
constexpr const TFunction matrixCompMult_B0BB0B(
    BuiltInId::matrixCompMult_Float4x3_Float4x3,
    BuiltInName::matrixCompMult,
    TExtension::UNDEFINED,
    BuiltInParameters::pB0BB0B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 3>(),
    EOpMulMatrixComponentWise,
    true);
constexpr const TFunction outerProduct_10B10B(
    BuiltInId::outerProduct_Float2_Float2,
    BuiltInName::outerProduct,
    TExtension::UNDEFINED,
    BuiltInParameters::p10B10B10F,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 2>(),
    EOpOuterProduct,
    true);
constexpr const TFunction outerProduct_20B20B(
    BuiltInId::outerProduct_Float3_Float3,
    BuiltInName::outerProduct,
    TExtension::UNDEFINED,
    BuiltInParameters::p20B20B20F,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 3>(),
    EOpOuterProduct,
    true);
constexpr const TFunction outerProduct_30B30B(
    BuiltInId::outerProduct_Float4_Float4,
    BuiltInName::outerProduct,
    TExtension::UNDEFINED,
    BuiltInParameters::p30B30B30F,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 4>(),
    EOpOuterProduct,
    true);
constexpr const TFunction outerProduct_20B10B(
    BuiltInId::outerProduct_Float3_Float2,
    BuiltInName::outerProduct,
    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,
    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,
    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,
    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,
    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,
    TExtension::UNDEFINED,
    BuiltInParameters::p20B30B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 3>(),
    EOpOuterProduct,
    true);
constexpr const TFunction transpose_50B(BuiltInId::transpose_Float2x2,
                                        BuiltInName::transpose,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p50B50B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 2>(),
                                        EOpTranspose,
                                        true);
constexpr const TFunction transpose_A0B(BuiltInId::transpose_Float3x3,
                                        BuiltInName::transpose,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::pA0BA0B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 3>(),
                                        EOpTranspose,
                                        true);
constexpr const TFunction transpose_F0B(BuiltInId::transpose_Float4x4,
                                        BuiltInName::transpose,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::pF0BF0B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 4>(),
                                        EOpTranspose,
                                        true);
constexpr const TFunction transpose_60B(BuiltInId::transpose_Float3x2,
                                        BuiltInName::transpose,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p60B60B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 3>(),
                                        EOpTranspose,
                                        true);
constexpr const TFunction transpose_90B(BuiltInId::transpose_Float2x3,
                                        BuiltInName::transpose,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p90B90B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 2>(),
                                        EOpTranspose,
                                        true);
constexpr const TFunction transpose_70B(BuiltInId::transpose_Float4x2,
                                        BuiltInName::transpose,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p70B70B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 4>(),
                                        EOpTranspose,
                                        true);
constexpr const TFunction transpose_D0B(BuiltInId::transpose_Float2x4,
                                        BuiltInName::transpose,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::pD0BD0B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 2>(),
                                        EOpTranspose,
                                        true);
constexpr const TFunction transpose_B0B(BuiltInId::transpose_Float4x3,
                                        BuiltInName::transpose,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::pB0BB0B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 4>(),
                                        EOpTranspose,
                                        true);
constexpr const TFunction transpose_E0B(BuiltInId::transpose_Float3x4,
                                        BuiltInName::transpose,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::pE0BE0B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 3>(),
                                        EOpTranspose,
                                        true);
constexpr const TFunction determinant_50B(
    BuiltInId::determinant_Float2x2,
    BuiltInName::determinant,
    TExtension::UNDEFINED,
    BuiltInParameters::p50B50B,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpDeterminant,
    true);
constexpr const TFunction determinant_A0B(
    BuiltInId::determinant_Float3x3,
    BuiltInName::determinant,
    TExtension::UNDEFINED,
    BuiltInParameters::pA0BA0B,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpDeterminant,
    true);
constexpr const TFunction determinant_F0B(
    BuiltInId::determinant_Float4x4,
    BuiltInName::determinant,
    TExtension::UNDEFINED,
    BuiltInParameters::pF0BF0B,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpDeterminant,
    true);
constexpr const TFunction inverse_50B(BuiltInId::inverse_Float2x2,
                                      BuiltInName::inverse,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p50B50B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 2>(),
                                      EOpInverse,
                                      true);
constexpr const TFunction inverse_A0B(BuiltInId::inverse_Float3x3,
                                      BuiltInName::inverse,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::pA0BA0B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 3>(),
                                      EOpInverse,
                                      true);
constexpr const TFunction inverse_F0B(BuiltInId::inverse_Float4x4,
                                      BuiltInName::inverse,
                                      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,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p10B10B10F,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                          EOpLessThanComponentWise,
                                          true);
constexpr const TFunction lessThan_20B20B(BuiltInId::lessThan_Float3_Float3,
                                          BuiltInName::lessThan,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p20B20B20F,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                          EOpLessThanComponentWise,
                                          true);
constexpr const TFunction lessThan_30B30B(BuiltInId::lessThan_Float4_Float4,
                                          BuiltInName::lessThan,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p30B30B30F,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                          EOpLessThanComponentWise,
                                          true);
constexpr const TFunction lessThan_10D10D(BuiltInId::lessThan_Int2_Int2,
                                          BuiltInName::lessThan,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p10D10D10D,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                          EOpLessThanComponentWise,
                                          true);
constexpr const TFunction lessThan_20D20D(BuiltInId::lessThan_Int3_Int3,
                                          BuiltInName::lessThan,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p20D20D00D00D,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                          EOpLessThanComponentWise,
                                          true);
constexpr const TFunction lessThan_30D30D(BuiltInId::lessThan_Int4_Int4,
                                          BuiltInName::lessThan,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p30D30D30D,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                          EOpLessThanComponentWise,
                                          true);
constexpr const TFunction lessThan_10E10E(BuiltInId::lessThan_UInt2_UInt2,
                                          BuiltInName::lessThan,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p10E10E10E,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                          EOpLessThanComponentWise,
                                          true);
constexpr const TFunction lessThan_20E20E(BuiltInId::lessThan_UInt3_UInt3,
                                          BuiltInName::lessThan,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p20E20E00D00D,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                          EOpLessThanComponentWise,
                                          true);
constexpr const TFunction lessThan_30E30E(BuiltInId::lessThan_UInt4_UInt4,
                                          BuiltInName::lessThan,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p30E30E00D00D,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                          EOpLessThanComponentWise,
                                          true);
constexpr const TFunction lessThanEqual_10B10B(
    BuiltInId::lessThanEqual_Float2_Float2,
    BuiltInName::lessThanEqual,
    TExtension::UNDEFINED,
    BuiltInParameters::p10B10B10F,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpLessThanEqualComponentWise,
    true);
constexpr const TFunction lessThanEqual_20B20B(
    BuiltInId::lessThanEqual_Float3_Float3,
    BuiltInName::lessThanEqual,
    TExtension::UNDEFINED,
    BuiltInParameters::p20B20B20F,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpLessThanEqualComponentWise,
    true);
constexpr const TFunction lessThanEqual_30B30B(
    BuiltInId::lessThanEqual_Float4_Float4,
    BuiltInName::lessThanEqual,
    TExtension::UNDEFINED,
    BuiltInParameters::p30B30B30F,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpLessThanEqualComponentWise,
    true);
constexpr const TFunction lessThanEqual_10D10D(
    BuiltInId::lessThanEqual_Int2_Int2,
    BuiltInName::lessThanEqual,
    TExtension::UNDEFINED,
    BuiltInParameters::p10D10D10D,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpLessThanEqualComponentWise,
    true);
constexpr const TFunction lessThanEqual_20D20D(
    BuiltInId::lessThanEqual_Int3_Int3,
    BuiltInName::lessThanEqual,
    TExtension::UNDEFINED,
    BuiltInParameters::p20D20D00D00D,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpLessThanEqualComponentWise,
    true);
constexpr const TFunction lessThanEqual_30D30D(
    BuiltInId::lessThanEqual_Int4_Int4,
    BuiltInName::lessThanEqual,
    TExtension::UNDEFINED,
    BuiltInParameters::p30D30D30D,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpLessThanEqualComponentWise,
    true);
constexpr const TFunction lessThanEqual_10E10E(
    BuiltInId::lessThanEqual_UInt2_UInt2,
    BuiltInName::lessThanEqual,
    TExtension::UNDEFINED,
    BuiltInParameters::p10E10E10E,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpLessThanEqualComponentWise,
    true);
constexpr const TFunction lessThanEqual_20E20E(
    BuiltInId::lessThanEqual_UInt3_UInt3,
    BuiltInName::lessThanEqual,
    TExtension::UNDEFINED,
    BuiltInParameters::p20E20E00D00D,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpLessThanEqualComponentWise,
    true);
constexpr const TFunction lessThanEqual_30E30E(
    BuiltInId::lessThanEqual_UInt4_UInt4,
    BuiltInName::lessThanEqual,
    TExtension::UNDEFINED,
    BuiltInParameters::p30E30E00D00D,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpLessThanEqualComponentWise,
    true);
constexpr const TFunction greaterThan_10B10B(
    BuiltInId::greaterThan_Float2_Float2,
    BuiltInName::greaterThan,
    TExtension::UNDEFINED,
    BuiltInParameters::p10B10B10F,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpGreaterThanComponentWise,
    true);
constexpr const TFunction greaterThan_20B20B(
    BuiltInId::greaterThan_Float3_Float3,
    BuiltInName::greaterThan,
    TExtension::UNDEFINED,
    BuiltInParameters::p20B20B20F,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpGreaterThanComponentWise,
    true);
constexpr const TFunction greaterThan_30B30B(
    BuiltInId::greaterThan_Float4_Float4,
    BuiltInName::greaterThan,
    TExtension::UNDEFINED,
    BuiltInParameters::p30B30B30F,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpGreaterThanComponentWise,
    true);
constexpr const TFunction greaterThan_10D10D(
    BuiltInId::greaterThan_Int2_Int2,
    BuiltInName::greaterThan,
    TExtension::UNDEFINED,
    BuiltInParameters::p10D10D10D,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpGreaterThanComponentWise,
    true);
constexpr const TFunction greaterThan_20D20D(
    BuiltInId::greaterThan_Int3_Int3,
    BuiltInName::greaterThan,
    TExtension::UNDEFINED,
    BuiltInParameters::p20D20D00D00D,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpGreaterThanComponentWise,
    true);
constexpr const TFunction greaterThan_30D30D(
    BuiltInId::greaterThan_Int4_Int4,
    BuiltInName::greaterThan,
    TExtension::UNDEFINED,
    BuiltInParameters::p30D30D30D,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpGreaterThanComponentWise,
    true);
constexpr const TFunction greaterThan_10E10E(
    BuiltInId::greaterThan_UInt2_UInt2,
    BuiltInName::greaterThan,
    TExtension::UNDEFINED,
    BuiltInParameters::p10E10E10E,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpGreaterThanComponentWise,
    true);
constexpr const TFunction greaterThan_20E20E(
    BuiltInId::greaterThan_UInt3_UInt3,
    BuiltInName::greaterThan,
    TExtension::UNDEFINED,
    BuiltInParameters::p20E20E00D00D,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpGreaterThanComponentWise,
    true);
constexpr const TFunction greaterThan_30E30E(
    BuiltInId::greaterThan_UInt4_UInt4,
    BuiltInName::greaterThan,
    TExtension::UNDEFINED,
    BuiltInParameters::p30E30E00D00D,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpGreaterThanComponentWise,
    true);
constexpr const TFunction greaterThanEqual_10B10B(
    BuiltInId::greaterThanEqual_Float2_Float2,
    BuiltInName::greaterThanEqual,
    TExtension::UNDEFINED,
    BuiltInParameters::p10B10B10F,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpGreaterThanEqualComponentWise,
    true);
constexpr const TFunction greaterThanEqual_20B20B(
    BuiltInId::greaterThanEqual_Float3_Float3,
    BuiltInName::greaterThanEqual,
    TExtension::UNDEFINED,
    BuiltInParameters::p20B20B20F,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpGreaterThanEqualComponentWise,
    true);
constexpr const TFunction greaterThanEqual_30B30B(
    BuiltInId::greaterThanEqual_Float4_Float4,
    BuiltInName::greaterThanEqual,
    TExtension::UNDEFINED,
    BuiltInParameters::p30B30B30F,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpGreaterThanEqualComponentWise,
    true);
constexpr const TFunction greaterThanEqual_10D10D(
    BuiltInId::greaterThanEqual_Int2_Int2,
    BuiltInName::greaterThanEqual,
    TExtension::UNDEFINED,
    BuiltInParameters::p10D10D10D,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpGreaterThanEqualComponentWise,
    true);
constexpr const TFunction greaterThanEqual_20D20D(
    BuiltInId::greaterThanEqual_Int3_Int3,
    BuiltInName::greaterThanEqual,
    TExtension::UNDEFINED,
    BuiltInParameters::p20D20D00D00D,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpGreaterThanEqualComponentWise,
    true);
constexpr const TFunction greaterThanEqual_30D30D(
    BuiltInId::greaterThanEqual_Int4_Int4,
    BuiltInName::greaterThanEqual,
    TExtension::UNDEFINED,
    BuiltInParameters::p30D30D30D,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpGreaterThanEqualComponentWise,
    true);
constexpr const TFunction greaterThanEqual_10E10E(
    BuiltInId::greaterThanEqual_UInt2_UInt2,
    BuiltInName::greaterThanEqual,
    TExtension::UNDEFINED,
    BuiltInParameters::p10E10E10E,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpGreaterThanEqualComponentWise,
    true);
constexpr const TFunction greaterThanEqual_20E20E(
    BuiltInId::greaterThanEqual_UInt3_UInt3,
    BuiltInName::greaterThanEqual,
    TExtension::UNDEFINED,
    BuiltInParameters::p20E20E00D00D,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpGreaterThanEqualComponentWise,
    true);
constexpr const TFunction greaterThanEqual_30E30E(
    BuiltInId::greaterThanEqual_UInt4_UInt4,
    BuiltInName::greaterThanEqual,
    TExtension::UNDEFINED,
    BuiltInParameters::p30E30E00D00D,
    2,
    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpGreaterThanEqualComponentWise,
    true);
constexpr const TFunction equal_10B10B(BuiltInId::equal_Float2_Float2,
                                       BuiltInName::equal,
                                       TExtension::UNDEFINED,
                                       BuiltInParameters::p10B10B10F,
                                       2,
                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                       EOpEqualComponentWise,
                                       true);
constexpr const TFunction equal_20B20B(BuiltInId::equal_Float3_Float3,
                                       BuiltInName::equal,
                                       TExtension::UNDEFINED,
                                       BuiltInParameters::p20B20B20F,
                                       2,
                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                       EOpEqualComponentWise,
                                       true);
constexpr const TFunction equal_30B30B(BuiltInId::equal_Float4_Float4,
                                       BuiltInName::equal,
                                       TExtension::UNDEFINED,
                                       BuiltInParameters::p30B30B30F,
                                       2,
                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                       EOpEqualComponentWise,
                                       true);
constexpr const TFunction equal_10D10D(BuiltInId::equal_Int2_Int2,
                                       BuiltInName::equal,
                                       TExtension::UNDEFINED,
                                       BuiltInParameters::p10D10D10D,
                                       2,
                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                       EOpEqualComponentWise,
                                       true);
constexpr const TFunction equal_20D20D(BuiltInId::equal_Int3_Int3,
                                       BuiltInName::equal,
                                       TExtension::UNDEFINED,
                                       BuiltInParameters::p20D20D00D00D,
                                       2,
                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                       EOpEqualComponentWise,
                                       true);
constexpr const TFunction equal_30D30D(BuiltInId::equal_Int4_Int4,
                                       BuiltInName::equal,
                                       TExtension::UNDEFINED,
                                       BuiltInParameters::p30D30D30D,
                                       2,
                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                       EOpEqualComponentWise,
                                       true);
constexpr const TFunction equal_10E10E(BuiltInId::equal_UInt2_UInt2,
                                       BuiltInName::equal,
                                       TExtension::UNDEFINED,
                                       BuiltInParameters::p10E10E10E,
                                       2,
                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                       EOpEqualComponentWise,
                                       true);
constexpr const TFunction equal_20E20E(BuiltInId::equal_UInt3_UInt3,
                                       BuiltInName::equal,
                                       TExtension::UNDEFINED,
                                       BuiltInParameters::p20E20E00D00D,
                                       2,
                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                       EOpEqualComponentWise,
                                       true);
constexpr const TFunction equal_30E30E(BuiltInId::equal_UInt4_UInt4,
                                       BuiltInName::equal,
                                       TExtension::UNDEFINED,
                                       BuiltInParameters::p30E30E00D00D,
                                       2,
                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                       EOpEqualComponentWise,
                                       true);
constexpr const TFunction equal_10F10F(BuiltInId::equal_Bool2_Bool2,
                                       BuiltInName::equal,
                                       TExtension::UNDEFINED,
                                       BuiltInParameters::p10F10F,
                                       2,
                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                       EOpEqualComponentWise,
                                       true);
constexpr const TFunction equal_20F20F(BuiltInId::equal_Bool3_Bool3,
                                       BuiltInName::equal,
                                       TExtension::UNDEFINED,
                                       BuiltInParameters::p20F20F,
                                       2,
                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                       EOpEqualComponentWise,
                                       true);
constexpr const TFunction equal_30F30F(BuiltInId::equal_Bool4_Bool4,
                                       BuiltInName::equal,
                                       TExtension::UNDEFINED,
                                       BuiltInParameters::p30F30F,
                                       2,
                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                       EOpEqualComponentWise,
                                       true);
constexpr const TFunction notEqual_10B10B(BuiltInId::notEqual_Float2_Float2,
                                          BuiltInName::notEqual,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p10B10B10F,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                          EOpNotEqualComponentWise,
                                          true);
constexpr const TFunction notEqual_20B20B(BuiltInId::notEqual_Float3_Float3,
                                          BuiltInName::notEqual,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p20B20B20F,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                          EOpNotEqualComponentWise,
                                          true);
constexpr const TFunction notEqual_30B30B(BuiltInId::notEqual_Float4_Float4,
                                          BuiltInName::notEqual,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p30B30B30F,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                          EOpNotEqualComponentWise,
                                          true);
constexpr const TFunction notEqual_10D10D(BuiltInId::notEqual_Int2_Int2,
                                          BuiltInName::notEqual,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p10D10D10D,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                          EOpNotEqualComponentWise,
                                          true);
constexpr const TFunction notEqual_20D20D(BuiltInId::notEqual_Int3_Int3,
                                          BuiltInName::notEqual,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p20D20D00D00D,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                          EOpNotEqualComponentWise,
                                          true);
constexpr const TFunction notEqual_30D30D(BuiltInId::notEqual_Int4_Int4,
                                          BuiltInName::notEqual,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p30D30D30D,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                          EOpNotEqualComponentWise,
                                          true);
constexpr const TFunction notEqual_10E10E(BuiltInId::notEqual_UInt2_UInt2,
                                          BuiltInName::notEqual,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p10E10E10E,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                          EOpNotEqualComponentWise,
                                          true);
constexpr const TFunction notEqual_20E20E(BuiltInId::notEqual_UInt3_UInt3,
                                          BuiltInName::notEqual,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p20E20E00D00D,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                          EOpNotEqualComponentWise,
                                          true);
constexpr const TFunction notEqual_30E30E(BuiltInId::notEqual_UInt4_UInt4,
                                          BuiltInName::notEqual,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p30E30E00D00D,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                          EOpNotEqualComponentWise,
                                          true);
constexpr const TFunction notEqual_10F10F(BuiltInId::notEqual_Bool2_Bool2,
                                          BuiltInName::notEqual,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p10F10F,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                          EOpNotEqualComponentWise,
                                          true);
constexpr const TFunction notEqual_20F20F(BuiltInId::notEqual_Bool3_Bool3,
                                          BuiltInName::notEqual,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p20F20F,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                          EOpNotEqualComponentWise,
                                          true);
constexpr const TFunction notEqual_30F30F(BuiltInId::notEqual_Bool4_Bool4,
                                          BuiltInName::notEqual,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p30F30F,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                          EOpNotEqualComponentWise,
                                          true);
constexpr const TFunction any_10F(BuiltInId::any_Bool2,
                                  BuiltInName::any,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p10F10F,
                                  1,
                                  StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
                                  EOpAny,
                                  true);
constexpr const TFunction any_20F(BuiltInId::any_Bool3,
                                  BuiltInName::any,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p20F20F,
                                  1,
                                  StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
                                  EOpAny,
                                  true);
constexpr const TFunction any_30F(BuiltInId::any_Bool4,
                                  BuiltInName::any,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p30F30F,
                                  1,
                                  StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
                                  EOpAny,
                                  true);
constexpr const TFunction all_10F(BuiltInId::all_Bool2,
                                  BuiltInName::all,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p10F10F,
                                  1,
                                  StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
                                  EOpAll,
                                  true);
constexpr const TFunction all_20F(BuiltInId::all_Bool3,
                                  BuiltInName::all,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p20F20F,
                                  1,
                                  StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
                                  EOpAll,
                                  true);
constexpr const TFunction all_30F(BuiltInId::all_Bool4,
                                  BuiltInName::all,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p30F30F,
                                  1,
                                  StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
                                  EOpAll,
                                  true);
constexpr const TFunction notFunc_10F(BuiltInId::notFunc_Bool2,
                                      BuiltInName::notFunc,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p10F10F,
                                      1,
                                      StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                      EOpLogicalNotComponentWise,
                                      true);
constexpr const TFunction notFunc_20F(BuiltInId::notFunc_Bool3,
                                      BuiltInName::notFunc,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p20F20F,
                                      1,
                                      StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                      EOpLogicalNotComponentWise,
                                      true);
constexpr const TFunction notFunc_30F(BuiltInId::notFunc_Bool4,
                                      BuiltInName::notFunc,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p30F30F,
                                      1,
                                      StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                      EOpLogicalNotComponentWise,
                                      true);
constexpr const TFunction bitfieldExtract_00D00D00D(
    BuiltInId::bitfieldExtract_Int1_Int1_Int1,
    BuiltInName::bitfieldExtract,
    TExtension::UNDEFINED,
    BuiltInParameters::p00D00D00D00D,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpBitfieldExtract,
    true);
constexpr const TFunction bitfieldExtract_10D00D00D(
    BuiltInId::bitfieldExtract_Int2_Int1_Int1,
    BuiltInName::bitfieldExtract,
    TExtension::UNDEFINED,
    BuiltInParameters::p10D00D00D,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpBitfieldExtract,
    true);
constexpr const TFunction bitfieldExtract_20D00D00D(
    BuiltInId::bitfieldExtract_Int3_Int1_Int1,
    BuiltInName::bitfieldExtract,
    TExtension::UNDEFINED,
    BuiltInParameters::p20D00D00D,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpBitfieldExtract,
    true);
constexpr const TFunction bitfieldExtract_30D00D00D(
    BuiltInId::bitfieldExtract_Int4_Int1_Int1,
    BuiltInName::bitfieldExtract,
    TExtension::UNDEFINED,
    BuiltInParameters::p30D00D00D,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpBitfieldExtract,
    true);
constexpr const TFunction bitfieldExtract_00E00D00D(
    BuiltInId::bitfieldExtract_UInt1_Int1_Int1,
    BuiltInName::bitfieldExtract,
    TExtension::UNDEFINED,
    BuiltInParameters::p00E00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpBitfieldExtract,
    true);
constexpr const TFunction bitfieldExtract_10E00D00D(
    BuiltInId::bitfieldExtract_UInt2_Int1_Int1,
    BuiltInName::bitfieldExtract,
    TExtension::UNDEFINED,
    BuiltInParameters::p10E00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpBitfieldExtract,
    true);
constexpr const TFunction bitfieldExtract_20E00D00D(
    BuiltInId::bitfieldExtract_UInt3_Int1_Int1,
    BuiltInName::bitfieldExtract,
    TExtension::UNDEFINED,
    BuiltInParameters::p20E00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpBitfieldExtract,
    true);
constexpr const TFunction bitfieldExtract_30E00D00D(
    BuiltInId::bitfieldExtract_UInt4_Int1_Int1,
    BuiltInName::bitfieldExtract,
    TExtension::UNDEFINED,
    BuiltInParameters::p30E00D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpBitfieldExtract,
    true);
constexpr const TFunction bitfieldInsert_00D00D00D00D(
    BuiltInId::bitfieldInsert_Int1_Int1_Int1_Int1,
    BuiltInName::bitfieldInsert,
    TExtension::UNDEFINED,
    BuiltInParameters::p00D00D00D00D,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpBitfieldInsert,
    true);
constexpr const TFunction bitfieldInsert_10D10D00D00D(
    BuiltInId::bitfieldInsert_Int2_Int2_Int1_Int1,
    BuiltInName::bitfieldInsert,
    TExtension::UNDEFINED,
    BuiltInParameters::p10D10D00D00D,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpBitfieldInsert,
    true);
constexpr const TFunction bitfieldInsert_20D20D00D00D(
    BuiltInId::bitfieldInsert_Int3_Int3_Int1_Int1,
    BuiltInName::bitfieldInsert,
    TExtension::UNDEFINED,
    BuiltInParameters::p20D20D00D00D,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpBitfieldInsert,
    true);
constexpr const TFunction bitfieldInsert_30D30D00D00D(
    BuiltInId::bitfieldInsert_Int4_Int4_Int1_Int1,
    BuiltInName::bitfieldInsert,
    TExtension::UNDEFINED,
    BuiltInParameters::p30D30D00D00D,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpBitfieldInsert,
    true);
constexpr const TFunction bitfieldInsert_00E00E00D00D(
    BuiltInId::bitfieldInsert_UInt1_UInt1_Int1_Int1,
    BuiltInName::bitfieldInsert,
    TExtension::UNDEFINED,
    BuiltInParameters::p00E00E00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpBitfieldInsert,
    true);
constexpr const TFunction bitfieldInsert_10E10E00D00D(
    BuiltInId::bitfieldInsert_UInt2_UInt2_Int1_Int1,
    BuiltInName::bitfieldInsert,
    TExtension::UNDEFINED,
    BuiltInParameters::p10E10E00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpBitfieldInsert,
    true);
constexpr const TFunction bitfieldInsert_20E20E00D00D(
    BuiltInId::bitfieldInsert_UInt3_UInt3_Int1_Int1,
    BuiltInName::bitfieldInsert,
    TExtension::UNDEFINED,
    BuiltInParameters::p20E20E00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpBitfieldInsert,
    true);
constexpr const TFunction bitfieldInsert_30E30E00D00D(
    BuiltInId::bitfieldInsert_UInt4_UInt4_Int1_Int1,
    BuiltInName::bitfieldInsert,
    TExtension::UNDEFINED,
    BuiltInParameters::p30E30E00D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpBitfieldInsert,
    true);
constexpr const TFunction bitfieldReverse_00D(
    BuiltInId::bitfieldReverse_Int1,
    BuiltInName::bitfieldReverse,
    TExtension::UNDEFINED,
    BuiltInParameters::p00D00D00D00D,
    1,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpBitfieldReverse,
    true);
constexpr const TFunction bitfieldReverse_10D(
    BuiltInId::bitfieldReverse_Int2,
    BuiltInName::bitfieldReverse,
    TExtension::UNDEFINED,
    BuiltInParameters::p10D00D00D,
    1,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpBitfieldReverse,
    true);
constexpr const TFunction bitfieldReverse_20D(
    BuiltInId::bitfieldReverse_Int3,
    BuiltInName::bitfieldReverse,
    TExtension::UNDEFINED,
    BuiltInParameters::p20D20D00D00D,
    1,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpBitfieldReverse,
    true);
constexpr const TFunction bitfieldReverse_30D(
    BuiltInId::bitfieldReverse_Int4,
    BuiltInName::bitfieldReverse,
    TExtension::UNDEFINED,
    BuiltInParameters::p30D00D00D,
    1,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpBitfieldReverse,
    true);
constexpr const TFunction bitfieldReverse_00E(
    BuiltInId::bitfieldReverse_UInt1,
    BuiltInName::bitfieldReverse,
    TExtension::UNDEFINED,
    BuiltInParameters::p00E00E00E,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpBitfieldReverse,
    true);
constexpr const TFunction bitfieldReverse_10E(
    BuiltInId::bitfieldReverse_UInt2,
    BuiltInName::bitfieldReverse,
    TExtension::UNDEFINED,
    BuiltInParameters::p10E00D00D,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpBitfieldReverse,
    true);
constexpr const TFunction bitfieldReverse_20E(
    BuiltInId::bitfieldReverse_UInt3,
    BuiltInName::bitfieldReverse,
    TExtension::UNDEFINED,
    BuiltInParameters::p20E20E00D00D,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpBitfieldReverse,
    true);
constexpr const TFunction bitfieldReverse_30E(
    BuiltInId::bitfieldReverse_UInt4,
    BuiltInName::bitfieldReverse,
    TExtension::UNDEFINED,
    BuiltInParameters::p30E30E00D00D,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpBitfieldReverse,
    true);
constexpr const TFunction bitCount_00D(BuiltInId::bitCount_Int1,
                                       BuiltInName::bitCount,
                                       TExtension::UNDEFINED,
                                       BuiltInParameters::p00D00D00D00D,
                                       1,
                                       StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                       EOpBitCount,
                                       true);
constexpr const TFunction bitCount_10D(BuiltInId::bitCount_Int2,
                                       BuiltInName::bitCount,
                                       TExtension::UNDEFINED,
                                       BuiltInParameters::p10D00D00D,
                                       1,
                                       StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                       EOpBitCount,
                                       true);
constexpr const TFunction bitCount_20D(BuiltInId::bitCount_Int3,
                                       BuiltInName::bitCount,
                                       TExtension::UNDEFINED,
                                       BuiltInParameters::p20D20D00D00D,
                                       1,
                                       StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                       EOpBitCount,
                                       true);
constexpr const TFunction bitCount_30D(BuiltInId::bitCount_Int4,
                                       BuiltInName::bitCount,
                                       TExtension::UNDEFINED,
                                       BuiltInParameters::p30D00D00D,
                                       1,
                                       StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                       EOpBitCount,
                                       true);
constexpr const TFunction bitCount_00E(BuiltInId::bitCount_UInt1,
                                       BuiltInName::bitCount,
                                       TExtension::UNDEFINED,
                                       BuiltInParameters::p00E00E00E,
                                       1,
                                       StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                       EOpBitCount,
                                       true);
constexpr const TFunction bitCount_10E(BuiltInId::bitCount_UInt2,
                                       BuiltInName::bitCount,
                                       TExtension::UNDEFINED,
                                       BuiltInParameters::p10E00D00D,
                                       1,
                                       StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                       EOpBitCount,
                                       true);
constexpr const TFunction bitCount_20E(BuiltInId::bitCount_UInt3,
                                       BuiltInName::bitCount,
                                       TExtension::UNDEFINED,
                                       BuiltInParameters::p20E20E00D00D,
                                       1,
                                       StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                       EOpBitCount,
                                       true);
constexpr const TFunction bitCount_30E(BuiltInId::bitCount_UInt4,
                                       BuiltInName::bitCount,
                                       TExtension::UNDEFINED,
                                       BuiltInParameters::p30E30E00D00D,
                                       1,
                                       StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                       EOpBitCount,
                                       true);
constexpr const TFunction findLSB_00D(BuiltInId::findLSB_Int1,
                                      BuiltInName::findLSB,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p00D00D00D00D,
                                      1,
                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                      EOpFindLSB,
                                      true);
constexpr const TFunction findLSB_10D(BuiltInId::findLSB_Int2,
                                      BuiltInName::findLSB,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p10D00D00D,
                                      1,
                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                      EOpFindLSB,
                                      true);
constexpr const TFunction findLSB_20D(BuiltInId::findLSB_Int3,
                                      BuiltInName::findLSB,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p20D20D00D00D,
                                      1,
                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                      EOpFindLSB,
                                      true);
constexpr const TFunction findLSB_30D(BuiltInId::findLSB_Int4,
                                      BuiltInName::findLSB,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p30D00D00D,
                                      1,
                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                      EOpFindLSB,
                                      true);
constexpr const TFunction findLSB_00E(BuiltInId::findLSB_UInt1,
                                      BuiltInName::findLSB,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p00E00E00E,
                                      1,
                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                      EOpFindLSB,
                                      true);
constexpr const TFunction findLSB_10E(BuiltInId::findLSB_UInt2,
                                      BuiltInName::findLSB,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p10E00D00D,
                                      1,
                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                      EOpFindLSB,
                                      true);
constexpr const TFunction findLSB_20E(BuiltInId::findLSB_UInt3,
                                      BuiltInName::findLSB,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p20E20E00D00D,
                                      1,
                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                      EOpFindLSB,
                                      true);
constexpr const TFunction findLSB_30E(BuiltInId::findLSB_UInt4,
                                      BuiltInName::findLSB,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p30E30E00D00D,
                                      1,
                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                      EOpFindLSB,
                                      true);
constexpr const TFunction findMSB_00D(BuiltInId::findMSB_Int1,
                                      BuiltInName::findMSB,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p00D00D00D00D,
                                      1,
                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                      EOpFindMSB,
                                      true);
constexpr const TFunction findMSB_10D(BuiltInId::findMSB_Int2,
                                      BuiltInName::findMSB,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p10D00D00D,
                                      1,
                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                      EOpFindMSB,
                                      true);
constexpr const TFunction findMSB_20D(BuiltInId::findMSB_Int3,
                                      BuiltInName::findMSB,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p20D20D00D00D,
                                      1,
                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                      EOpFindMSB,
                                      true);
constexpr const TFunction findMSB_30D(BuiltInId::findMSB_Int4,
                                      BuiltInName::findMSB,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p30D00D00D,
                                      1,
                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                      EOpFindMSB,
                                      true);
constexpr const TFunction findMSB_00E(BuiltInId::findMSB_UInt1,
                                      BuiltInName::findMSB,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p00E00E00E,
                                      1,
                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                      EOpFindMSB,
                                      true);
constexpr const TFunction findMSB_10E(BuiltInId::findMSB_UInt2,
                                      BuiltInName::findMSB,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p10E00D00D,
                                      1,
                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                      EOpFindMSB,
                                      true);
constexpr const TFunction findMSB_20E(BuiltInId::findMSB_UInt3,
                                      BuiltInName::findMSB,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p20E20E00D00D,
                                      1,
                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                      EOpFindMSB,
                                      true);
constexpr const TFunction findMSB_30E(BuiltInId::findMSB_UInt4,
                                      BuiltInName::findMSB,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p30E30E00D00D,
                                      1,
                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                      EOpFindMSB,
                                      true);
constexpr const TFunction uaddCarry_00E00E00E(
    BuiltInId::uaddCarry_UInt1_UInt1_UInt1,
    BuiltInName::uaddCarry,
    TExtension::UNDEFINED,
    BuiltInParameters::p00E00E_o_00E_o_00E,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpUaddCarry,
    false);
constexpr const TFunction uaddCarry_10E10E10E(
    BuiltInId::uaddCarry_UInt2_UInt2_UInt2,
    BuiltInName::uaddCarry,
    TExtension::UNDEFINED,
    BuiltInParameters::p10E10E_o_10E_o_10E,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpUaddCarry,
    false);
constexpr const TFunction uaddCarry_20E20E20E(
    BuiltInId::uaddCarry_UInt3_UInt3_UInt3,
    BuiltInName::uaddCarry,
    TExtension::UNDEFINED,
    BuiltInParameters::p20E20E_o_20E_o_20E,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpUaddCarry,
    false);
constexpr const TFunction uaddCarry_30E30E30E(
    BuiltInId::uaddCarry_UInt4_UInt4_UInt4,
    BuiltInName::uaddCarry,
    TExtension::UNDEFINED,
    BuiltInParameters::p30E30E_o_30E_o_30E,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpUaddCarry,
    false);
constexpr const TFunction usubBorrow_00E00E00E(
    BuiltInId::usubBorrow_UInt1_UInt1_UInt1,
    BuiltInName::usubBorrow,
    TExtension::UNDEFINED,
    BuiltInParameters::p00E00E_o_00E_o_00E,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpUsubBorrow,
    false);
constexpr const TFunction usubBorrow_10E10E10E(
    BuiltInId::usubBorrow_UInt2_UInt2_UInt2,
    BuiltInName::usubBorrow,
    TExtension::UNDEFINED,
    BuiltInParameters::p10E10E_o_10E_o_10E,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpUsubBorrow,
    false);
constexpr const TFunction usubBorrow_20E20E20E(
    BuiltInId::usubBorrow_UInt3_UInt3_UInt3,
    BuiltInName::usubBorrow,
    TExtension::UNDEFINED,
    BuiltInParameters::p20E20E_o_20E_o_20E,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpUsubBorrow,
    false);
constexpr const TFunction usubBorrow_30E30E30E(
    BuiltInId::usubBorrow_UInt4_UInt4_UInt4,
    BuiltInName::usubBorrow,
    TExtension::UNDEFINED,
    BuiltInParameters::p30E30E_o_30E_o_30E,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpUsubBorrow,
    false);
constexpr const TFunction umulExtended_00E00E00E00E(
    BuiltInId::umulExtended_UInt1_UInt1_UInt1_UInt1,
    BuiltInName::umulExtended,
    TExtension::UNDEFINED,
    BuiltInParameters::p00E00E_o_00E_o_00E,
    4,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpUmulExtended,
    false);
constexpr const TFunction umulExtended_10E10E10E10E(
    BuiltInId::umulExtended_UInt2_UInt2_UInt2_UInt2,
    BuiltInName::umulExtended,
    TExtension::UNDEFINED,
    BuiltInParameters::p10E10E_o_10E_o_10E,
    4,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpUmulExtended,
    false);
constexpr const TFunction umulExtended_20E20E20E20E(
    BuiltInId::umulExtended_UInt3_UInt3_UInt3_UInt3,
    BuiltInName::umulExtended,
    TExtension::UNDEFINED,
    BuiltInParameters::p20E20E_o_20E_o_20E,
    4,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpUmulExtended,
    false);
constexpr const TFunction umulExtended_30E30E30E30E(
    BuiltInId::umulExtended_UInt4_UInt4_UInt4_UInt4,
    BuiltInName::umulExtended,
    TExtension::UNDEFINED,
    BuiltInParameters::p30E30E_o_30E_o_30E,
    4,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpUmulExtended,
    false);
constexpr const TFunction imulExtended_00D00D00D00D(
    BuiltInId::imulExtended_Int1_Int1_Int1_Int1,
    BuiltInName::imulExtended,
    TExtension::UNDEFINED,
    BuiltInParameters::p00D00D_o_00D_o_00D,
    4,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImulExtended,
    false);
constexpr const TFunction imulExtended_10D10D10D10D(
    BuiltInId::imulExtended_Int2_Int2_Int2_Int2,
    BuiltInName::imulExtended,
    TExtension::UNDEFINED,
    BuiltInParameters::p10D10D_o_10D_o_10D,
    4,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImulExtended,
    false);
constexpr const TFunction imulExtended_20D20D20D20D(
    BuiltInId::imulExtended_Int3_Int3_Int3_Int3,
    BuiltInName::imulExtended,
    TExtension::UNDEFINED,
    BuiltInParameters::p20D20D_o_20D_o_20D,
    4,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImulExtended,
    false);
constexpr const TFunction imulExtended_30D30D30D30D(
    BuiltInId::imulExtended_Int4_Int4_Int4_Int4,
    BuiltInName::imulExtended,
    TExtension::UNDEFINED,
    BuiltInParameters::p30D30D_o_30D_o_30D,
    4,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImulExtended,
    false);
constexpr const TFunction texture2D_00I10B(
    BuiltInId::texture2D_Sampler2D1_Float2,
    BuiltInName::texture2D,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I10B00D,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture2DProj_00I20B(
    BuiltInId::texture2DProj_Sampler2D1_Float3,
    BuiltInName::texture2DProj,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I20B10B10B10D,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture2DProj_00I30B(
    BuiltInId::texture2DProj_Sampler2D1_Float4,
    BuiltInName::texture2DProj,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I30B10D00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureCube_00K20B(
    BuiltInId::textureCube_SamplerCube1_Float3,
    BuiltInName::textureCube,
    TExtension::UNDEFINED,
    BuiltInParameters::p00K20B20B20B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture2D_00M10B(
    BuiltInId::texture2D_SamplerExternalOES1_Float2,
    BuiltInName::texture2D,
    TExtension::UNDEFINED,
    BuiltInParameters::p00M10B00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture2DProj_00M20B(
    BuiltInId::texture2DProj_SamplerExternalOES1_Float3,
    BuiltInName::texture2DProj,
    TExtension::UNDEFINED,
    BuiltInParameters::p00M20B00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture2DProj_00M30B(
    BuiltInId::texture2DProj_SamplerExternalOES1_Float4,
    BuiltInName::texture2DProj,
    TExtension::UNDEFINED,
    BuiltInParameters::p00M30B00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture2DRect_00O10B(
    BuiltInId::texture2DRect_Sampler2DRect1_Float2,
    BuiltInName::texture2DRect,
    TExtension::ARB_texture_rectangle,
    BuiltInParameters::p00O10B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture2DRectProj_00O20B(
    BuiltInId::texture2DRectProj_Sampler2DRect1_Float3,
    BuiltInName::texture2DRectProj,
    TExtension::ARB_texture_rectangle,
    BuiltInParameters::p00O20B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture2DRectProj_00O30B(
    BuiltInId::texture2DRectProj_Sampler2DRect1_Float4,
    BuiltInName::texture2DRectProj,
    TExtension::ARB_texture_rectangle,
    BuiltInParameters::p00O30B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture_00O10B(BuiltInId::texture_Sampler2DRect1_Float2,
                                         BuiltInName::texture,
                                         TExtension::ARB_texture_rectangle,
                                         BuiltInParameters::p00O10B,
                                         2,
                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                         EOpCallBuiltInFunction,
                                         false);
constexpr const TFunction textureProj_00O20B(
    BuiltInId::textureProj_Sampler2DRect1_Float3,
    BuiltInName::textureProj,
    TExtension::ARB_texture_rectangle,
    BuiltInParameters::p00O20B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProj_00O30B(
    BuiltInId::textureProj_Sampler2DRect1_Float4,
    BuiltInName::textureProj,
    TExtension::ARB_texture_rectangle,
    BuiltInParameters::p00O30B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture2DGradEXT_00I10B10B10B(
    BuiltInId::texture2DGradEXT_Sampler2D1_Float2_Float2_Float2,
    BuiltInName::texture2DGradEXT,
    TExtension::EXT_shader_texture_lod,
    BuiltInParameters::p00I10B10B10B10D,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture2DProjGradEXT_00I20B10B10B(
    BuiltInId::texture2DProjGradEXT_Sampler2D1_Float3_Float2_Float2,
    BuiltInName::texture2DProjGradEXT,
    TExtension::EXT_shader_texture_lod,
    BuiltInParameters::p00I20B10B10B10D,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture2DProjGradEXT_00I30B10B10B(
    BuiltInId::texture2DProjGradEXT_Sampler2D1_Float4_Float2_Float2,
    BuiltInName::texture2DProjGradEXT,
    TExtension::EXT_shader_texture_lod,
    BuiltInParameters::p00I30B10B10B10D,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureCubeGradEXT_00K20B20B20B(
    BuiltInId::textureCubeGradEXT_SamplerCube1_Float3_Float3_Float3,
    BuiltInName::textureCubeGradEXT,
    TExtension::EXT_shader_texture_lod,
    BuiltInParameters::p00K20B20B20B,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture2D_00I10B00B(
    BuiltInId::texture2D_Sampler2D1_Float2_Float1,
    BuiltInName::texture2D,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I10B00B10D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture2DProj_00I20B00B(
    BuiltInId::texture2DProj_Sampler2D1_Float3_Float1,
    BuiltInName::texture2DProj,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I20B00B10D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture2DProj_00I30B00B(
    BuiltInId::texture2DProj_Sampler2D1_Float4_Float1,
    BuiltInName::texture2DProj,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I30B00B10D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureCube_00K20B00B(
    BuiltInId::textureCube_SamplerCube1_Float3_Float1,
    BuiltInName::textureCube,
    TExtension::UNDEFINED,
    BuiltInParameters::p00K20B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction dFdxExt_00B(BuiltInId::dFdxExt_Float1,
                                      BuiltInName::dFdxExt,
                                      TExtension::OES_standard_derivatives,
                                      BuiltInParameters::p00B30B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                      EOpDFdx,
                                      false);
constexpr const TFunction dFdxExt_10B(BuiltInId::dFdxExt_Float2,
                                      BuiltInName::dFdxExt,
                                      TExtension::OES_standard_derivatives,
                                      BuiltInParameters::p10B20B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                      EOpDFdx,
                                      false);
constexpr const TFunction dFdxExt_20B(BuiltInId::dFdxExt_Float3,
                                      BuiltInName::dFdxExt,
                                      TExtension::OES_standard_derivatives,
                                      BuiltInParameters::p20B00H,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                      EOpDFdx,
                                      false);
constexpr const TFunction dFdxExt_30B(BuiltInId::dFdxExt_Float4,
                                      BuiltInName::dFdxExt,
                                      TExtension::OES_standard_derivatives,
                                      BuiltInParameters::p30B00B00B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                      EOpDFdx,
                                      false);
constexpr const TFunction dFdyExt_00B(BuiltInId::dFdyExt_Float1,
                                      BuiltInName::dFdyExt,
                                      TExtension::OES_standard_derivatives,
                                      BuiltInParameters::p00B30B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                      EOpDFdy,
                                      false);
constexpr const TFunction dFdyExt_10B(BuiltInId::dFdyExt_Float2,
                                      BuiltInName::dFdyExt,
                                      TExtension::OES_standard_derivatives,
                                      BuiltInParameters::p10B20B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                      EOpDFdy,
                                      false);
constexpr const TFunction dFdyExt_20B(BuiltInId::dFdyExt_Float3,
                                      BuiltInName::dFdyExt,
                                      TExtension::OES_standard_derivatives,
                                      BuiltInParameters::p20B00H,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                      EOpDFdy,
                                      false);
constexpr const TFunction dFdyExt_30B(BuiltInId::dFdyExt_Float4,
                                      BuiltInName::dFdyExt,
                                      TExtension::OES_standard_derivatives,
                                      BuiltInParameters::p30B00B00B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                      EOpDFdy,
                                      false);
constexpr const TFunction fwidthExt_00B(BuiltInId::fwidthExt_Float1,
                                        BuiltInName::fwidthExt,
                                        TExtension::OES_standard_derivatives,
                                        BuiltInParameters::p00B30B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                        EOpFwidth,
                                        false);
constexpr const TFunction fwidthExt_10B(BuiltInId::fwidthExt_Float2,
                                        BuiltInName::fwidthExt,
                                        TExtension::OES_standard_derivatives,
                                        BuiltInParameters::p10B20B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpFwidth,
                                        false);
constexpr const TFunction fwidthExt_20B(BuiltInId::fwidthExt_Float3,
                                        BuiltInName::fwidthExt,
                                        TExtension::OES_standard_derivatives,
                                        BuiltInParameters::p20B00H,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpFwidth,
                                        false);
constexpr const TFunction fwidthExt_30B(BuiltInId::fwidthExt_Float4,
                                        BuiltInName::fwidthExt,
                                        TExtension::OES_standard_derivatives,
                                        BuiltInParameters::p30B00B00B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                        EOpFwidth,
                                        false);
constexpr const TFunction texture2DLodEXT_00I10B00B(
    BuiltInId::texture2DLodEXT_Sampler2D1_Float2_Float1,
    BuiltInName::texture2DLodEXT,
    TExtension::EXT_shader_texture_lod,
    BuiltInParameters::p00I10B00B10D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture2DProjLodEXT_00I20B00B(
    BuiltInId::texture2DProjLodEXT_Sampler2D1_Float3_Float1,
    BuiltInName::texture2DProjLodEXT,
    TExtension::EXT_shader_texture_lod,
    BuiltInParameters::p00I20B00B10D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture2DProjLodEXT_00I30B00B(
    BuiltInId::texture2DProjLodEXT_Sampler2D1_Float4_Float1,
    BuiltInName::texture2DProjLodEXT,
    TExtension::EXT_shader_texture_lod,
    BuiltInParameters::p00I30B00B10D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureCubeLodEXT_00K20B00B(
    BuiltInId::textureCubeLodEXT_SamplerCube1_Float3_Float1,
    BuiltInName::textureCubeLodEXT,
    TExtension::EXT_shader_texture_lod,
    BuiltInParameters::p00K20B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture3D_00J20B(
    BuiltInId::texture3D_Sampler3D1_Float3,
    BuiltInName::texture3D,
    TExtension::OES_texture_3D,
    BuiltInParameters::p00J20B20D00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture3DProj_00J30B(
    BuiltInId::texture3DProj_Sampler3D1_Float4,
    BuiltInName::texture3DProj,
    TExtension::OES_texture_3D,
    BuiltInParameters::p00J30B20B20B20D,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture3D_00J20B00B(
    BuiltInId::texture3D_Sampler3D1_Float3_Float1,
    BuiltInName::texture3D,
    TExtension::OES_texture_3D,
    BuiltInParameters::p00J20B00B20D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture3DProj_00J30B00B(
    BuiltInId::texture3DProj_Sampler3D1_Float4_Float1,
    BuiltInName::texture3DProj,
    TExtension::OES_texture_3D,
    BuiltInParameters::p00J30B00B20D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture3DLod_00J20B00B(
    BuiltInId::texture3DLod_Sampler3D1_Float3_Float1,
    BuiltInName::texture3DLod,
    TExtension::OES_texture_3D,
    BuiltInParameters::p00J20B00B20D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture3DProjLod_00J30B00B(
    BuiltInId::texture3DProjLod_Sampler3D1_Float4_Float1,
    BuiltInName::texture3DProjLod,
    TExtension::OES_texture_3D,
    BuiltInParameters::p00J30B00B20D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture2DLod_00I10B00B(
    BuiltInId::texture2DLod_Sampler2D1_Float2_Float1,
    BuiltInName::texture2DLod,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I10B00B10D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture2DProjLod_00I20B00B(
    BuiltInId::texture2DProjLod_Sampler2D1_Float3_Float1,
    BuiltInName::texture2DProjLod,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I20B00B10D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture2DProjLod_00I30B00B(
    BuiltInId::texture2DProjLod_Sampler2D1_Float4_Float1,
    BuiltInName::texture2DProjLod,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I30B00B10D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureCubeLod_00K20B00B(
    BuiltInId::textureCubeLod_SamplerCube1_Float3_Float1,
    BuiltInName::textureCubeLod,
    TExtension::UNDEFINED,
    BuiltInParameters::p00K20B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture_00I10B(BuiltInId::texture_Sampler2D1_Float2,
                                         BuiltInName::texture,
                                         TExtension::UNDEFINED,
                                         BuiltInParameters::p00I10B00D,
                                         2,
                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                         EOpCallBuiltInFunction,
                                         false);
constexpr const TFunction texture_00R10B(BuiltInId::texture_ISampler2D1_Float2,
                                         BuiltInName::texture,
                                         TExtension::UNDEFINED,
                                         BuiltInParameters::p00R10B00B10D,
                                         2,
                                         StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                         EOpCallBuiltInFunction,
                                         false);
constexpr const TFunction texture_00X10B(BuiltInId::texture_USampler2D1_Float2,
                                         BuiltInName::texture,
                                         TExtension::UNDEFINED,
                                         BuiltInParameters::p00X10B10B10B10D,
                                         2,
                                         StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                         EOpCallBuiltInFunction,
                                         false);
constexpr const TFunction texture_00J20B(BuiltInId::texture_Sampler3D1_Float3,
                                         BuiltInName::texture,
                                         TExtension::UNDEFINED,
                                         BuiltInParameters::p00J20B20D00B,
                                         2,
                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                         EOpCallBuiltInFunction,
                                         false);
constexpr const TFunction texture_00S20B(BuiltInId::texture_ISampler3D1_Float3,
                                         BuiltInName::texture,
                                         TExtension::UNDEFINED,
                                         BuiltInParameters::p00S20B20D00B,
                                         2,
                                         StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                         EOpCallBuiltInFunction,
                                         false);
constexpr const TFunction texture_00Y20B(BuiltInId::texture_USampler3D1_Float3,
                                         BuiltInName::texture,
                                         TExtension::UNDEFINED,
                                         BuiltInParameters::p00Y20B20B20B20D,
                                         2,
                                         StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                         EOpCallBuiltInFunction,
                                         false);
constexpr const TFunction texture_00K20B(BuiltInId::texture_SamplerCube1_Float3,
                                         BuiltInName::texture,
                                         TExtension::UNDEFINED,
                                         BuiltInParameters::p00K20B20B20B,
                                         2,
                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                         EOpCallBuiltInFunction,
                                         false);
constexpr const TFunction texture_00T20B(BuiltInId::texture_ISamplerCube1_Float3,
                                         BuiltInName::texture,
                                         TExtension::UNDEFINED,
                                         BuiltInParameters::p00T20B00D,
                                         2,
                                         StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                         EOpCallBuiltInFunction,
                                         false);
constexpr const TFunction texture_00Z20B(BuiltInId::texture_USamplerCube1_Float3,
                                         BuiltInName::texture,
                                         TExtension::UNDEFINED,
                                         BuiltInParameters::p00Z20B00D,
                                         2,
                                         StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                         EOpCallBuiltInFunction,
                                         false);
constexpr const TFunction texture_00L20B(BuiltInId::texture_Sampler2DArray1_Float3,
                                         BuiltInName::texture,
                                         TExtension::UNDEFINED,
                                         BuiltInParameters::p00L20B10D00D,
                                         2,
                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                         EOpCallBuiltInFunction,
                                         false);
constexpr const TFunction texture_00U20B(BuiltInId::texture_ISampler2DArray1_Float3,
                                         BuiltInName::texture,
                                         TExtension::UNDEFINED,
                                         BuiltInParameters::p00U20B70D00D,
                                         2,
                                         StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                         EOpCallBuiltInFunction,
                                         false);
constexpr const TFunction texture_00a20B(BuiltInId::texture_USampler2DArray1_Float3,
                                         BuiltInName::texture,
                                         TExtension::UNDEFINED,
                                         BuiltInParameters::p00a20B10B10B10D,
                                         2,
                                         StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                         EOpCallBuiltInFunction,
                                         false);
constexpr const TFunction texture_00d20B(BuiltInId::texture_Sampler2DShadow1_Float3,
                                         BuiltInName::texture,
                                         TExtension::UNDEFINED,
                                         BuiltInParameters::p00d20B00B10D,
                                         2,
                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                         EOpCallBuiltInFunction,
                                         false);
constexpr const TFunction texture_00e30B(BuiltInId::texture_SamplerCubeShadow1_Float4,
                                         BuiltInName::texture,
                                         TExtension::UNDEFINED,
                                         BuiltInParameters::p00e30B00B,
                                         2,
                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                         EOpCallBuiltInFunction,
                                         false);
constexpr const TFunction texture_00f30B(BuiltInId::texture_Sampler2DArrayShadow1_Float4,
                                         BuiltInName::texture,
                                         TExtension::UNDEFINED,
                                         BuiltInParameters::p00f30B10B10B10D,
                                         2,
                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                         EOpCallBuiltInFunction,
                                         false);
constexpr const TFunction textureProj_00I20B(
    BuiltInId::textureProj_Sampler2D1_Float3,
    BuiltInName::textureProj,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I20B10B10B10D,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProj_00R20B(
    BuiltInId::textureProj_ISampler2D1_Float3,
    BuiltInName::textureProj,
    TExtension::UNDEFINED,
    BuiltInParameters::p00R20B00B10D,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProj_00X20B(
    BuiltInId::textureProj_USampler2D1_Float3,
    BuiltInName::textureProj,
    TExtension::UNDEFINED,
    BuiltInParameters::p00X20B00B10D,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProj_00I30B(
    BuiltInId::textureProj_Sampler2D1_Float4,
    BuiltInName::textureProj,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I30B10D00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProj_00R30B(
    BuiltInId::textureProj_ISampler2D1_Float4,
    BuiltInName::textureProj,
    TExtension::UNDEFINED,
    BuiltInParameters::p00R30B10D00B,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProj_00X30B(
    BuiltInId::textureProj_USampler2D1_Float4,
    BuiltInName::textureProj,
    TExtension::UNDEFINED,
    BuiltInParameters::p00X30B10D00B,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProj_00J30B(
    BuiltInId::textureProj_Sampler3D1_Float4,
    BuiltInName::textureProj,
    TExtension::UNDEFINED,
    BuiltInParameters::p00J30B20B20B20D,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProj_00S30B(
    BuiltInId::textureProj_ISampler3D1_Float4,
    BuiltInName::textureProj,
    TExtension::UNDEFINED,
    BuiltInParameters::p00S30B20D00B,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProj_00Y30B(
    BuiltInId::textureProj_USampler3D1_Float4,
    BuiltInName::textureProj,
    TExtension::UNDEFINED,
    BuiltInParameters::p00Y30B20B20B20D,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProj_00d30B(
    BuiltInId::textureProj_Sampler2DShadow1_Float4,
    BuiltInName::textureProj,
    TExtension::UNDEFINED,
    BuiltInParameters::p00d30B00B10D,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureLod_00I10B00B(
    BuiltInId::textureLod_Sampler2D1_Float2_Float1,
    BuiltInName::textureLod,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I10B00B10D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureLod_00R10B00B(
    BuiltInId::textureLod_ISampler2D1_Float2_Float1,
    BuiltInName::textureLod,
    TExtension::UNDEFINED,
    BuiltInParameters::p00R10B00B10D,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureLod_00X10B00B(
    BuiltInId::textureLod_USampler2D1_Float2_Float1,
    BuiltInName::textureLod,
    TExtension::UNDEFINED,
    BuiltInParameters::p00X10B00B10D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureLod_00J20B00B(
    BuiltInId::textureLod_Sampler3D1_Float3_Float1,
    BuiltInName::textureLod,
    TExtension::UNDEFINED,
    BuiltInParameters::p00J20B00B20D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureLod_00S20B00B(
    BuiltInId::textureLod_ISampler3D1_Float3_Float1,
    BuiltInName::textureLod,
    TExtension::UNDEFINED,
    BuiltInParameters::p00S20B00B20D,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureLod_00Y20B00B(
    BuiltInId::textureLod_USampler3D1_Float3_Float1,
    BuiltInName::textureLod,
    TExtension::UNDEFINED,
    BuiltInParameters::p00Y20B00B20D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureLod_00K20B00B(
    BuiltInId::textureLod_SamplerCube1_Float3_Float1,
    BuiltInName::textureLod,
    TExtension::UNDEFINED,
    BuiltInParameters::p00K20B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureLod_00T20B00B(
    BuiltInId::textureLod_ISamplerCube1_Float3_Float1,
    BuiltInName::textureLod,
    TExtension::UNDEFINED,
    BuiltInParameters::p00T20B00B,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureLod_00Z20B00B(
    BuiltInId::textureLod_USamplerCube1_Float3_Float1,
    BuiltInName::textureLod,
    TExtension::UNDEFINED,
    BuiltInParameters::p00Z20B00B,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureLod_00L20B00B(
    BuiltInId::textureLod_Sampler2DArray1_Float3_Float1,
    BuiltInName::textureLod,
    TExtension::UNDEFINED,
    BuiltInParameters::p00L20B00B10D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureLod_00U20B00B(
    BuiltInId::textureLod_ISampler2DArray1_Float3_Float1,
    BuiltInName::textureLod,
    TExtension::UNDEFINED,
    BuiltInParameters::p00U20B00B10D,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureLod_00a20B00B(
    BuiltInId::textureLod_USampler2DArray1_Float3_Float1,
    BuiltInName::textureLod,
    TExtension::UNDEFINED,
    BuiltInParameters::p00a20B00B10D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureLod_00d20B00B(
    BuiltInId::textureLod_Sampler2DShadow1_Float3_Float1,
    BuiltInName::textureLod,
    TExtension::UNDEFINED,
    BuiltInParameters::p00d20B00B10D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureSize_00I00D(
    BuiltInId::textureSize_Sampler2D1_Int1,
    BuiltInName::textureSize,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I00D,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureSize_00R00D(
    BuiltInId::textureSize_ISampler2D1_Int1,
    BuiltInName::textureSize,
    TExtension::UNDEFINED,
    BuiltInParameters::p00R00D,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureSize_00X00D(
    BuiltInId::textureSize_USampler2D1_Int1,
    BuiltInName::textureSize,
    TExtension::UNDEFINED,
    BuiltInParameters::p00X00D,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureSize_00J00D(
    BuiltInId::textureSize_Sampler3D1_Int1,
    BuiltInName::textureSize,
    TExtension::UNDEFINED,
    BuiltInParameters::p00J00D,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureSize_00S00D(
    BuiltInId::textureSize_ISampler3D1_Int1,
    BuiltInName::textureSize,
    TExtension::UNDEFINED,
    BuiltInParameters::p00S00D,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureSize_00Y00D(
    BuiltInId::textureSize_USampler3D1_Int1,
    BuiltInName::textureSize,
    TExtension::UNDEFINED,
    BuiltInParameters::p00Y00D,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureSize_00K00D(
    BuiltInId::textureSize_SamplerCube1_Int1,
    BuiltInName::textureSize,
    TExtension::UNDEFINED,
    BuiltInParameters::p00K00D,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureSize_00T00D(
    BuiltInId::textureSize_ISamplerCube1_Int1,
    BuiltInName::textureSize,
    TExtension::UNDEFINED,
    BuiltInParameters::p00T00D,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureSize_00Z00D(
    BuiltInId::textureSize_USamplerCube1_Int1,
    BuiltInName::textureSize,
    TExtension::UNDEFINED,
    BuiltInParameters::p00Z00D,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureSize_00L00D(
    BuiltInId::textureSize_Sampler2DArray1_Int1,
    BuiltInName::textureSize,
    TExtension::UNDEFINED,
    BuiltInParameters::p00L00D,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureSize_00U00D(
    BuiltInId::textureSize_ISampler2DArray1_Int1,
    BuiltInName::textureSize,
    TExtension::UNDEFINED,
    BuiltInParameters::p00U00D,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureSize_00a00D(
    BuiltInId::textureSize_USampler2DArray1_Int1,
    BuiltInName::textureSize,
    TExtension::UNDEFINED,
    BuiltInParameters::p00a00D,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureSize_00d00D(
    BuiltInId::textureSize_Sampler2DShadow1_Int1,
    BuiltInName::textureSize,
    TExtension::UNDEFINED,
    BuiltInParameters::p00d00D,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureSize_00e00D(
    BuiltInId::textureSize_SamplerCubeShadow1_Int1,
    BuiltInName::textureSize,
    TExtension::UNDEFINED,
    BuiltInParameters::p00e00D,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureSize_00f00D(
    BuiltInId::textureSize_Sampler2DArrayShadow1_Int1,
    BuiltInName::textureSize,
    TExtension::UNDEFINED,
    BuiltInParameters::p00f00D,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjLod_00I20B00B(
    BuiltInId::textureProjLod_Sampler2D1_Float3_Float1,
    BuiltInName::textureProjLod,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I20B00B10D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjLod_00R20B00B(
    BuiltInId::textureProjLod_ISampler2D1_Float3_Float1,
    BuiltInName::textureProjLod,
    TExtension::UNDEFINED,
    BuiltInParameters::p00R20B00B10D,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjLod_00X20B00B(
    BuiltInId::textureProjLod_USampler2D1_Float3_Float1,
    BuiltInName::textureProjLod,
    TExtension::UNDEFINED,
    BuiltInParameters::p00X20B00B10D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjLod_00I30B00B(
    BuiltInId::textureProjLod_Sampler2D1_Float4_Float1,
    BuiltInName::textureProjLod,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I30B00B10D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjLod_00R30B00B(
    BuiltInId::textureProjLod_ISampler2D1_Float4_Float1,
    BuiltInName::textureProjLod,
    TExtension::UNDEFINED,
    BuiltInParameters::p00R30B00B10D,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjLod_00X30B00B(
    BuiltInId::textureProjLod_USampler2D1_Float4_Float1,
    BuiltInName::textureProjLod,
    TExtension::UNDEFINED,
    BuiltInParameters::p00X30B00B10D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjLod_00J30B00B(
    BuiltInId::textureProjLod_Sampler3D1_Float4_Float1,
    BuiltInName::textureProjLod,
    TExtension::UNDEFINED,
    BuiltInParameters::p00J30B00B20D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjLod_00S30B00B(
    BuiltInId::textureProjLod_ISampler3D1_Float4_Float1,
    BuiltInName::textureProjLod,
    TExtension::UNDEFINED,
    BuiltInParameters::p00S30B00B20D,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjLod_00Y30B00B(
    BuiltInId::textureProjLod_USampler3D1_Float4_Float1,
    BuiltInName::textureProjLod,
    TExtension::UNDEFINED,
    BuiltInParameters::p00Y30B00B20D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjLod_00d30B00B(
    BuiltInId::textureProjLod_Sampler2DShadow1_Float4_Float1,
    BuiltInName::textureProjLod,
    TExtension::UNDEFINED,
    BuiltInParameters::p00d30B00B10D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texelFetch_00I10D00D(
    BuiltInId::texelFetch_Sampler2D1_Int2_Int1,
    BuiltInName::texelFetch,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I10D00D10D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texelFetch_00R10D00D(
    BuiltInId::texelFetch_ISampler2D1_Int2_Int1,
    BuiltInName::texelFetch,
    TExtension::UNDEFINED,
    BuiltInParameters::p00R10D00D10D,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texelFetch_00X10D00D(
    BuiltInId::texelFetch_USampler2D1_Int2_Int1,
    BuiltInName::texelFetch,
    TExtension::UNDEFINED,
    BuiltInParameters::p00X10D00D10D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texelFetch_00J20D00D(
    BuiltInId::texelFetch_Sampler3D1_Int3_Int1,
    BuiltInName::texelFetch,
    TExtension::UNDEFINED,
    BuiltInParameters::p00J20D00D20D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texelFetch_00S20D00D(
    BuiltInId::texelFetch_ISampler3D1_Int3_Int1,
    BuiltInName::texelFetch,
    TExtension::UNDEFINED,
    BuiltInParameters::p00S20D00D20D,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texelFetch_00Y20D00D(
    BuiltInId::texelFetch_USampler3D1_Int3_Int1,
    BuiltInName::texelFetch,
    TExtension::UNDEFINED,
    BuiltInParameters::p00Y20D00D20D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texelFetch_00L20D00D(
    BuiltInId::texelFetch_Sampler2DArray1_Int3_Int1,
    BuiltInName::texelFetch,
    TExtension::UNDEFINED,
    BuiltInParameters::p00L20D00D10D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texelFetch_00U20D00D(
    BuiltInId::texelFetch_ISampler2DArray1_Int3_Int1,
    BuiltInName::texelFetch,
    TExtension::UNDEFINED,
    BuiltInParameters::p00U20D00D10D,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texelFetch_00a20D00D(
    BuiltInId::texelFetch_USampler2DArray1_Int3_Int1,
    BuiltInName::texelFetch,
    TExtension::UNDEFINED,
    BuiltInParameters::p00a20D00D10D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGrad_00I10B10B10B(
    BuiltInId::textureGrad_Sampler2D1_Float2_Float2_Float2,
    BuiltInName::textureGrad,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I10B10B10B10D,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGrad_00R10B10B10B(
    BuiltInId::textureGrad_ISampler2D1_Float2_Float2_Float2,
    BuiltInName::textureGrad,
    TExtension::UNDEFINED,
    BuiltInParameters::p00R10B10B10B10D,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGrad_00X10B10B10B(
    BuiltInId::textureGrad_USampler2D1_Float2_Float2_Float2,
    BuiltInName::textureGrad,
    TExtension::UNDEFINED,
    BuiltInParameters::p00X10B10B10B10D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGrad_00J20B20B20B(
    BuiltInId::textureGrad_Sampler3D1_Float3_Float3_Float3,
    BuiltInName::textureGrad,
    TExtension::UNDEFINED,
    BuiltInParameters::p00J20B20B20B20D,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGrad_00S20B20B20B(
    BuiltInId::textureGrad_ISampler3D1_Float3_Float3_Float3,
    BuiltInName::textureGrad,
    TExtension::UNDEFINED,
    BuiltInParameters::p00S20B20B20B20D,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGrad_00Y20B20B20B(
    BuiltInId::textureGrad_USampler3D1_Float3_Float3_Float3,
    BuiltInName::textureGrad,
    TExtension::UNDEFINED,
    BuiltInParameters::p00Y20B20B20B20D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGrad_00K20B20B20B(
    BuiltInId::textureGrad_SamplerCube1_Float3_Float3_Float3,
    BuiltInName::textureGrad,
    TExtension::UNDEFINED,
    BuiltInParameters::p00K20B20B20B,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGrad_00T20B20B20B(
    BuiltInId::textureGrad_ISamplerCube1_Float3_Float3_Float3,
    BuiltInName::textureGrad,
    TExtension::UNDEFINED,
    BuiltInParameters::p00T20B20B20B,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGrad_00Z20B20B20B(
    BuiltInId::textureGrad_USamplerCube1_Float3_Float3_Float3,
    BuiltInName::textureGrad,
    TExtension::UNDEFINED,
    BuiltInParameters::p00Z20B20B20B,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGrad_00d20B10B10B(
    BuiltInId::textureGrad_Sampler2DShadow1_Float3_Float2_Float2,
    BuiltInName::textureGrad,
    TExtension::UNDEFINED,
    BuiltInParameters::p00d20B10B10B10D,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGrad_00e30B20B20B(
    BuiltInId::textureGrad_SamplerCubeShadow1_Float4_Float3_Float3,
    BuiltInName::textureGrad,
    TExtension::UNDEFINED,
    BuiltInParameters::p00e30B20B20B,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGrad_00L20B10B10B(
    BuiltInId::textureGrad_Sampler2DArray1_Float3_Float2_Float2,
    BuiltInName::textureGrad,
    TExtension::UNDEFINED,
    BuiltInParameters::p00L20B10B10B10D,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGrad_00U20B10B10B(
    BuiltInId::textureGrad_ISampler2DArray1_Float3_Float2_Float2,
    BuiltInName::textureGrad,
    TExtension::UNDEFINED,
    BuiltInParameters::p00U20B10B10B10D,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGrad_00a20B10B10B(
    BuiltInId::textureGrad_USampler2DArray1_Float3_Float2_Float2,
    BuiltInName::textureGrad,
    TExtension::UNDEFINED,
    BuiltInParameters::p00a20B10B10B10D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGrad_00f30B10B10B(
    BuiltInId::textureGrad_Sampler2DArrayShadow1_Float4_Float2_Float2,
    BuiltInName::textureGrad,
    TExtension::UNDEFINED,
    BuiltInParameters::p00f30B10B10B10D,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjGrad_00I20B10B10B(
    BuiltInId::textureProjGrad_Sampler2D1_Float3_Float2_Float2,
    BuiltInName::textureProjGrad,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I20B10B10B10D,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjGrad_00R20B10B10B(
    BuiltInId::textureProjGrad_ISampler2D1_Float3_Float2_Float2,
    BuiltInName::textureProjGrad,
    TExtension::UNDEFINED,
    BuiltInParameters::p00R20B10B10B10D,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjGrad_00X20B10B10B(
    BuiltInId::textureProjGrad_USampler2D1_Float3_Float2_Float2,
    BuiltInName::textureProjGrad,
    TExtension::UNDEFINED,
    BuiltInParameters::p00X20B10B10B10D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjGrad_00I30B10B10B(
    BuiltInId::textureProjGrad_Sampler2D1_Float4_Float2_Float2,
    BuiltInName::textureProjGrad,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I30B10B10B10D,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjGrad_00R30B10B10B(
    BuiltInId::textureProjGrad_ISampler2D1_Float4_Float2_Float2,
    BuiltInName::textureProjGrad,
    TExtension::UNDEFINED,
    BuiltInParameters::p00R30B10B10B10D,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjGrad_00X30B10B10B(
    BuiltInId::textureProjGrad_USampler2D1_Float4_Float2_Float2,
    BuiltInName::textureProjGrad,
    TExtension::UNDEFINED,
    BuiltInParameters::p00X30B10B10B10D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjGrad_00J30B20B20B(
    BuiltInId::textureProjGrad_Sampler3D1_Float4_Float3_Float3,
    BuiltInName::textureProjGrad,
    TExtension::UNDEFINED,
    BuiltInParameters::p00J30B20B20B20D,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjGrad_00S30B20B20B(
    BuiltInId::textureProjGrad_ISampler3D1_Float4_Float3_Float3,
    BuiltInName::textureProjGrad,
    TExtension::UNDEFINED,
    BuiltInParameters::p00S30B20B20B20D,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjGrad_00Y30B20B20B(
    BuiltInId::textureProjGrad_USampler3D1_Float4_Float3_Float3,
    BuiltInName::textureProjGrad,
    TExtension::UNDEFINED,
    BuiltInParameters::p00Y30B20B20B20D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjGrad_00d30B10B10B(
    BuiltInId::textureProjGrad_Sampler2DShadow1_Float4_Float2_Float2,
    BuiltInName::textureProjGrad,
    TExtension::UNDEFINED,
    BuiltInParameters::p00d30B10B10B10D,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureSize_00P(BuiltInId::textureSize_Sampler2DMS1,
                                          BuiltInName::textureSize,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p00P10D00D,
                                          1,
                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                          EOpCallBuiltInFunction,
                                          false);
constexpr const TFunction textureSize_00V(BuiltInId::textureSize_ISampler2DMS1,
                                          BuiltInName::textureSize,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p00V10D00D,
                                          1,
                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                          EOpCallBuiltInFunction,
                                          false);
constexpr const TFunction textureSize_00b(BuiltInId::textureSize_USampler2DMS1,
                                          BuiltInName::textureSize,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p00b10D00D,
                                          1,
                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                          EOpCallBuiltInFunction,
                                          false);
constexpr const TFunction textureSizeExt_00P(
    BuiltInId::textureSizeExt_Sampler2DMS1,
    BuiltInName::textureSizeExt,
    TExtension::ANGLE_texture_multisample,
    BuiltInParameters::p00P10D00D,
    1,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureSizeExt_00V(
    BuiltInId::textureSizeExt_ISampler2DMS1,
    BuiltInName::textureSizeExt,
    TExtension::ANGLE_texture_multisample,
    BuiltInParameters::p00V10D00D,
    1,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureSizeExt_00b(
    BuiltInId::textureSizeExt_USampler2DMS1,
    BuiltInName::textureSizeExt,
    TExtension::ANGLE_texture_multisample,
    BuiltInParameters::p00b10D00D,
    1,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureSizeExt_00Q(
    BuiltInId::textureSizeExt_Sampler2DMSArray1,
    BuiltInName::textureSizeExt,
    TExtension::OES_texture_storage_multisample_2d_array,
    BuiltInParameters::p00Q20D00D,
    1,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureSizeExt_00W(
    BuiltInId::textureSizeExt_ISampler2DMSArray1,
    BuiltInName::textureSizeExt,
    TExtension::OES_texture_storage_multisample_2d_array,
    BuiltInParameters::p00W20D00D,
    1,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureSizeExt_00c(
    BuiltInId::textureSizeExt_USampler2DMSArray1,
    BuiltInName::textureSizeExt,
    TExtension::OES_texture_storage_multisample_2d_array,
    BuiltInParameters::p00c20D00D,
    1,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texelFetch_00P10D00D(
    BuiltInId::texelFetch_Sampler2DMS1_Int2_Int1,
    BuiltInName::texelFetch,
    TExtension::UNDEFINED,
    BuiltInParameters::p00P10D00D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texelFetch_00V10D00D(
    BuiltInId::texelFetch_ISampler2DMS1_Int2_Int1,
    BuiltInName::texelFetch,
    TExtension::UNDEFINED,
    BuiltInParameters::p00V10D00D,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texelFetch_00b10D00D(
    BuiltInId::texelFetch_USampler2DMS1_Int2_Int1,
    BuiltInName::texelFetch,
    TExtension::UNDEFINED,
    BuiltInParameters::p00b10D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texelFetchExt_00P10D00D(
    BuiltInId::texelFetchExt_Sampler2DMS1_Int2_Int1,
    BuiltInName::texelFetchExt,
    TExtension::ANGLE_texture_multisample,
    BuiltInParameters::p00P10D00D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texelFetchExt_00V10D00D(
    BuiltInId::texelFetchExt_ISampler2DMS1_Int2_Int1,
    BuiltInName::texelFetchExt,
    TExtension::ANGLE_texture_multisample,
    BuiltInParameters::p00V10D00D,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texelFetchExt_00b10D00D(
    BuiltInId::texelFetchExt_USampler2DMS1_Int2_Int1,
    BuiltInName::texelFetchExt,
    TExtension::ANGLE_texture_multisample,
    BuiltInParameters::p00b10D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texelFetchExt_00Q20D00D(
    BuiltInId::texelFetchExt_Sampler2DMSArray1_Int3_Int1,
    BuiltInName::texelFetchExt,
    TExtension::OES_texture_storage_multisample_2d_array,
    BuiltInParameters::p00Q20D00D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texelFetchExt_00W20D00D(
    BuiltInId::texelFetchExt_ISampler2DMSArray1_Int3_Int1,
    BuiltInName::texelFetchExt,
    TExtension::OES_texture_storage_multisample_2d_array,
    BuiltInParameters::p00W20D00D,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texelFetchExt_00c20D00D(
    BuiltInId::texelFetchExt_USampler2DMSArray1_Int3_Int1,
    BuiltInName::texelFetchExt,
    TExtension::OES_texture_storage_multisample_2d_array,
    BuiltInParameters::p00c20D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture_00I10B00B(
    BuiltInId::texture_Sampler2D1_Float2_Float1,
    BuiltInName::texture,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I10B00B10D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture_00R10B00B(
    BuiltInId::texture_ISampler2D1_Float2_Float1,
    BuiltInName::texture,
    TExtension::UNDEFINED,
    BuiltInParameters::p00R10B00B10D,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture_00X10B00B(
    BuiltInId::texture_USampler2D1_Float2_Float1,
    BuiltInName::texture,
    TExtension::UNDEFINED,
    BuiltInParameters::p00X10B00B10D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture_00J20B00B(
    BuiltInId::texture_Sampler3D1_Float3_Float1,
    BuiltInName::texture,
    TExtension::UNDEFINED,
    BuiltInParameters::p00J20B00B20D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture_00S20B00B(
    BuiltInId::texture_ISampler3D1_Float3_Float1,
    BuiltInName::texture,
    TExtension::UNDEFINED,
    BuiltInParameters::p00S20B00B20D,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture_00Y20B00B(
    BuiltInId::texture_USampler3D1_Float3_Float1,
    BuiltInName::texture,
    TExtension::UNDEFINED,
    BuiltInParameters::p00Y20B00B20D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture_00K20B00B(
    BuiltInId::texture_SamplerCube1_Float3_Float1,
    BuiltInName::texture,
    TExtension::UNDEFINED,
    BuiltInParameters::p00K20B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture_00T20B00B(
    BuiltInId::texture_ISamplerCube1_Float3_Float1,
    BuiltInName::texture,
    TExtension::UNDEFINED,
    BuiltInParameters::p00T20B00B,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture_00Z20B00B(
    BuiltInId::texture_USamplerCube1_Float3_Float1,
    BuiltInName::texture,
    TExtension::UNDEFINED,
    BuiltInParameters::p00Z20B00B,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture_00L20B00B(
    BuiltInId::texture_Sampler2DArray1_Float3_Float1,
    BuiltInName::texture,
    TExtension::UNDEFINED,
    BuiltInParameters::p00L20B00B10D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture_00U20B00B(
    BuiltInId::texture_ISampler2DArray1_Float3_Float1,
    BuiltInName::texture,
    TExtension::UNDEFINED,
    BuiltInParameters::p00U20B00B10D,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture_00a20B00B(
    BuiltInId::texture_USampler2DArray1_Float3_Float1,
    BuiltInName::texture,
    TExtension::UNDEFINED,
    BuiltInParameters::p00a20B00B10D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProj_00I20B00B(
    BuiltInId::textureProj_Sampler2D1_Float3_Float1,
    BuiltInName::textureProj,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I20B00B10D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProj_00R20B00B(
    BuiltInId::textureProj_ISampler2D1_Float3_Float1,
    BuiltInName::textureProj,
    TExtension::UNDEFINED,
    BuiltInParameters::p00R20B00B10D,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProj_00X20B00B(
    BuiltInId::textureProj_USampler2D1_Float3_Float1,
    BuiltInName::textureProj,
    TExtension::UNDEFINED,
    BuiltInParameters::p00X20B00B10D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProj_00I30B00B(
    BuiltInId::textureProj_Sampler2D1_Float4_Float1,
    BuiltInName::textureProj,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I30B00B10D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProj_00R30B00B(
    BuiltInId::textureProj_ISampler2D1_Float4_Float1,
    BuiltInName::textureProj,
    TExtension::UNDEFINED,
    BuiltInParameters::p00R30B00B10D,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProj_00X30B00B(
    BuiltInId::textureProj_USampler2D1_Float4_Float1,
    BuiltInName::textureProj,
    TExtension::UNDEFINED,
    BuiltInParameters::p00X30B00B10D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProj_00J30B00B(
    BuiltInId::textureProj_Sampler3D1_Float4_Float1,
    BuiltInName::textureProj,
    TExtension::UNDEFINED,
    BuiltInParameters::p00J30B00B20D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProj_00S30B00B(
    BuiltInId::textureProj_ISampler3D1_Float4_Float1,
    BuiltInName::textureProj,
    TExtension::UNDEFINED,
    BuiltInParameters::p00S30B00B20D,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProj_00Y30B00B(
    BuiltInId::textureProj_USampler3D1_Float4_Float1,
    BuiltInName::textureProj,
    TExtension::UNDEFINED,
    BuiltInParameters::p00Y30B00B20D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture_00d20B00B(
    BuiltInId::texture_Sampler2DShadow1_Float3_Float1,
    BuiltInName::texture,
    TExtension::UNDEFINED,
    BuiltInParameters::p00d20B00B10D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture_00e30B00B(
    BuiltInId::texture_SamplerCubeShadow1_Float4_Float1,
    BuiltInName::texture,
    TExtension::UNDEFINED,
    BuiltInParameters::p00e30B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProj_00d30B00B(
    BuiltInId::textureProj_Sampler2DShadow1_Float4_Float1,
    BuiltInName::textureProj,
    TExtension::UNDEFINED,
    BuiltInParameters::p00d30B00B10D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture_00M10B00B(
    BuiltInId::texture_SamplerExternalOES1_Float2_Float1,
    BuiltInName::texture,
    TExtension::OES_EGL_image_external_essl3,
    BuiltInParameters::p00M10B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProj_00M20B00B(
    BuiltInId::textureProj_SamplerExternalOES1_Float3_Float1,
    BuiltInName::textureProj,
    TExtension::OES_EGL_image_external_essl3,
    BuiltInParameters::p00M20B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProj_00M30B00B(
    BuiltInId::textureProj_SamplerExternalOES1_Float4_Float1,
    BuiltInName::textureProj,
    TExtension::OES_EGL_image_external_essl3,
    BuiltInParameters::p00M30B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture_00N10B00B(
    BuiltInId::texture_SamplerExternal2DY2YEXT1_Float2_Float1,
    BuiltInName::texture,
    TExtension::EXT_YUV_target,
    BuiltInParameters::p00N10B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProj_00N20B00B(
    BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float3_Float1,
    BuiltInName::textureProj,
    TExtension::EXT_YUV_target,
    BuiltInParameters::p00N20B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProj_00N30B00B(
    BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float4_Float1,
    BuiltInName::textureProj,
    TExtension::EXT_YUV_target,
    BuiltInParameters::p00N30B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureOffset_00I10B10D(
    BuiltInId::textureOffset_Sampler2D1_Float2_Int2,
    BuiltInName::textureOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I10B10D00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureOffset_00R10B10D(
    BuiltInId::textureOffset_ISampler2D1_Float2_Int2,
    BuiltInName::textureOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00R10B10D00B,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureOffset_00X10B10D(
    BuiltInId::textureOffset_USampler2D1_Float2_Int2,
    BuiltInName::textureOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00X10B10D00B,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureOffset_00J20B20D(
    BuiltInId::textureOffset_Sampler3D1_Float3_Int3,
    BuiltInName::textureOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00J20B20D00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureOffset_00S20B20D(
    BuiltInId::textureOffset_ISampler3D1_Float3_Int3,
    BuiltInName::textureOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00S20B20D00B,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureOffset_00Y20B20D(
    BuiltInId::textureOffset_USampler3D1_Float3_Int3,
    BuiltInName::textureOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00Y20B20D00B,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureOffset_00d20B10D(
    BuiltInId::textureOffset_Sampler2DShadow1_Float3_Int2,
    BuiltInName::textureOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00d20B10D00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureOffset_00L20B10D(
    BuiltInId::textureOffset_Sampler2DArray1_Float3_Int2,
    BuiltInName::textureOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00L20B10D00D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureOffset_00U20B10D(
    BuiltInId::textureOffset_ISampler2DArray1_Float3_Int2,
    BuiltInName::textureOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00U20B10D00D,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureOffset_00a20B10D(
    BuiltInId::textureOffset_USampler2DArray1_Float3_Int2,
    BuiltInName::textureOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00a20B10D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjOffset_00I20B10D(
    BuiltInId::textureProjOffset_Sampler2D1_Float3_Int2,
    BuiltInName::textureProjOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I20B10D00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjOffset_00R20B10D(
    BuiltInId::textureProjOffset_ISampler2D1_Float3_Int2,
    BuiltInName::textureProjOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00R20B10D00B,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjOffset_00X20B10D(
    BuiltInId::textureProjOffset_USampler2D1_Float3_Int2,
    BuiltInName::textureProjOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00X20B10D00B,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjOffset_00I30B10D(
    BuiltInId::textureProjOffset_Sampler2D1_Float4_Int2,
    BuiltInName::textureProjOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I30B10D00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjOffset_00R30B10D(
    BuiltInId::textureProjOffset_ISampler2D1_Float4_Int2,
    BuiltInName::textureProjOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00R30B10D00B,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjOffset_00X30B10D(
    BuiltInId::textureProjOffset_USampler2D1_Float4_Int2,
    BuiltInName::textureProjOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00X30B10D00B,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjOffset_00J30B20D(
    BuiltInId::textureProjOffset_Sampler3D1_Float4_Int3,
    BuiltInName::textureProjOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00J30B20D00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjOffset_00S30B20D(
    BuiltInId::textureProjOffset_ISampler3D1_Float4_Int3,
    BuiltInName::textureProjOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00S30B20D00B,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjOffset_00Y30B20D(
    BuiltInId::textureProjOffset_USampler3D1_Float4_Int3,
    BuiltInName::textureProjOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00Y30B20D00B,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjOffset_00d30B10D(
    BuiltInId::textureProjOffset_Sampler2DShadow1_Float4_Int2,
    BuiltInName::textureProjOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00d30B10D00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureLodOffset_00I10B00B10D(
    BuiltInId::textureLodOffset_Sampler2D1_Float2_Float1_Int2,
    BuiltInName::textureLodOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I10B00B10D,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureLodOffset_00R10B00B10D(
    BuiltInId::textureLodOffset_ISampler2D1_Float2_Float1_Int2,
    BuiltInName::textureLodOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00R10B00B10D,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureLodOffset_00X10B00B10D(
    BuiltInId::textureLodOffset_USampler2D1_Float2_Float1_Int2,
    BuiltInName::textureLodOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00X10B00B10D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureLodOffset_00J20B00B20D(
    BuiltInId::textureLodOffset_Sampler3D1_Float3_Float1_Int3,
    BuiltInName::textureLodOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00J20B00B20D,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureLodOffset_00S20B00B20D(
    BuiltInId::textureLodOffset_ISampler3D1_Float3_Float1_Int3,
    BuiltInName::textureLodOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00S20B00B20D,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureLodOffset_00Y20B00B20D(
    BuiltInId::textureLodOffset_USampler3D1_Float3_Float1_Int3,
    BuiltInName::textureLodOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00Y20B00B20D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureLodOffset_00d20B00B10D(
    BuiltInId::textureLodOffset_Sampler2DShadow1_Float3_Float1_Int2,
    BuiltInName::textureLodOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00d20B00B10D,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureLodOffset_00L20B00B10D(
    BuiltInId::textureLodOffset_Sampler2DArray1_Float3_Float1_Int2,
    BuiltInName::textureLodOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00L20B00B10D,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureLodOffset_00U20B00B10D(
    BuiltInId::textureLodOffset_ISampler2DArray1_Float3_Float1_Int2,
    BuiltInName::textureLodOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00U20B00B10D,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureLodOffset_00a20B00B10D(
    BuiltInId::textureLodOffset_USampler2DArray1_Float3_Float1_Int2,
    BuiltInName::textureLodOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00a20B00B10D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjLodOffset_00I20B00B10D(
    BuiltInId::textureProjLodOffset_Sampler2D1_Float3_Float1_Int2,
    BuiltInName::textureProjLodOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I20B00B10D,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjLodOffset_00R20B00B10D(
    BuiltInId::textureProjLodOffset_ISampler2D1_Float3_Float1_Int2,
    BuiltInName::textureProjLodOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00R20B00B10D,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjLodOffset_00X20B00B10D(
    BuiltInId::textureProjLodOffset_USampler2D1_Float3_Float1_Int2,
    BuiltInName::textureProjLodOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00X20B00B10D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjLodOffset_00I30B00B10D(
    BuiltInId::textureProjLodOffset_Sampler2D1_Float4_Float1_Int2,
    BuiltInName::textureProjLodOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I30B00B10D,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjLodOffset_00R30B00B10D(
    BuiltInId::textureProjLodOffset_ISampler2D1_Float4_Float1_Int2,
    BuiltInName::textureProjLodOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00R30B00B10D,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjLodOffset_00X30B00B10D(
    BuiltInId::textureProjLodOffset_USampler2D1_Float4_Float1_Int2,
    BuiltInName::textureProjLodOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00X30B00B10D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjLodOffset_00J30B00B20D(
    BuiltInId::textureProjLodOffset_Sampler3D1_Float4_Float1_Int3,
    BuiltInName::textureProjLodOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00J30B00B20D,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjLodOffset_00S30B00B20D(
    BuiltInId::textureProjLodOffset_ISampler3D1_Float4_Float1_Int3,
    BuiltInName::textureProjLodOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00S30B00B20D,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjLodOffset_00Y30B00B20D(
    BuiltInId::textureProjLodOffset_USampler3D1_Float4_Float1_Int3,
    BuiltInName::textureProjLodOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00Y30B00B20D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjLodOffset_00d30B00B10D(
    BuiltInId::textureProjLodOffset_Sampler2DShadow1_Float4_Float1_Int2,
    BuiltInName::textureProjLodOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00d30B00B10D,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texelFetchOffset_00I10D00D10D(
    BuiltInId::texelFetchOffset_Sampler2D1_Int2_Int1_Int2,
    BuiltInName::texelFetchOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I10D00D10D,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texelFetchOffset_00R10D00D10D(
    BuiltInId::texelFetchOffset_ISampler2D1_Int2_Int1_Int2,
    BuiltInName::texelFetchOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00R10D00D10D,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texelFetchOffset_00X10D00D10D(
    BuiltInId::texelFetchOffset_USampler2D1_Int2_Int1_Int2,
    BuiltInName::texelFetchOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00X10D00D10D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texelFetchOffset_00J20D00D20D(
    BuiltInId::texelFetchOffset_Sampler3D1_Int3_Int1_Int3,
    BuiltInName::texelFetchOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00J20D00D20D,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texelFetchOffset_00S20D00D20D(
    BuiltInId::texelFetchOffset_ISampler3D1_Int3_Int1_Int3,
    BuiltInName::texelFetchOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00S20D00D20D,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texelFetchOffset_00Y20D00D20D(
    BuiltInId::texelFetchOffset_USampler3D1_Int3_Int1_Int3,
    BuiltInName::texelFetchOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00Y20D00D20D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texelFetchOffset_00L20D00D10D(
    BuiltInId::texelFetchOffset_Sampler2DArray1_Int3_Int1_Int2,
    BuiltInName::texelFetchOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00L20D00D10D,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texelFetchOffset_00U20D00D10D(
    BuiltInId::texelFetchOffset_ISampler2DArray1_Int3_Int1_Int2,
    BuiltInName::texelFetchOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00U20D00D10D,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texelFetchOffset_00a20D00D10D(
    BuiltInId::texelFetchOffset_USampler2DArray1_Int3_Int1_Int2,
    BuiltInName::texelFetchOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00a20D00D10D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGradOffset_00I10B10B10B10D(
    BuiltInId::textureGradOffset_Sampler2D1_Float2_Float2_Float2_Int2,
    BuiltInName::textureGradOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I10B10B10B10D,
    5,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGradOffset_00R10B10B10B10D(
    BuiltInId::textureGradOffset_ISampler2D1_Float2_Float2_Float2_Int2,
    BuiltInName::textureGradOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00R10B10B10B10D,
    5,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGradOffset_00X10B10B10B10D(
    BuiltInId::textureGradOffset_USampler2D1_Float2_Float2_Float2_Int2,
    BuiltInName::textureGradOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00X10B10B10B10D,
    5,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGradOffset_00J20B20B20B20D(
    BuiltInId::textureGradOffset_Sampler3D1_Float3_Float3_Float3_Int3,
    BuiltInName::textureGradOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00J20B20B20B20D,
    5,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGradOffset_00S20B20B20B20D(
    BuiltInId::textureGradOffset_ISampler3D1_Float3_Float3_Float3_Int3,
    BuiltInName::textureGradOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00S20B20B20B20D,
    5,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGradOffset_00Y20B20B20B20D(
    BuiltInId::textureGradOffset_USampler3D1_Float3_Float3_Float3_Int3,
    BuiltInName::textureGradOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00Y20B20B20B20D,
    5,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGradOffset_00d20B10B10B10D(
    BuiltInId::textureGradOffset_Sampler2DShadow1_Float3_Float2_Float2_Int2,
    BuiltInName::textureGradOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00d20B10B10B10D,
    5,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGradOffset_00L20B10B10B10D(
    BuiltInId::textureGradOffset_Sampler2DArray1_Float3_Float2_Float2_Int2,
    BuiltInName::textureGradOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00L20B10B10B10D,
    5,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGradOffset_00U20B10B10B10D(
    BuiltInId::textureGradOffset_ISampler2DArray1_Float3_Float2_Float2_Int2,
    BuiltInName::textureGradOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00U20B10B10B10D,
    5,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGradOffset_00a20B10B10B10D(
    BuiltInId::textureGradOffset_USampler2DArray1_Float3_Float2_Float2_Int2,
    BuiltInName::textureGradOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00a20B10B10B10D,
    5,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGradOffset_00f30B10B10B10D(
    BuiltInId::textureGradOffset_Sampler2DArrayShadow1_Float4_Float2_Float2_Int2,
    BuiltInName::textureGradOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00f30B10B10B10D,
    5,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjGradOffset_00I20B10B10B10D(
    BuiltInId::textureProjGradOffset_Sampler2D1_Float3_Float2_Float2_Int2,
    BuiltInName::textureProjGradOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I20B10B10B10D,
    5,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjGradOffset_00R20B10B10B10D(
    BuiltInId::textureProjGradOffset_ISampler2D1_Float3_Float2_Float2_Int2,
    BuiltInName::textureProjGradOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00R20B10B10B10D,
    5,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjGradOffset_00X20B10B10B10D(
    BuiltInId::textureProjGradOffset_USampler2D1_Float3_Float2_Float2_Int2,
    BuiltInName::textureProjGradOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00X20B10B10B10D,
    5,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjGradOffset_00I30B10B10B10D(
    BuiltInId::textureProjGradOffset_Sampler2D1_Float4_Float2_Float2_Int2,
    BuiltInName::textureProjGradOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I30B10B10B10D,
    5,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjGradOffset_00R30B10B10B10D(
    BuiltInId::textureProjGradOffset_ISampler2D1_Float4_Float2_Float2_Int2,
    BuiltInName::textureProjGradOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00R30B10B10B10D,
    5,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjGradOffset_00X30B10B10B10D(
    BuiltInId::textureProjGradOffset_USampler2D1_Float4_Float2_Float2_Int2,
    BuiltInName::textureProjGradOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00X30B10B10B10D,
    5,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjGradOffset_00J30B20B20B20D(
    BuiltInId::textureProjGradOffset_Sampler3D1_Float4_Float3_Float3_Int3,
    BuiltInName::textureProjGradOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00J30B20B20B20D,
    5,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjGradOffset_00S30B20B20B20D(
    BuiltInId::textureProjGradOffset_ISampler3D1_Float4_Float3_Float3_Int3,
    BuiltInName::textureProjGradOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00S30B20B20B20D,
    5,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjGradOffset_00Y30B20B20B20D(
    BuiltInId::textureProjGradOffset_USampler3D1_Float4_Float3_Float3_Int3,
    BuiltInName::textureProjGradOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00Y30B20B20B20D,
    5,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjGradOffset_00d30B10B10B10D(
    BuiltInId::textureProjGradOffset_Sampler2DShadow1_Float4_Float2_Float2_Int2,
    BuiltInName::textureProjGradOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00d30B10B10B10D,
    5,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureOffset_00I10B10D00B(
    BuiltInId::textureOffset_Sampler2D1_Float2_Int2_Float1,
    BuiltInName::textureOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I10B10D00B,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureOffset_00R10B10D00B(
    BuiltInId::textureOffset_ISampler2D1_Float2_Int2_Float1,
    BuiltInName::textureOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00R10B10D00B,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureOffset_00X10B10D00B(
    BuiltInId::textureOffset_USampler2D1_Float2_Int2_Float1,
    BuiltInName::textureOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00X10B10D00B,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureOffset_00J20B20D00B(
    BuiltInId::textureOffset_Sampler3D1_Float3_Int3_Float1,
    BuiltInName::textureOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00J20B20D00B,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureOffset_00S20B20D00B(
    BuiltInId::textureOffset_ISampler3D1_Float3_Int3_Float1,
    BuiltInName::textureOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00S20B20D00B,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureOffset_00Y20B20D00B(
    BuiltInId::textureOffset_USampler3D1_Float3_Int3_Float1,
    BuiltInName::textureOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00Y20B20D00B,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureOffset_00d20B10D00B(
    BuiltInId::textureOffset_Sampler2DShadow1_Float3_Int2_Float1,
    BuiltInName::textureOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00d20B10D00B,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureOffset_00L20B10D00B(
    BuiltInId::textureOffset_Sampler2DArray1_Float3_Int2_Float1,
    BuiltInName::textureOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00L20B10D00B,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureOffset_00U20B10D00B(
    BuiltInId::textureOffset_ISampler2DArray1_Float3_Int2_Float1,
    BuiltInName::textureOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00U20B10D00B,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureOffset_00a20B10D00B(
    BuiltInId::textureOffset_USampler2DArray1_Float3_Int2_Float1,
    BuiltInName::textureOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00a20B10D00B,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjOffset_00I20B10D00B(
    BuiltInId::textureProjOffset_Sampler2D1_Float3_Int2_Float1,
    BuiltInName::textureProjOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I20B10D00B,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjOffset_00R20B10D00B(
    BuiltInId::textureProjOffset_ISampler2D1_Float3_Int2_Float1,
    BuiltInName::textureProjOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00R20B10D00B,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjOffset_00X20B10D00B(
    BuiltInId::textureProjOffset_USampler2D1_Float3_Int2_Float1,
    BuiltInName::textureProjOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00X20B10D00B,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjOffset_00I30B10D00B(
    BuiltInId::textureProjOffset_Sampler2D1_Float4_Int2_Float1,
    BuiltInName::textureProjOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I30B10D00B,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjOffset_00R30B10D00B(
    BuiltInId::textureProjOffset_ISampler2D1_Float4_Int2_Float1,
    BuiltInName::textureProjOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00R30B10D00B,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjOffset_00X30B10D00B(
    BuiltInId::textureProjOffset_USampler2D1_Float4_Int2_Float1,
    BuiltInName::textureProjOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00X30B10D00B,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjOffset_00J30B20D00B(
    BuiltInId::textureProjOffset_Sampler3D1_Float4_Int3_Float1,
    BuiltInName::textureProjOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00J30B20D00B,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjOffset_00S30B20D00B(
    BuiltInId::textureProjOffset_ISampler3D1_Float4_Int3_Float1,
    BuiltInName::textureProjOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00S30B20D00B,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjOffset_00Y30B20D00B(
    BuiltInId::textureProjOffset_USampler3D1_Float4_Int3_Float1,
    BuiltInName::textureProjOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00Y30B20D00B,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProjOffset_00d30B10D00B(
    BuiltInId::textureProjOffset_Sampler2DShadow1_Float4_Int2_Float1,
    BuiltInName::textureProjOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00d30B10D00B,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture_00M10B(BuiltInId::texture_SamplerExternalOES1_Float2,
                                         BuiltInName::texture,
                                         TExtension::OES_EGL_image_external_essl3,
                                         BuiltInParameters::p00M10B00B,
                                         2,
                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                         EOpCallBuiltInFunction,
                                         false);
constexpr const TFunction textureProj_00M20B(
    BuiltInId::textureProj_SamplerExternalOES1_Float3,
    BuiltInName::textureProj,
    TExtension::OES_EGL_image_external_essl3,
    BuiltInParameters::p00M20B00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProj_00M30B(
    BuiltInId::textureProj_SamplerExternalOES1_Float4,
    BuiltInName::textureProj,
    TExtension::OES_EGL_image_external_essl3,
    BuiltInParameters::p00M30B00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureSize_00M00D(
    BuiltInId::textureSize_SamplerExternalOES1_Int1,
    BuiltInName::textureSize,
    TExtension::OES_EGL_image_external_essl3,
    BuiltInParameters::p00M00D,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texelFetch_00M10D00D(
    BuiltInId::texelFetch_SamplerExternalOES1_Int2_Int1,
    BuiltInName::texelFetch,
    TExtension::OES_EGL_image_external_essl3,
    BuiltInParameters::p00M10D00D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture_00N10B(BuiltInId::texture_SamplerExternal2DY2YEXT1_Float2,
                                         BuiltInName::texture,
                                         TExtension::EXT_YUV_target,
                                         BuiltInParameters::p00N10B00B,
                                         2,
                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                         EOpCallBuiltInFunction,
                                         false);
constexpr const TFunction textureProj_00N20B(
    BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float3,
    BuiltInName::textureProj,
    TExtension::EXT_YUV_target,
    BuiltInParameters::p00N20B00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProj_00N30B(
    BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float4,
    BuiltInName::textureProj,
    TExtension::EXT_YUV_target,
    BuiltInParameters::p00N30B00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction rgb_2_yuv_20B00H(
    BuiltInId::rgb_2_yuv_Float3_YuvCscStandardEXT1,
    BuiltInName::rgb_2_yuv,
    TExtension::EXT_YUV_target,
    BuiltInParameters::p20B00H,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction yuv_2_rgb_20B00H(
    BuiltInId::yuv_2_rgb_Float3_YuvCscStandardEXT1,
    BuiltInName::yuv_2_rgb,
    TExtension::EXT_YUV_target,
    BuiltInParameters::p20B00H,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureSize_00N00D(
    BuiltInId::textureSize_SamplerExternal2DY2YEXT1_Int1,
    BuiltInName::textureSize,
    TExtension::EXT_YUV_target,
    BuiltInParameters::p00N00D,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texelFetch_00N10D00D(
    BuiltInId::texelFetch_SamplerExternal2DY2YEXT1_Int2_Int1,
    BuiltInName::texelFetch,
    TExtension::EXT_YUV_target,
    BuiltInParameters::p00N10D00D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGather_00I10B(
    BuiltInId::textureGather_Sampler2D1_Float2,
    BuiltInName::textureGather,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I10B00D,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGather_00R10B(
    BuiltInId::textureGather_ISampler2D1_Float2,
    BuiltInName::textureGather,
    TExtension::UNDEFINED,
    BuiltInParameters::p00R10B00B10D,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGather_00X10B(
    BuiltInId::textureGather_USampler2D1_Float2,
    BuiltInName::textureGather,
    TExtension::UNDEFINED,
    BuiltInParameters::p00X10B10B10B10D,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGather_00I10B00D(
    BuiltInId::textureGather_Sampler2D1_Float2_Int1,
    BuiltInName::textureGather,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I10B00D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGather_00R10B00D(
    BuiltInId::textureGather_ISampler2D1_Float2_Int1,
    BuiltInName::textureGather,
    TExtension::UNDEFINED,
    BuiltInParameters::p00R10B00D,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGather_00X10B00D(
    BuiltInId::textureGather_USampler2D1_Float2_Int1,
    BuiltInName::textureGather,
    TExtension::UNDEFINED,
    BuiltInParameters::p00X10B00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGather_00L20B(
    BuiltInId::textureGather_Sampler2DArray1_Float3,
    BuiltInName::textureGather,
    TExtension::UNDEFINED,
    BuiltInParameters::p00L20B10D00D,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGather_00U20B(
    BuiltInId::textureGather_ISampler2DArray1_Float3,
    BuiltInName::textureGather,
    TExtension::UNDEFINED,
    BuiltInParameters::p00U20B70D00D,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGather_00a20B(
    BuiltInId::textureGather_USampler2DArray1_Float3,
    BuiltInName::textureGather,
    TExtension::UNDEFINED,
    BuiltInParameters::p00a20B10B10B10D,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGather_00L20B00D(
    BuiltInId::textureGather_Sampler2DArray1_Float3_Int1,
    BuiltInName::textureGather,
    TExtension::UNDEFINED,
    BuiltInParameters::p00L20B00D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGather_00U20B00D(
    BuiltInId::textureGather_ISampler2DArray1_Float3_Int1,
    BuiltInName::textureGather,
    TExtension::UNDEFINED,
    BuiltInParameters::p00U20B00D,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGather_00a20B00D(
    BuiltInId::textureGather_USampler2DArray1_Float3_Int1,
    BuiltInName::textureGather,
    TExtension::UNDEFINED,
    BuiltInParameters::p00a20B00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGather_00K20B(
    BuiltInId::textureGather_SamplerCube1_Float3,
    BuiltInName::textureGather,
    TExtension::UNDEFINED,
    BuiltInParameters::p00K20B20B20B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGather_00T20B(
    BuiltInId::textureGather_ISamplerCube1_Float3,
    BuiltInName::textureGather,
    TExtension::UNDEFINED,
    BuiltInParameters::p00T20B00D,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGather_00Z20B(
    BuiltInId::textureGather_USamplerCube1_Float3,
    BuiltInName::textureGather,
    TExtension::UNDEFINED,
    BuiltInParameters::p00Z20B00D,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGather_00K20B00D(
    BuiltInId::textureGather_SamplerCube1_Float3_Int1,
    BuiltInName::textureGather,
    TExtension::UNDEFINED,
    BuiltInParameters::p00K20B00D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGather_00T20B00D(
    BuiltInId::textureGather_ISamplerCube1_Float3_Int1,
    BuiltInName::textureGather,
    TExtension::UNDEFINED,
    BuiltInParameters::p00T20B00D,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGather_00Z20B00D(
    BuiltInId::textureGather_USamplerCube1_Float3_Int1,
    BuiltInName::textureGather,
    TExtension::UNDEFINED,
    BuiltInParameters::p00Z20B00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGather_00d10B(
    BuiltInId::textureGather_Sampler2DShadow1_Float2,
    BuiltInName::textureGather,
    TExtension::UNDEFINED,
    BuiltInParameters::p00d10B00B10D,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGather_00d10B00B(
    BuiltInId::textureGather_Sampler2DShadow1_Float2_Float1,
    BuiltInName::textureGather,
    TExtension::UNDEFINED,
    BuiltInParameters::p00d10B00B10D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGather_00f20B(
    BuiltInId::textureGather_Sampler2DArrayShadow1_Float3,
    BuiltInName::textureGather,
    TExtension::UNDEFINED,
    BuiltInParameters::p00f20B00B10D,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGather_00f20B00B(
    BuiltInId::textureGather_Sampler2DArrayShadow1_Float3_Float1,
    BuiltInName::textureGather,
    TExtension::UNDEFINED,
    BuiltInParameters::p00f20B00B10D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGather_00e20B(
    BuiltInId::textureGather_SamplerCubeShadow1_Float3,
    BuiltInName::textureGather,
    TExtension::UNDEFINED,
    BuiltInParameters::p00e20B00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGather_00e20B00B(
    BuiltInId::textureGather_SamplerCubeShadow1_Float3_Float1,
    BuiltInName::textureGather,
    TExtension::UNDEFINED,
    BuiltInParameters::p00e20B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsets_00I10B70D00D(
    BuiltInId::textureGatherOffsets_Sampler2D1_Float2_Int4x2_Int1,
    BuiltInName::textureGatherOffsets,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I10B70D00D,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsets_00R10B70D00D(
    BuiltInId::textureGatherOffsets_ISampler2D1_Float2_Int4x2_Int1,
    BuiltInName::textureGatherOffsets,
    TExtension::UNDEFINED,
    BuiltInParameters::p00R10B70D00D,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsets_00X10B70D00D(
    BuiltInId::textureGatherOffsets_USampler2D1_Float2_Int4x2_Int1,
    BuiltInName::textureGatherOffsets,
    TExtension::UNDEFINED,
    BuiltInParameters::p00X10B70D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsets_00L20B70D00D(
    BuiltInId::textureGatherOffsets_Sampler2DArray1_Float3_Int4x2_Int1,
    BuiltInName::textureGatherOffsets,
    TExtension::UNDEFINED,
    BuiltInParameters::p00L20B70D00D,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsets_00U20B70D00D(
    BuiltInId::textureGatherOffsets_ISampler2DArray1_Float3_Int4x2_Int1,
    BuiltInName::textureGatherOffsets,
    TExtension::UNDEFINED,
    BuiltInParameters::p00U20B70D00D,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsets_00a20B70D00D(
    BuiltInId::textureGatherOffsets_USampler2DArray1_Float3_Int4x2_Int1,
    BuiltInName::textureGatherOffsets,
    TExtension::UNDEFINED,
    BuiltInParameters::p00a20B70D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsetsExt_00I10B70D00D(
    BuiltInId::textureGatherOffsetsExt_Sampler2D1_Float2_Int4x2_Int1,
    BuiltInName::textureGatherOffsetsExt,
    TExtension::EXT_gpu_shader5,
    BuiltInParameters::p00I10B70D00D,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsetsExt_00R10B70D00D(
    BuiltInId::textureGatherOffsetsExt_ISampler2D1_Float2_Int4x2_Int1,
    BuiltInName::textureGatherOffsetsExt,
    TExtension::EXT_gpu_shader5,
    BuiltInParameters::p00R10B70D00D,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsetsExt_00X10B70D00D(
    BuiltInId::textureGatherOffsetsExt_USampler2D1_Float2_Int4x2_Int1,
    BuiltInName::textureGatherOffsetsExt,
    TExtension::EXT_gpu_shader5,
    BuiltInParameters::p00X10B70D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsetsExt_00L20B70D00D(
    BuiltInId::textureGatherOffsetsExt_Sampler2DArray1_Float3_Int4x2_Int1,
    BuiltInName::textureGatherOffsetsExt,
    TExtension::EXT_gpu_shader5,
    BuiltInParameters::p00L20B70D00D,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsetsExt_00U20B70D00D(
    BuiltInId::textureGatherOffsetsExt_ISampler2DArray1_Float3_Int4x2_Int1,
    BuiltInName::textureGatherOffsetsExt,
    TExtension::EXT_gpu_shader5,
    BuiltInParameters::p00U20B70D00D,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsetsExt_00a20B70D00D(
    BuiltInId::textureGatherOffsetsExt_USampler2DArray1_Float3_Int4x2_Int1,
    BuiltInName::textureGatherOffsetsExt,
    TExtension::EXT_gpu_shader5,
    BuiltInParameters::p00a20B70D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsets_00I10B70D(
    BuiltInId::textureGatherOffsets_Sampler2D1_Float2_Int4x2,
    BuiltInName::textureGatherOffsets,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I10B70D00D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsets_00R10B70D(
    BuiltInId::textureGatherOffsets_ISampler2D1_Float2_Int4x2,
    BuiltInName::textureGatherOffsets,
    TExtension::UNDEFINED,
    BuiltInParameters::p00R10B70D00D,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsets_00X10B70D(
    BuiltInId::textureGatherOffsets_USampler2D1_Float2_Int4x2,
    BuiltInName::textureGatherOffsets,
    TExtension::UNDEFINED,
    BuiltInParameters::p00X10B70D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsets_00L20B70D(
    BuiltInId::textureGatherOffsets_Sampler2DArray1_Float3_Int4x2,
    BuiltInName::textureGatherOffsets,
    TExtension::UNDEFINED,
    BuiltInParameters::p00L20B70D00D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsets_00U20B70D(
    BuiltInId::textureGatherOffsets_ISampler2DArray1_Float3_Int4x2,
    BuiltInName::textureGatherOffsets,
    TExtension::UNDEFINED,
    BuiltInParameters::p00U20B70D00D,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsets_00a20B70D(
    BuiltInId::textureGatherOffsets_USampler2DArray1_Float3_Int4x2,
    BuiltInName::textureGatherOffsets,
    TExtension::UNDEFINED,
    BuiltInParameters::p00a20B70D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsets_00d10B00B70D(
    BuiltInId::textureGatherOffsets_Sampler2DShadow1_Float2_Float1_Int4x2,
    BuiltInName::textureGatherOffsets,
    TExtension::UNDEFINED,
    BuiltInParameters::p00d10B00B70D,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsets_00f20B00B70D(
    BuiltInId::textureGatherOffsets_Sampler2DArrayShadow1_Float3_Float1_Int4x2,
    BuiltInName::textureGatherOffsets,
    TExtension::UNDEFINED,
    BuiltInParameters::p00f20B00B70D,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsetsExt_00I10B70D(
    BuiltInId::textureGatherOffsetsExt_Sampler2D1_Float2_Int4x2,
    BuiltInName::textureGatherOffsetsExt,
    TExtension::EXT_gpu_shader5,
    BuiltInParameters::p00I10B70D00D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsetsExt_00R10B70D(
    BuiltInId::textureGatherOffsetsExt_ISampler2D1_Float2_Int4x2,
    BuiltInName::textureGatherOffsetsExt,
    TExtension::EXT_gpu_shader5,
    BuiltInParameters::p00R10B70D00D,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsetsExt_00X10B70D(
    BuiltInId::textureGatherOffsetsExt_USampler2D1_Float2_Int4x2,
    BuiltInName::textureGatherOffsetsExt,
    TExtension::EXT_gpu_shader5,
    BuiltInParameters::p00X10B70D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsetsExt_00L20B70D(
    BuiltInId::textureGatherOffsetsExt_Sampler2DArray1_Float3_Int4x2,
    BuiltInName::textureGatherOffsetsExt,
    TExtension::EXT_gpu_shader5,
    BuiltInParameters::p00L20B70D00D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsetsExt_00U20B70D(
    BuiltInId::textureGatherOffsetsExt_ISampler2DArray1_Float3_Int4x2,
    BuiltInName::textureGatherOffsetsExt,
    TExtension::EXT_gpu_shader5,
    BuiltInParameters::p00U20B70D00D,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsetsExt_00a20B70D(
    BuiltInId::textureGatherOffsetsExt_USampler2DArray1_Float3_Int4x2,
    BuiltInName::textureGatherOffsetsExt,
    TExtension::EXT_gpu_shader5,
    BuiltInParameters::p00a20B70D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsetsExt_00d10B00B70D(
    BuiltInId::textureGatherOffsetsExt_Sampler2DShadow1_Float2_Float1_Int4x2,
    BuiltInName::textureGatherOffsetsExt,
    TExtension::EXT_gpu_shader5,
    BuiltInParameters::p00d10B00B70D,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsetsExt_00f20B00B70D(
    BuiltInId::textureGatherOffsetsExt_Sampler2DArrayShadow1_Float3_Float1_Int4x2,
    BuiltInName::textureGatherOffsetsExt,
    TExtension::EXT_gpu_shader5,
    BuiltInParameters::p00f20B00B70D,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffset_00I10B10D00D(
    BuiltInId::textureGatherOffset_Sampler2D1_Float2_Int2_Int1,
    BuiltInName::textureGatherOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I10B10D00D,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffset_00R10B10D00D(
    BuiltInId::textureGatherOffset_ISampler2D1_Float2_Int2_Int1,
    BuiltInName::textureGatherOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00R10B10D00D,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffset_00X10B10D00D(
    BuiltInId::textureGatherOffset_USampler2D1_Float2_Int2_Int1,
    BuiltInName::textureGatherOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00X10B10D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffset_00L20B10D00D(
    BuiltInId::textureGatherOffset_Sampler2DArray1_Float3_Int2_Int1,
    BuiltInName::textureGatherOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00L20B10D00D,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffset_00U20B10D00D(
    BuiltInId::textureGatherOffset_ISampler2DArray1_Float3_Int2_Int1,
    BuiltInName::textureGatherOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00U20B10D00D,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffset_00a20B10D00D(
    BuiltInId::textureGatherOffset_USampler2DArray1_Float3_Int2_Int1,
    BuiltInName::textureGatherOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00a20B10D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffset_00I10B10D(
    BuiltInId::textureGatherOffset_Sampler2D1_Float2_Int2,
    BuiltInName::textureGatherOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I10B10D00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffset_00R10B10D(
    BuiltInId::textureGatherOffset_ISampler2D1_Float2_Int2,
    BuiltInName::textureGatherOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00R10B10D00B,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffset_00X10B10D(
    BuiltInId::textureGatherOffset_USampler2D1_Float2_Int2,
    BuiltInName::textureGatherOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00X10B10D00B,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffset_00L20B10D(
    BuiltInId::textureGatherOffset_Sampler2DArray1_Float3_Int2,
    BuiltInName::textureGatherOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00L20B10D00D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffset_00U20B10D(
    BuiltInId::textureGatherOffset_ISampler2DArray1_Float3_Int2,
    BuiltInName::textureGatherOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00U20B10D00D,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffset_00a20B10D(
    BuiltInId::textureGatherOffset_USampler2DArray1_Float3_Int2,
    BuiltInName::textureGatherOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00a20B10D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffset_00d10B00B10D(
    BuiltInId::textureGatherOffset_Sampler2DShadow1_Float2_Float1_Int2,
    BuiltInName::textureGatherOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00d10B00B10D,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffset_00f20B00B10D(
    BuiltInId::textureGatherOffset_Sampler2DArrayShadow1_Float3_Float1_Int2,
    BuiltInName::textureGatherOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00f20B00B10D,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction dFdx_00B(BuiltInId::dFdx_Float1,
                                   BuiltInName::dFdx,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00B30B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpDFdx,
                                   false);
constexpr const TFunction dFdx_10B(BuiltInId::dFdx_Float2,
                                   BuiltInName::dFdx,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p10B20B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpDFdx,
                                   false);
constexpr const TFunction dFdx_20B(BuiltInId::dFdx_Float3,
                                   BuiltInName::dFdx,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p20B00H,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpDFdx,
                                   false);
constexpr const TFunction dFdx_30B(BuiltInId::dFdx_Float4,
                                   BuiltInName::dFdx,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p30B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpDFdx,
                                   false);
constexpr const TFunction dFdy_00B(BuiltInId::dFdy_Float1,
                                   BuiltInName::dFdy,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00B30B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpDFdy,
                                   false);
constexpr const TFunction dFdy_10B(BuiltInId::dFdy_Float2,
                                   BuiltInName::dFdy,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p10B20B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpDFdy,
                                   false);
constexpr const TFunction dFdy_20B(BuiltInId::dFdy_Float3,
                                   BuiltInName::dFdy,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p20B00H,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpDFdy,
                                   false);
constexpr const TFunction dFdy_30B(BuiltInId::dFdy_Float4,
                                   BuiltInName::dFdy,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p30B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpDFdy,
                                   false);
constexpr const TFunction fwidth_00B(BuiltInId::fwidth_Float1,
                                     BuiltInName::fwidth,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p00B30B,
                                     1,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpFwidth,
                                     false);
constexpr const TFunction fwidth_10B(BuiltInId::fwidth_Float2,
                                     BuiltInName::fwidth,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p10B20B,
                                     1,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                     EOpFwidth,
                                     false);
constexpr const TFunction fwidth_20B(BuiltInId::fwidth_Float3,
                                     BuiltInName::fwidth,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p20B00H,
                                     1,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                     EOpFwidth,
                                     false);
constexpr const TFunction fwidth_30B(BuiltInId::fwidth_Float4,
                                     BuiltInName::fwidth,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p30B00B00B,
                                     1,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpFwidth,
                                     false);
constexpr const TFunction atomicCounter_00G(
    BuiltInId::atomicCounter_AtomicCounter1,
    BuiltInName::atomicCounter,
    TExtension::UNDEFINED,
    BuiltInParameters::p00G,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction atomicCounterIncrement_00G(
    BuiltInId::atomicCounterIncrement_AtomicCounter1,
    BuiltInName::atomicCounterIncrement,
    TExtension::UNDEFINED,
    BuiltInParameters::p00G,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction atomicCounterDecrement_00G(
    BuiltInId::atomicCounterDecrement_AtomicCounter1,
    BuiltInName::atomicCounterDecrement,
    TExtension::UNDEFINED,
    BuiltInParameters::p00G,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction atomicAdd_00E00E(
    BuiltInId::atomicAdd_UInt1_UInt1,
    BuiltInName::atomicAdd,
    TExtension::UNDEFINED,
    BuiltInParameters::p_io_00E00E00E,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpAtomicAdd,
    false);
constexpr const TFunction atomicAdd_00D00D(BuiltInId::atomicAdd_Int1_Int1,
                                           BuiltInName::atomicAdd,
                                           TExtension::UNDEFINED,
                                           BuiltInParameters::p_io_00D00D00D,
                                           2,
                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                           EOpAtomicAdd,
                                           false);
constexpr const TFunction atomicMin_00E00E(
    BuiltInId::atomicMin_UInt1_UInt1,
    BuiltInName::atomicMin,
    TExtension::UNDEFINED,
    BuiltInParameters::p_io_00E00E00E,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpAtomicMin,
    false);
constexpr const TFunction atomicMin_00D00D(BuiltInId::atomicMin_Int1_Int1,
                                           BuiltInName::atomicMin,
                                           TExtension::UNDEFINED,
                                           BuiltInParameters::p_io_00D00D00D,
                                           2,
                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                           EOpAtomicMin,
                                           false);
constexpr const TFunction atomicMax_00E00E(
    BuiltInId::atomicMax_UInt1_UInt1,
    BuiltInName::atomicMax,
    TExtension::UNDEFINED,
    BuiltInParameters::p_io_00E00E00E,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpAtomicMax,
    false);
constexpr const TFunction atomicMax_00D00D(BuiltInId::atomicMax_Int1_Int1,
                                           BuiltInName::atomicMax,
                                           TExtension::UNDEFINED,
                                           BuiltInParameters::p_io_00D00D00D,
                                           2,
                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                           EOpAtomicMax,
                                           false);
constexpr const TFunction atomicAnd_00E00E(
    BuiltInId::atomicAnd_UInt1_UInt1,
    BuiltInName::atomicAnd,
    TExtension::UNDEFINED,
    BuiltInParameters::p_io_00E00E00E,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpAtomicAnd,
    false);
constexpr const TFunction atomicAnd_00D00D(BuiltInId::atomicAnd_Int1_Int1,
                                           BuiltInName::atomicAnd,
                                           TExtension::UNDEFINED,
                                           BuiltInParameters::p_io_00D00D00D,
                                           2,
                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                           EOpAtomicAnd,
                                           false);
constexpr const TFunction atomicOr_00E00E(BuiltInId::atomicOr_UInt1_UInt1,
                                          BuiltInName::atomicOr,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p_io_00E00E00E,
                                          2,
                                          StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                          EOpAtomicOr,
                                          false);
constexpr const TFunction atomicOr_00D00D(BuiltInId::atomicOr_Int1_Int1,
                                          BuiltInName::atomicOr,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p_io_00D00D00D,
                                          2,
                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                          EOpAtomicOr,
                                          false);
constexpr const TFunction atomicXor_00E00E(
    BuiltInId::atomicXor_UInt1_UInt1,
    BuiltInName::atomicXor,
    TExtension::UNDEFINED,
    BuiltInParameters::p_io_00E00E00E,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpAtomicXor,
    false);
constexpr const TFunction atomicXor_00D00D(BuiltInId::atomicXor_Int1_Int1,
                                           BuiltInName::atomicXor,
                                           TExtension::UNDEFINED,
                                           BuiltInParameters::p_io_00D00D00D,
                                           2,
                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                           EOpAtomicXor,
                                           false);
constexpr const TFunction atomicExchange_00E00E(
    BuiltInId::atomicExchange_UInt1_UInt1,
    BuiltInName::atomicExchange,
    TExtension::UNDEFINED,
    BuiltInParameters::p_io_00E00E00E,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpAtomicExchange,
    false);
constexpr const TFunction atomicExchange_00D00D(
    BuiltInId::atomicExchange_Int1_Int1,
    BuiltInName::atomicExchange,
    TExtension::UNDEFINED,
    BuiltInParameters::p_io_00D00D00D,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpAtomicExchange,
    false);
constexpr const TFunction atomicCompSwap_00E00E00E(
    BuiltInId::atomicCompSwap_UInt1_UInt1_UInt1,
    BuiltInName::atomicCompSwap,
    TExtension::UNDEFINED,
    BuiltInParameters::p_io_00E00E00E,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpAtomicCompSwap,
    false);
constexpr const TFunction atomicCompSwap_00D00D00D(
    BuiltInId::atomicCompSwap_Int1_Int1_Int1,
    BuiltInName::atomicCompSwap,
    TExtension::UNDEFINED,
    BuiltInParameters::p_io_00D00D00D,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpAtomicCompSwap,
    false);
constexpr const TFunction imageSize_00z(BuiltInId::imageSize_Image2D1,
                                        BuiltInName::imageSize,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p00z10D30B,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpCallBuiltInFunction,
                                        false);
constexpr const TFunction imageSize_01A(BuiltInId::imageSize_IImage2D1,
                                        BuiltInName::imageSize,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p01A10D30D,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpCallBuiltInFunction,
                                        false);
constexpr const TFunction imageSize_01B(BuiltInId::imageSize_UImage2D1,
                                        BuiltInName::imageSize,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p01B10D30E,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpCallBuiltInFunction,
                                        false);
constexpr const TFunction imageSize_01C(BuiltInId::imageSize_Image3D1,
                                        BuiltInName::imageSize,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p01C20D30B,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpCallBuiltInFunction,
                                        false);
constexpr const TFunction imageSize_01D(BuiltInId::imageSize_IImage3D1,
                                        BuiltInName::imageSize,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p01D20D30D,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpCallBuiltInFunction,
                                        false);
constexpr const TFunction imageSize_01E(BuiltInId::imageSize_UImage3D1,
                                        BuiltInName::imageSize,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p01E20D30E,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpCallBuiltInFunction,
                                        false);
constexpr const TFunction imageSize_01F(BuiltInId::imageSize_Image2DArray1,
                                        BuiltInName::imageSize,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p01F20D30B,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpCallBuiltInFunction,
                                        false);
constexpr const TFunction imageSize_01G(BuiltInId::imageSize_IImage2DArray1,
                                        BuiltInName::imageSize,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p01G20D30D,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpCallBuiltInFunction,
                                        false);
constexpr const TFunction imageSize_01H(BuiltInId::imageSize_UImage2DArray1,
                                        BuiltInName::imageSize,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p01H20D30E,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpCallBuiltInFunction,
                                        false);
constexpr const TFunction imageSize_01I(BuiltInId::imageSize_ImageCube1,
                                        BuiltInName::imageSize,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p01I20D30B,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpCallBuiltInFunction,
                                        false);
constexpr const TFunction imageSize_01J(BuiltInId::imageSize_IImageCube1,
                                        BuiltInName::imageSize,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p01J20D30D,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpCallBuiltInFunction,
                                        false);
constexpr const TFunction imageSize_01K(BuiltInId::imageSize_UImageCube1,
                                        BuiltInName::imageSize,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p01K20D30E,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpCallBuiltInFunction,
                                        false);
constexpr const TFunction imageLoad_00z10D(
    BuiltInId::imageLoad_Image2D1_Int2,
    BuiltInName::imageLoad,
    TExtension::UNDEFINED,
    BuiltInParameters::p00z10D30B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageLoad_01A10D(BuiltInId::imageLoad_IImage2D1_Int2,
                                           BuiltInName::imageLoad,
                                           TExtension::UNDEFINED,
                                           BuiltInParameters::p01A10D30D,
                                           2,
                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                           EOpCallBuiltInFunction,
                                           false);
constexpr const TFunction imageLoad_01B10D(
    BuiltInId::imageLoad_UImage2D1_Int2,
    BuiltInName::imageLoad,
    TExtension::UNDEFINED,
    BuiltInParameters::p01B10D30E,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageLoad_01C20D(
    BuiltInId::imageLoad_Image3D1_Int3,
    BuiltInName::imageLoad,
    TExtension::UNDEFINED,
    BuiltInParameters::p01C20D30B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageLoad_01D20D(BuiltInId::imageLoad_IImage3D1_Int3,
                                           BuiltInName::imageLoad,
                                           TExtension::UNDEFINED,
                                           BuiltInParameters::p01D20D30D,
                                           2,
                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                           EOpCallBuiltInFunction,
                                           false);
constexpr const TFunction imageLoad_01E20D(
    BuiltInId::imageLoad_UImage3D1_Int3,
    BuiltInName::imageLoad,
    TExtension::UNDEFINED,
    BuiltInParameters::p01E20D30E,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageLoad_01F20D(
    BuiltInId::imageLoad_Image2DArray1_Int3,
    BuiltInName::imageLoad,
    TExtension::UNDEFINED,
    BuiltInParameters::p01F20D30B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageLoad_01G20D(BuiltInId::imageLoad_IImage2DArray1_Int3,
                                           BuiltInName::imageLoad,
                                           TExtension::UNDEFINED,
                                           BuiltInParameters::p01G20D30D,
                                           2,
                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                           EOpCallBuiltInFunction,
                                           false);
constexpr const TFunction imageLoad_01H20D(
    BuiltInId::imageLoad_UImage2DArray1_Int3,
    BuiltInName::imageLoad,
    TExtension::UNDEFINED,
    BuiltInParameters::p01H20D30E,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageLoad_01I20D(
    BuiltInId::imageLoad_ImageCube1_Int3,
    BuiltInName::imageLoad,
    TExtension::UNDEFINED,
    BuiltInParameters::p01I20D30B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageLoad_01J20D(BuiltInId::imageLoad_IImageCube1_Int3,
                                           BuiltInName::imageLoad,
                                           TExtension::UNDEFINED,
                                           BuiltInParameters::p01J20D30D,
                                           2,
                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                           EOpCallBuiltInFunction,
                                           false);
constexpr const TFunction imageLoad_01K20D(
    BuiltInId::imageLoad_UImageCube1_Int3,
    BuiltInName::imageLoad,
    TExtension::UNDEFINED,
    BuiltInParameters::p01K20D30E,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageStore_00z10D30B(
    BuiltInId::imageStore_Image2D1_Int2_Float4,
    BuiltInName::imageStore,
    TExtension::UNDEFINED,
    BuiltInParameters::p00z10D30B,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageStore_01A10D30D(
    BuiltInId::imageStore_IImage2D1_Int2_Int4,
    BuiltInName::imageStore,
    TExtension::UNDEFINED,
    BuiltInParameters::p01A10D30D,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageStore_01B10D30E(
    BuiltInId::imageStore_UImage2D1_Int2_UInt4,
    BuiltInName::imageStore,
    TExtension::UNDEFINED,
    BuiltInParameters::p01B10D30E,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageStore_01C20D30B(
    BuiltInId::imageStore_Image3D1_Int3_Float4,
    BuiltInName::imageStore,
    TExtension::UNDEFINED,
    BuiltInParameters::p01C20D30B,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageStore_01D20D30D(
    BuiltInId::imageStore_IImage3D1_Int3_Int4,
    BuiltInName::imageStore,
    TExtension::UNDEFINED,
    BuiltInParameters::p01D20D30D,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageStore_01E20D30E(
    BuiltInId::imageStore_UImage3D1_Int3_UInt4,
    BuiltInName::imageStore,
    TExtension::UNDEFINED,
    BuiltInParameters::p01E20D30E,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageStore_01F20D30B(
    BuiltInId::imageStore_Image2DArray1_Int3_Float4,
    BuiltInName::imageStore,
    TExtension::UNDEFINED,
    BuiltInParameters::p01F20D30B,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageStore_01G20D30D(
    BuiltInId::imageStore_IImage2DArray1_Int3_Int4,
    BuiltInName::imageStore,
    TExtension::UNDEFINED,
    BuiltInParameters::p01G20D30D,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageStore_01H20D30E(
    BuiltInId::imageStore_UImage2DArray1_Int3_UInt4,
    BuiltInName::imageStore,
    TExtension::UNDEFINED,
    BuiltInParameters::p01H20D30E,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageStore_01I20D30B(
    BuiltInId::imageStore_ImageCube1_Int3_Float4,
    BuiltInName::imageStore,
    TExtension::UNDEFINED,
    BuiltInParameters::p01I20D30B,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageStore_01J20D30D(
    BuiltInId::imageStore_IImageCube1_Int3_Int4,
    BuiltInName::imageStore,
    TExtension::UNDEFINED,
    BuiltInParameters::p01J20D30D,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageStore_01K20D30E(
    BuiltInId::imageStore_UImageCube1_Int3_UInt4,
    BuiltInName::imageStore,
    TExtension::UNDEFINED,
    BuiltInParameters::p01K20D30E,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction memoryBarrier_(BuiltInId::memoryBarrier,
                                         BuiltInName::memoryBarrier,
                                         TExtension::UNDEFINED,
                                         BuiltInParameters::empty,
                                         0,
                                         StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
                                         EOpMemoryBarrier,
                                         false);
constexpr const TFunction memoryBarrierAtomicCounter_(
    BuiltInId::memoryBarrierAtomicCounter,
    BuiltInName::memoryBarrierAtomicCounter,
    TExtension::UNDEFINED,
    BuiltInParameters::empty,
    0,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpMemoryBarrierAtomicCounter,
    false);
constexpr const TFunction memoryBarrierBuffer_(
    BuiltInId::memoryBarrierBuffer,
    BuiltInName::memoryBarrierBuffer,
    TExtension::UNDEFINED,
    BuiltInParameters::empty,
    0,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpMemoryBarrierBuffer,
    false);
constexpr const TFunction memoryBarrierImage_(
    BuiltInId::memoryBarrierImage,
    BuiltInName::memoryBarrierImage,
    TExtension::UNDEFINED,
    BuiltInParameters::empty,
    0,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpMemoryBarrierImage,
    false);
constexpr const TFunction barrier_(BuiltInId::barrier,
                                   BuiltInName::barrier,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::empty,
                                   0,
                                   StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpBarrier,
                                   false);
constexpr const TFunction memoryBarrierShared_(
    BuiltInId::memoryBarrierShared,
    BuiltInName::memoryBarrierShared,
    TExtension::UNDEFINED,
    BuiltInParameters::empty,
    0,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpMemoryBarrierShared,
    false);
constexpr const TFunction groupMemoryBarrier_(
    BuiltInId::groupMemoryBarrier,
    BuiltInName::groupMemoryBarrier,
    TExtension::UNDEFINED,
    BuiltInParameters::empty,
    0,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpGroupMemoryBarrier,
    false);
constexpr const TFunction EmitVertex_(BuiltInId::EmitVertex,
                                      BuiltInName::EmitVertex,
                                      TExtension::EXT_geometry_shader,
                                      BuiltInParameters::empty,
                                      0,
                                      StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
                                      EOpEmitVertex,
                                      false);
constexpr const TFunction EndPrimitive_(BuiltInId::EndPrimitive,
                                        BuiltInName::EndPrimitive,
                                        TExtension::EXT_geometry_shader,
                                        BuiltInParameters::empty,
                                        0,
                                        StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
                                        EOpEndPrimitive,
                                        false);
constexpr const TFunction textureVideoWEBGL_00y10B(
    BuiltInId::textureVideoWEBGL_SamplerVideoWEBGL1_Float2,
    BuiltInName::textureVideoWEBGL,
    TExtension::UNDEFINED,
    BuiltInParameters::p00y10B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture_00y10B(BuiltInId::texture_SamplerVideoWEBGL1_Float2,
                                         BuiltInName::texture,
                                         TExtension::UNDEFINED,
                                         BuiltInParameters::p00y10B,
                                         2,
                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                         EOpCallBuiltInFunction,
                                         false);

}  // namespace Func

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

// Rules used to initialize the mangled name array.
constexpr SymbolRule kRules[] = {
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProj_00R30B00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProj_00R30B00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_01G20D30D),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, EXT_INDEX(EXT_YUV_target)>(&texture_00N10B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_10D00D00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_10D00D00D),
    Rule::Get<Spec::ESSL, 310, Shader::FRAGMENT, EXT_INDEX(EXT_geometry_shader)>(
        &BuiltInVariable::kgl_PrimitiveID),
    Rule::Get<Spec::ESSL, 310, Shader::GEOMETRY_EXT, EXT_INDEX(EXT_geometry_shader)>(
        &BuiltInVariable::kgl_PrimitiveIDGS),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00R10B00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00R10B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&modf_00B00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&modf_00B00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxAtomicCounterBindings),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxAtomicCounterBindings),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&notEqual_20D20D),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&notEqual_20D20D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeImageUniforms),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeImageUniforms),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00L20B00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00L20B00B),
    Rule::Get<Spec::ESSL, 0, Shader::VERTEX, EXT_INDEX(ANGLE_base_vertex_base_instance)>(
        &BuiltInVariable::kangle_BaseVertex),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&determinant_A0B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGrad_00I30B10B10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGrad_00I30B10B10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&tanh_30B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&tanh_30B),
    Rule::Get<Spec::ESSL, 310, Shader::FRAGMENT, EXT_INDEX(EXT_geometry_shader)>(
        &BuiltInVariable::kgl_Layer),
    Rule::Get<Spec::ESSL, 310, Shader::GEOMETRY_EXT, EXT_INDEX(EXT_geometry_shader)>(
        &BuiltInVariable::kgl_LayerGS),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureOffset_00d20B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureOffset_00d20B10D),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&dFdx_30B),
    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&dFdx_30B),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(&dFdxExt_30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_00E00E00E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_00E00E00E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&transpose_50B),
    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&transpose_50B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&ldexp_00B00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&ldexp_00B00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00K20B00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00K20B00D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&lessThanEqual_30B30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&lessThanEqual_30B30B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&greaterThanEqual_20D20D),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&greaterThanEqual_20D20D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_20E20E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_20E20E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&asin_20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&asin_20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&outerProduct_20B30B),
    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&outerProduct_20B30B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldInsert_00D00D00D00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldInsert_00D00D00D00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGrad_00Y30B20B20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGrad_00Y30B20B20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&roundEven_30B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&roundEven_30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&acosh_20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&acosh_20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&atanh_10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&atanh_10B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mix_20B20B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mix_20B20B00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageLoad_01C20D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&clamp_10B10B10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&clamp_10B10B10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00I10B10B10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00I10B10B10B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00L20B10D00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00L20B10D00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitCount_00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitCount_00D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&step_00B20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&step_00B20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&lessThan_30E30E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&lessThan_30E30E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&uintBitsToFloat_30E),
    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&uintBitsToFloat_30E),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imulExtended_30D30D30D30D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&imulExtended_30D30D30D30D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00K00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00K00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_01B10D30E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&transpose_70B),
    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&transpose_70B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProjOffset_00S30B20D00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProjOffset_00S30B20D00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLod_00X30B00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLod_00X30B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00Y00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00Y00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&TableBase::m_gl_MinProgramTexelOffset),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MinProgramTexelOffset),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00d20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00d20B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProj_00J30B00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProj_00J30B00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&atan_10B10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&atan_10B10B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&max_20B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&max_20B00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&clamp_30B30B30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&clamp_30B30B30B),
    Rule::Get<Spec::ESSL, 310, Shader::GEOMETRY_EXT, EXT_INDEX(EXT_geometry_shader)>(
        &EndPrimitive_),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00Y20B00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00Y20B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLodOffset_00a20B00B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLodOffset_00a20B00B10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetchOffset_00Y20D00D20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetchOffset_00Y20D00D20D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetch_00a20D00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetch_00a20D00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_20D00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_20D00D),
    Rule::Get<Spec::ESSL, 320, Shader::ALL, 0>(&textureGatherOffsets_00I10B70D00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00I10B70D00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(
        &textureGatherOffsetsExt_00I10B70D00D),
    Rule::Get<Spec::ESSL, 320, Shader::ALL, 0>(&textureGatherOffsets_00X10B70D00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00X10B70D00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(
        &textureGatherOffsetsExt_00X10B70D00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&uintBitsToFloat_00E),
    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&uintBitsToFloat_00E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&lessThanEqual_20B20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&lessThanEqual_20B20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(EXT_YUV_target)>(&texelFetch_00N10D00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicAdd_00D00D),
    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicAdd_00D00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_geometry_shader)>(
        &TableBase::m_gl_MaxGeometryOutputComponents),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_geometry_shader)>(
        &TableBase::m_gl_MaxGeometryTextureImageUnits),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&floatBitsToUint_20B),
    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&floatBitsToUint_20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldInsert_20D20D00D00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldInsert_20D20D00D00D),
    Rule::Get<Spec::ESSL, 320, Shader::ALL, 0>(&textureGatherOffsets_00U20B70D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00U20B70D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(
        &textureGatherOffsetsExt_00U20B70D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00Z20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00Z20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_10D10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_10D10D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&degrees_20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&degrees_20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&tanh_00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&tanh_00B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProjOffset_00J30B20D00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProjOffset_00J30B20D00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&all_30F),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&all_30F),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&abs_20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&abs_20D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&abs_20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&abs_20B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&inversesqrt_00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&inversesqrt_00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&matrixCompMult_D0BD0B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&lessThanEqual_10B10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&lessThanEqual_10B10B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldReverse_20D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldReverse_20D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldReverse_20E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldReverse_20E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGrad_00S30B20B20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGrad_00S30B20B20B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&equal_10D10D),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&equal_10D10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_30D00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_30D00D),
    Rule::Get<Spec::ESSL, 310, Shader::COMPUTE, 0>(&groupMemoryBarrier_),
    Rule::Get<Spec::GLSL, 430, Shader::COMPUTE, 0>(&groupMemoryBarrier_),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&mix_00B00B00F),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&mix_00B00B00F),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGradOffset_00R20B10B10B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGradOffset_00R20B10B10B10D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageLoad_01A10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&intBitsToFloat_30D),
    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&intBitsToFloat_30D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProj_00I20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProj_00I20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetch_00I10D00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetch_00I10D00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_01I20D30B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&min_30B30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&min_30B30B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexAtomicCounterBuffers),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexAtomicCounterBuffers),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLodOffset_00S20B00B20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLodOffset_00S20B00B20D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00R10B10D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00R10B10D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&acos_00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&acos_00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&fract_10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&fract_10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&transpose_E0B),
    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&transpose_E0B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&intBitsToFloat_00D),
    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&intBitsToFloat_00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGradOffset_00J20B20B20B20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00J20B20B20B20D),
    Rule::Get<Spec::ESSL, 320, Shader::ALL, 0>(&textureGatherOffsets_00f20B00B70D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00f20B00B70D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(
        &textureGatherOffsetsExt_00f20B00B70D),
    Rule::Get<Spec::ESSL, 100, Shader::ALL, EXT_INDEX(EXT_shader_texture_lod)>(
        &texture2DGradEXT_00I10B10B10B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldInsert_00E00E00D00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldInsert_00E00E00D00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicXor_00D00D),
    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicXor_00D00D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&greaterThan_20B20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&greaterThan_20B20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLodOffset_00I10B00B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLodOffset_00I10B00B10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetch_00Y20D00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetch_00Y20D00D),
    Rule::Get<Spec::ESSL, 100, Shader::ALL, EXT_INDEX(EXT_shader_texture_lod)>(
        &texture2DProjGradEXT_00I30B10B10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00d20B10B10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00d20B10B10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjOffset_00R30B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjOffset_00R30B10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureOffset_00U20B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureOffset_00U20B10D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&atan_10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&atan_10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&modf_10B10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&modf_10B10B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&min_30B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&min_30B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&determinant_50B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&lessThan_20B20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&lessThan_20B20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicAnd_00D00D),
    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicAnd_00D00D),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_FragColor),
    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_FragColor),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&exp_10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&exp_10B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProjOffset_00I20B10D00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProjOffset_00I20B10D00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&step_00B10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&step_00B10B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitCount_30D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitCount_30D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLod_00I20B00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLod_00I20B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&unpackUnorm2x16_00E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&unpackUnorm2x16_00E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(EXT_YUV_target)>(&rgb_2_yuv_20B00H),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&sqrt_20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&sqrt_20B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&sign_20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&sign_20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&sign_20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&sign_20D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&atanh_00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&atanh_00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGradOffset_00X10B10B10B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00X10B10B10B10D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&TableBase::m_gl_DepthRange),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_DepthRange),
    Rule::Get<Spec::ESSL, 320, Shader::ALL, 0>(&textureGatherOffsets_00I10B70D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00I10B70D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(
        &textureGatherOffsetsExt_00I10B70D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imulExtended_10D10D10D10D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&imulExtended_10D10D10D10D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&atan_20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&atan_20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(OES_EGL_image_external_essl3)>(
        &texture_00M10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexOutputVectors),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexOutputVectors),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00T20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00T20B),
    Rule::Get<Spec::ESSL, 310, Shader::GEOMETRY_EXT, EXT_INDEX(EXT_geometry_shader)>(
        &TableBase::m_gl_PerVertex),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&log2_10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&log2_10B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&min_10B10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&min_10B10B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxImageUnits),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxImageUnits),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&pow_10B10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&pow_10B10B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findLSB_20E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findLSB_20E),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findLSB_20D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findLSB_20D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00Y20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00Y20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&packUnorm4x8_30B),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&packUnorm4x8_30B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00X10B00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00X10B00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&frexp_00B00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&frexp_00B00D),
    Rule::Get<Spec::ESSL, 100, Shader::ALL, 0>(&texture2D_00I10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&texture2D_00I10B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&notFunc_10F),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&notFunc_10F),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&texelFetch_00P10D00D),
    Rule::Get<Spec::GLSL, 150, Shader::ALL, 0>(&texelFetch_00P10D00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(ANGLE_texture_multisample)>(
        &texelFetchExt_00P10D00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&lessThan_10E10E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&lessThan_10E10E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&ceil_20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&ceil_20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLodOffset_00R10B00B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLodOffset_00R10B00B10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_10D10D10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_10D10D10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(OES_EGL_image_external_essl3)>(
        &texelFetch_00M10D00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(ARB_texture_rectangle)>(&texture_00O10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&transpose_F0B),
    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&transpose_F0B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureOffset_00Y20B20D00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureOffset_00Y20B20D00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGradOffset_00S20B20B20B20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00S20B20B20B20D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicXor_00E00E),
    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicXor_00E00E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjOffset_00R20B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjOffset_00R20B10D),
    Rule::Get<Spec::ESSL, 0, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_FragCoord),
    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_FragCoord),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_30E30E30E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_30E30E30E),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, EXT_INDEX(EXT_YUV_target)>(&textureProj_00N30B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00R00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00R00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxFragmentImageUniforms),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxFragmentImageUniforms),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&normalize_00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&normalize_00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureOffset_00I10B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureOffset_00I10B10D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicExchange_00E00E),
    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicExchange_00E00E),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProj_00I30B00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProj_00I30B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&acosh_10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&acosh_10B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxCombinedShaderOutputResources),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxCombinedShaderOutputResources),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicOr_00E00E),
    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicOr_00E00E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&min_20B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&min_20B00B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, EXT_INDEX(OES_EGL_image_external_essl3)>(
        &textureProj_00M30B00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicMax_00D00D),
    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicMax_00D00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(OES_EGL_image_external_essl3)>(
        &textureProj_00M20B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00I10B00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00I10B00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&reflect_00B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&reflect_00B00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mod_20B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mod_20B00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&lessThan_20D20D),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&lessThan_20D20D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&reflect_10B10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&reflect_10B10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&floatBitsToUint_10B),
    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&floatBitsToUint_10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00J20B00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00J20B00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&sqrt_10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&sqrt_10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLod_00S30B00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLod_00S30B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_20E20E20E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_20E20E20E),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicAnd_00E00E),
    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicAnd_00E00E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_20D00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_20D00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00I00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00I00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeAtomicCounterBuffers),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeAtomicCounterBuffers),
    Rule::Get<Spec::ESSL, 310, Shader::GEOMETRY_EXT, EXT_INDEX(EXT_geometry_shader)>(
        &BuiltInVariable::kgl_PrimitiveIDIn),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetchOffset_00R10D00D10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetchOffset_00R10D00D10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&isinf_30B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&isinf_30B),
    Rule::Get<Spec::ESSL, 320, Shader::ALL, 0>(&textureGatherOffsets_00U20B70D00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00U20B70D00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(
        &textureGatherOffsetsExt_00U20B70D00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00I10B10D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00I10B10D),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureOffset_00L20B10D00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureOffset_00L20B10D00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLodOffset_00X10B00B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLodOffset_00X10B00B10D),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00T20B00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00T20B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureOffset_00L20B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureOffset_00L20B10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&lessThanEqual_30E30E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&lessThanEqual_30E30E),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureOffset_00J20B20D00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureOffset_00J20B20D00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00a20B10D00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00a20B10D00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_10E00E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_10E00E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&log_30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&log_30B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_01J20D30D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicCounter_00G),
    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&atomicCounter_00G),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjOffset_00S30B20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjOffset_00S30B20D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageLoad_01I20D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&round_00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&round_00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&smoothstep_00B00B20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&smoothstep_00B00B20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageLoad_01H20D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00K20B),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00K20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldInsert_30D30D00D00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldInsert_30D30D00D00D),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&fwidth_10B),
    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&fwidth_10B),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(
        &fwidthExt_10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLod_00R20B00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLod_00R20B00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&notEqual_30D30D),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&notEqual_30D30D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&refract_10B10B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&refract_10B10B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjOffset_00I20B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjOffset_00I20B10D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&greaterThan_30D30D),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&greaterThan_30D30D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&greaterThan_10D10D),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&greaterThan_10D10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00U20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00U20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00a00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00a00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldExtract_10E00D00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldExtract_10E00D00D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxDrawBuffers),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxDrawBuffers),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00U20B10D00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00U20B10D00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLod_00J30B00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLod_00J30B00B),
    Rule::Get<Spec::ESSL, 100, Shader::ALL, EXT_INDEX(ARB_texture_rectangle)>(
        &texture2DRect_00O10B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imulExtended_20D20D20D20D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&imulExtended_20D20D20D20D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&any_30F),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&any_30F),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&distance_30B30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&distance_30B30B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&greaterThan_20D20D),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&greaterThan_20D20D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureOffset_00a20B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureOffset_00a20B10D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&greaterThan_30B30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&greaterThan_30B30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&trunc_00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&trunc_00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&sinh_30B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&sinh_30B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&length_10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&length_10B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findMSB_10E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findMSB_10E),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findMSB_10D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findMSB_10D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&dot_00B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&dot_00B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&asinh_20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&asinh_20B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&dot_30B30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&dot_30B30B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitCount_00E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitCount_00E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&tan_30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&tan_30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00T20B00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00T20B00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_00z10D30B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&usubBorrow_20E20E20E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&usubBorrow_20E20E20E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGrad_00R30B10B10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGrad_00R30B10B10B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&exp2_10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&exp2_10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(ARB_texture_rectangle)>(&textureProj_00O20B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProjOffset_00X20B10D00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProjOffset_00X20B10D00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&outerProduct_10B20B),
    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&outerProduct_10B20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_geometry_shader)>(
        &TableBase::m_gl_MaxGeometryAtomicCounterBuffers),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGradOffset_00X30B10B10B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGradOffset_00X30B10B10B10D),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureOffset_00I10B10D00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureOffset_00I10B10D00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&clamp_30B00B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&clamp_30B00B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&inverse_50B),
    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&inverse_50B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&lessThan_20E20E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&lessThan_20E20E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&dot_10B10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&dot_10B10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&unpackHalf2x16_00E),
    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&unpackHalf2x16_00E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&matrixCompMult_A0BA0B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&matrixCompMult_A0BA0B),
    Rule::Get<Spec::ESSL, 100, Shader::VERTEX, 0>(&texture2DProjLod_00I20B00B),
    Rule::Get<Spec::GLSL, 0, Shader::VERTEX, 0>(&texture2DProjLod_00I20B00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(OES_texture_storage_multisample_2d_array)>(
        &texelFetchExt_00W20D00D),
    Rule::Get<Spec::ESSL, 100, Shader::ALL, EXT_INDEX(ARB_texture_rectangle)>(
        &texture2DRectProj_00O30B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&radians_20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&radians_20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00S20B20B20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00S20B20B20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_10D00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_10D00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&round_30B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&round_30B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeTextureImageUnits),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeTextureImageUnits),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_00D00D00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_00D00D00D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&sin_30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&sin_30B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&floor_30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&floor_30B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProj_00S30B00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProj_00S30B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00Y20B20B20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00Y20B20B20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxCombinedAtomicCounters),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxCombinedAtomicCounters),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00L20B00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00L20B00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGradOffset_00S30B20B20B20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGradOffset_00S30B20B20B20D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_01A10D30D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_geometry_shader)>(
        &TableBase::m_gl_MaxGeometryOutputVertices),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00J20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00J20B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexTextureImageUnits),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexTextureImageUnits),
    Rule::Get<Spec::ESSL, 0, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_PointCoord),
    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_PointCoord),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&dFdx_20B),
    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&dFdx_20B),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(&dFdxExt_20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_01F20D30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProj_00X20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProj_00X20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_10E10E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_10E10E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&max_30B30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&max_30B30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_10E10E10E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_10E10E10E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetchOffset_00S20D00D20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetchOffset_00S20D00D20D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(EXT_YUV_target)>(&texture_00N10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00L20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00L20B),
    Rule::Get<Spec::ESSL, 310, Shader::COMPUTE, 0>(&barrier_),
    Rule::Get<Spec::GLSL, 400, Shader::COMPUTE, 0>(&barrier_),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_geometry_shader)>(
        &TableBase::m_gl_MaxGeometryUniformComponents),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&greaterThanEqual_20E20E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&greaterThanEqual_20E20E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&lessThan_10D10D),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&lessThan_10D10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetchOffset_00a20D00D10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetchOffset_00a20D00D10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGradOffset_00X20B10B10B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGradOffset_00X20B10B10B10D),
    Rule::Get<Spec::ESSL, 100, Shader::ALL, 0>(&texture2DProj_00I20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&texture2DProj_00I20B),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_texture_3D)>(
        &texture3DProjLod_00J30B00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&notFunc_20F),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&notFunc_20F),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findMSB_20D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findMSB_20D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findMSB_20E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findMSB_20E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetchOffset_00I10D00D10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetchOffset_00I10D00D10D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00I10B00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00I10B00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&texelFetch_00V10D00D),
    Rule::Get<Spec::GLSL, 150, Shader::ALL, 0>(&texelFetch_00V10D00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(ANGLE_texture_multisample)>(
        &texelFetchExt_00V10D00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&outerProduct_20B20B),
    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&outerProduct_20B20B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&atan_30B30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&atan_30B30B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&unpackSnorm4x8_00E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&unpackSnorm4x8_00E),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitCount_30E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitCount_30E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLodOffset_00R20B00B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLodOffset_00R20B00B10D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&log_20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&log_20B),
    Rule::Get<Spec::ESSL, 320, Shader::ALL, 0>(&textureGatherOffsets_00R10B70D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00R10B70D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(
        &textureGatherOffsetsExt_00R10B70D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&asin_30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&asin_30B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00f20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&modf_30B30B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&modf_30B30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00y10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00y10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&isnan_20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&isnan_20B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&max_00B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&max_00B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&roundEven_20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&roundEven_20B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&fwidth_00B),
    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&fwidth_00B),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(
        &fwidthExt_00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGrad_00J30B20B20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGrad_00J30B20B20B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&dFdy_10B),
    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&dFdy_10B),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(&dFdyExt_10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&outerProduct_30B10B),
    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&outerProduct_30B10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&floatBitsToInt_30B),
    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&floatBitsToInt_30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProj_00J30B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProj_00J30B),
    Rule::Get<Spec::ESSL, 310, Shader::GEOMETRY_EXT, EXT_INDEX(EXT_geometry_shader)>(
        &BuiltInVariable::kgl_InvocationID),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_30E00E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_30E00E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&exp2_20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&exp2_20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00d20B00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00d20B00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&radians_10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&radians_10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetch_00U20D00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetch_00U20D00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeWorkGroupSize),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeWorkGroupSize),
    Rule::Get<Spec::ESSL, 300, Shader::VERTEX, EXT_INDEX(ANGLE_base_vertex_base_instance)>(
        &BuiltInVariable::kgl_BaseVertex),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_00D00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_00D00D),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(EXT_shader_framebuffer_fetch)>(
        &TableBase::m_gl_LastFragData),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(NV_shader_framebuffer_fetch)>(
        &TableBase::m_gl_LastFragDataNV),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&ceil_30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&ceil_30B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicMin_00E00E),
    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicMin_00E00E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxCombinedTextureImageUnits),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxCombinedTextureImageUnits),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitCount_10E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitCount_10E),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00S20B00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00S20B00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00e20B00B),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00e20B00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&TableBase::m_gl_DepthRangeParameters),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_DepthRangeParameters),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&distance_10B10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&distance_10B10B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&reflect_20B20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&reflect_20B20B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mod_10B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mod_10B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&uintBitsToFloat_10E),
    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&uintBitsToFloat_10E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00Z20B20B20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00Z20B20B20B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&equal_10F10F),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&equal_10F10F),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&cosh_00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&cosh_00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldReverse_00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldReverse_00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldReverse_00E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldReverse_00E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_20E20E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_20E20E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&matrixCompMult_70B70B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldExtract_30E00D00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldExtract_30E00D00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00I10B00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00I10B00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&greaterThanEqual_10D10D),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&greaterThanEqual_10D10D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageSize_01F),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00e30B00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00e30B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLodOffset_00Y20B00B20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLodOffset_00Y20B00B20D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&log2_00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&log2_00B),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(NV_shader_framebuffer_fetch)>(
        &BuiltInVariable::kgl_LastFragColor),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&abs_10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&abs_10D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&abs_10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&abs_10B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&acos_30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&acos_30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&tanh_10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&tanh_10B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&degrees_30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&degrees_30B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_01E20D30E),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&dFdx_10B),
    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&dFdx_10B),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(&dFdxExt_10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjOffset_00I30B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjOffset_00I30B10D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldReverse_30E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldReverse_30E),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldReverse_30D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldReverse_30D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&inversesqrt_30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&inversesqrt_30B),
    Rule::Get<Spec::ESSL, 310, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_LocalInvocationID),
    Rule::Get<Spec::GLSL, 0, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_LocalInvocationID),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&clamp_00B00B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&clamp_00B00B00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00d10B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&frexp_20B20D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&frexp_20B20D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&intBitsToFloat_20D),
    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&intBitsToFloat_20D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&fract_00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&fract_00B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_FragDepth),
    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_FragDepth),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_30E00E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_30E00E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&exp_20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&exp_20B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&equal_20B20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&equal_20B20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLodOffset_00X20B00B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLodOffset_00X20B00B10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&acosh_00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&acosh_00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&log_10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&log_10B),
    Rule::Get<Spec::ESSL, 100, Shader::ALL, 0>(&textureVideoWEBGL_00y10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&textureVideoWEBGL_00y10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLodOffset_00S30B00B20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLodOffset_00S30B00B20D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&sinh_20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&sinh_20B),
    Rule::Get<Spec::ESSL, 320, Shader::ALL, 0>(&fma_10B10B10B),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&fma_10B10B10B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(&fmaExt_10B10B10B),
    Rule::Get<Spec::ESSL, 320, Shader::ALL, 0>(&textureGatherOffsets_00a20B70D00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00a20B70D00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(
        &textureGatherOffsetsExt_00a20B70D00D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&reflect_30B30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&reflect_30B30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&outerProduct_30B20B),
    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&outerProduct_30B20B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00U20B00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00U20B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00S20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00S20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageLoad_01F20D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&outerProduct_20B10B),
    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&outerProduct_20B10B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&umulExtended_10E10E10E10E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&umulExtended_10E10E10E10E),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00Z20B00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00Z20B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGradOffset_00a20B10B10B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00a20B10B10B10D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&notEqual_20F20F),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&notEqual_20F20F),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mod_30B30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mod_30B30B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldExtract_10D00D00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldExtract_10D00D00D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&sign_30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&sign_30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&sign_30D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&sign_30D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&pow_00B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&pow_00B00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mod_00B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mod_00B00B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00Y20B00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00Y20B00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&notEqual_30B30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&notEqual_30B30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&roundEven_10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&roundEven_10B),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(EXT_shader_texture_lod)>(
        &texture2DProjLodEXT_00I30B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&atanh_30B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&atanh_30B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&dFdy_20B),
    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&dFdy_20B),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(&dFdyExt_20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProj_00Y30B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProj_00Y30B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitCount_20D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitCount_20D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&step_00B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&step_00B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetch_00L20D00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetch_00L20D00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&memoryBarrierBuffer_),
    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&memoryBarrierBuffer_),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&isinf_00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&isinf_00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageSize_00z),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&distance_20B20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&distance_20B20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00U20B10B10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00U20B10B10B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&uaddCarry_30E30E30E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&uaddCarry_30E30E30E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mod_30B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mod_30B00B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00K20B00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00K20B00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxCombinedImageUniforms),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxCombinedImageUniforms),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(EXT_YUV_target)>(&yuv_2_rgb_20B00H),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00f20B00B),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00f20B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&greaterThan_20E20E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&greaterThan_20E20E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00a20B10B10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00a20B10B10B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureOffset_00U20B10D00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureOffset_00U20B10D00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&intBitsToFloat_10D),
    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&intBitsToFloat_10D),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00J20B00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00J20B00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&refract_20B20B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&refract_20B20B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLod_00I30B00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLod_00I30B00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&refract_00B00B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&refract_00B00B00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findLSB_10D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findLSB_10D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findLSB_10E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findLSB_10E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&mix_10B10B10F),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&mix_10B10B10F),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mix_10B10B10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mix_10B10B10B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProj_00Y30B00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProj_00Y30B00B),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_texture_3D)>(&texture3D_00J20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&transpose_D0B),
    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&transpose_D0B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&log2_30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&log2_30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00J20B20B20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00J20B20B20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGrad_00d30B10B10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGrad_00d30B10B10B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&fract_30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&fract_30B),
    Rule::Get<Spec::ESSL, 310, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_LocalInvocationIndex),
    Rule::Get<Spec::GLSL, 0, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_LocalInvocationIndex),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00J00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00J00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00I10B10D00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00I10B10D00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00X10B00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00X10B00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetchOffset_00U20D00D10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetchOffset_00U20D00D10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLodOffset_00Y30B00B20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLodOffset_00Y30B00B20D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00e00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00e00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&notEqual_20E20E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&notEqual_20E20E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLodOffset_00d20B00B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLodOffset_00d20B00B10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&inverse_A0B),
    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&inverse_A0B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGrad_00X20B10B10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGrad_00X20B10B10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_30E30E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_30E30E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&isnan_30B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&isnan_30B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imulExtended_00D00D00D00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&imulExtended_00D00D00D00D),
    Rule::Get<Spec::ESSL, 310, Shader::GEOMETRY_EXT, EXT_INDEX(EXT_geometry_shader)>(
        &TableBase::m_gl_in),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&atan_20B20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&atan_20B20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&usubBorrow_00E00E00E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&usubBorrow_00E00E00E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLodOffset_00J30B00B20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLodOffset_00J30B00B20D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&frexp_30B30D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&frexp_30B30D),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(EXT_blend_func_extended)>(
        &TableBase::m_gl_SecondaryFragDataEXT),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_30E30E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_30E30E),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageLoad_01B10D),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, 0>(&texture2DProj_00I30B00B),
    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&texture2DProj_00I30B00B),
    Rule::Get<Spec::ESSL, 100, Shader::ALL, EXT_INDEX(EXT_shader_texture_lod)>(
        &textureCubeGradEXT_00K20B20B20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00I10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00I10B),
    Rule::Get<Spec::ESSL, 320, Shader::ALL, 0>(&textureGatherOffsets_00d10B00B70D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00d10B00B70D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(
        &textureGatherOffsetsExt_00d10B00B70D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&min_00B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&min_00B00B),
    Rule::Get<Spec::ESSL, 300, Shader::VERTEX, 0>(&BuiltInVariable::kgl_InstanceID),
    Rule::Get<Spec::GLSL, 0, Shader::VERTEX, 0>(&BuiltInVariable::kgl_InstanceID),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(OES_texture_storage_multisample_2d_array)>(
        &texelFetchExt_00c20D00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexImageUniforms),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexImageUniforms),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&sqrt_00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&sqrt_00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&normalize_20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&normalize_20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxFragmentAtomicCounterBuffers),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxFragmentAtomicCounterBuffers),
    Rule::Get<Spec::ESSL, 310, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_WorkGroupID),
    Rule::Get<Spec::GLSL, 0, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_WorkGroupID),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&degrees_00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&degrees_00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&inverse_F0B),
    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&inverse_F0B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_20E00E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_20E00E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLod_00R30B00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLod_00R30B00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureSize_00P),
    Rule::Get<Spec::GLSL, 150, Shader::ALL, 0>(&textureSize_00P),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(ANGLE_texture_multisample)>(
        &textureSizeExt_00P),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGradOffset_00d20B10B10B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00d20B10B10B10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLodOffset_00R30B00B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLodOffset_00R30B00B10D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&atan_00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&atan_00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicExchange_00D00D),
    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicExchange_00D00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00R10B10D00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00R10B10D00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_geometry_shader)>(
        &TableBase::m_gl_MaxGeometryAtomicCounters),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, 0>(&texture2D_00I10B00B),
    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&texture2D_00I10B00B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProj_00X20B00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProj_00X20B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_20D20D20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_20D20D20D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&greaterThan_30E30E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&greaterThan_30E30E),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&frexp_10B10D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&frexp_10B10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_10E00E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_10E00E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&smoothstep_00B00B10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&smoothstep_00B00B10B),
    Rule::Get<Spec::ESSL, 310, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_GlobalInvocationID),
    Rule::Get<Spec::GLSL, 0, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_GlobalInvocationID),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&matrixCompMult_60B60B),
    Rule::Get<Spec::ESSL, 310, Shader::COMPUTE, 0>(&memoryBarrierShared_),
    Rule::Get<Spec::GLSL, 430, Shader::COMPUTE, 0>(&memoryBarrierShared_),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&normalize_10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&normalize_10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&unpackSnorm2x16_00E),
    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&unpackSnorm2x16_00E),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageLoad_00z10D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&lessThan_30D30D),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&lessThan_30D30D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&atan_00B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&atan_00B00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldExtract_20D00D00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldExtract_20D00D00D),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00L20B00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00L20B00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&notEqual_10B10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&notEqual_10B10B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageLoad_01G20D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldExtract_00E00D00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldExtract_00E00D00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicCompSwap_00D00D00D),
    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicCompSwap_00D00D00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&trunc_30B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&trunc_30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&matrixCompMult_E0BE0B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&length_00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&length_00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&any_20F),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&any_20F),
    Rule::Get<Spec::ESSL, 320, Shader::ALL, 0>(&textureGatherOffsets_00L20B70D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00L20B70D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(
        &textureGatherOffsetsExt_00L20B70D),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProj_00X30B00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProj_00X30B00B),
    Rule::Get<Spec::ESSL, 310, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_HelperInvocation),
    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_HelperInvocation),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00L20B),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00L20B),
    Rule::Get<Spec::ESSL, 300, Shader::NOT_COMPUTE, EXT_INDEX(OVR_multiview)>(
        &BuiltInVariable::kgl_ViewID_OVR),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&floor_10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&floor_10B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&sin_10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&sin_10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(EXT_YUV_target)>(&textureSize_00N00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetchOffset_00J20D00D20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetchOffset_00J20D00D20D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&tan_00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&tan_00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mod_20B20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mod_20B20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageLoad_01J20D),
    Rule::Get<Spec::ESSL, 310, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_WorkGroupSize),
    Rule::Get<Spec::GLSL, 0, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_WorkGroupSize),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&asinh_30B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&asinh_30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&outerProduct_10B30B),
    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&outerProduct_10B30B),
    Rule::Get<Spec::ESSL, 100, Shader::ALL, 0>(&textureCube_00K20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&textureCube_00K20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(OES_texture_storage_multisample_2d_array)>(
        &textureSizeExt_00c),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureSize_00b),
    Rule::Get<Spec::GLSL, 150, Shader::ALL, 0>(&textureSize_00b),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(ANGLE_texture_multisample)>(
        &textureSizeExt_00b),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&cos_00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&cos_00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&min_20B20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&min_20B20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGradOffset_00f30B10B10B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00f30B10B10B10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_20D20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_20D20D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProj_00I30B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProj_00I30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_10D10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_10D10D),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureOffset_00a20B10D00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureOffset_00a20B10D00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00X10B),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00X10B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&pow_30B30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&pow_30B30B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00a20B),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00a20B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&smoothstep_10B10B10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&smoothstep_10B10B10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(ARB_texture_rectangle)>(&textureProj_00O30B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00d10B00B10D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00d10B00B10D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&refract_30B30B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&refract_30B30B00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldInsert_20E20E00D00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldInsert_20E20E00D00D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&floor_20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&floor_20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&equal_20E20E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&equal_20E20E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mix_00B00B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mix_00B00B00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageSize_01B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&greaterThanEqual_20B20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&greaterThanEqual_20B20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&uaddCarry_00E00E00E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&uaddCarry_00E00E00E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&sin_20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&sin_20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageLoad_01K20D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(OES_texture_storage_multisample_2d_array)>(
        &textureSizeExt_00Q),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&round_20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&round_20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&matrixCompMult_90B90B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLod_00d30B00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLod_00d30B00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(OES_texture_storage_multisample_2d_array)>(
        &textureSizeExt_00W),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLod_00X20B00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLod_00X20B00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxCombinedAtomicCounterBuffers),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxCombinedAtomicCounterBuffers),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&isnan_00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&isnan_00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&umulExtended_30E30E30E30E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&umulExtended_30E30E30E30E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&faceforward_30B30B30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&faceforward_30B30B30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGradOffset_00Y20B20B20B20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00Y20B20B20B20D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_30E00E00E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_30E00E00E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&asin_00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&asin_00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&ceil_00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&ceil_00B),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_texture_3D)>(&texture3D_00J20B00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&distance_00B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&distance_00B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00a20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00a20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00a20B10D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00a20B10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00f30B10B10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00f30B10B10B),
    Rule::Get<Spec::ESSL, 100, Shader::ALL, 0>(&texture2DProj_00I30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&texture2DProj_00I30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&modf_20B20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&modf_20B20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGradOffset_00I10B10B10B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00I10B10B10B10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&notEqual_30E30E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&notEqual_30E30E),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00I10B),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00I10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&lessThanEqual_10E10E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&lessThanEqual_10E10E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&inversesqrt_20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&inversesqrt_20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLodOffset_00J20B00B20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLodOffset_00J20B00B20D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_30D30D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_30D30D),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureOffset_00R10B10D00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureOffset_00R10B10D00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00e30B20B20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00e30B20B20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicAdd_00E00E),
    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicAdd_00E00E),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_geometry_shader)>(
        &TableBase::m_gl_MaxGeometryInputComponents),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findMSB_30E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findMSB_30E),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findMSB_30D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findMSB_30D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00X10B10B10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00X10B10B10B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&length_30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&length_30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&greaterThanEqual_30E30E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&greaterThanEqual_30E30E),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&fwidth_30B),
    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&fwidth_30B),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(
        &fwidthExt_30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00K20B20B20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00K20B20B20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&mix_20B20B20F),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&mix_20B20B20F),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetch_00S20D00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetch_00S20D00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGradOffset_00U20B10B10B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00U20B10B10B10D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mix_20B20B20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mix_20B20B20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&floatBitsToInt_10B),
    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&floatBitsToInt_10B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&max_10B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&max_10B00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00L20B10D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00L20B10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00a20B00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00a20B00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&any_10F),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&any_10F),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGradOffset_00d30B10B10B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGradOffset_00d30B10B10B10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(EXT_YUV_target)>(&textureProj_00N30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&TableBase::m_gl_MaxProgramTexelOffset),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxProgramTexelOffset),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&exp2_30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&exp2_30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetchOffset_00L20D00D10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetchOffset_00L20D00D10D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&equal_30D30D),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&equal_30D30D),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_texture_3D)>(
        &texture3DProj_00J30B00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_01D20D30D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&packSnorm2x16_10B),
    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&packSnorm2x16_10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&floatBitsToUint_30B),
    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&floatBitsToUint_30B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&lessThanEqual_30D30D),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&lessThanEqual_30D30D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_geometry_shader)>(
        &TableBase::m_gl_MaxGeometryImageUniforms),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&asinh_00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&asinh_00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureOffset_00R10B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureOffset_00R10B10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&greaterThanEqual_10E10E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&greaterThanEqual_10E10E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGradOffset_00I30B10B10B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGradOffset_00I30B10B10B10D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00Z20B),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00Z20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureOffset_00X10B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureOffset_00X10B10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&cosh_30B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&cosh_30B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureOffset_00d20B10D00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureOffset_00d20B10D00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00R10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00R10B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureOffset_00S20B20D00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureOffset_00S20B20D00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&usubBorrow_30E30E30E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&usubBorrow_30E30E30E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&radians_00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&radians_00B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProjOffset_00R20B10D00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProjOffset_00R20B10D00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&ldexp_30B30D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&ldexp_30B30D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&max_30B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&max_30B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_20D20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_20D20D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_01K20D30E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&step_10B10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&step_10B10B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, EXT_INDEX(EXT_blend_func_extended)>(
        &TableBase::m_gl_MaxDualSourceDrawBuffersEXT),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&step_30B30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&step_30B30B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldReverse_10E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldReverse_10E),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldReverse_10D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldReverse_10D),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_texture_3D)>(&texture3DProj_00J30B),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(EXT_frag_depth)>(
        &TableBase::m_gl_FragDepthEXT),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&matrixCompMult_B0BB0B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&lessThan_30B30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&lessThan_30B30B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&cross_20B20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&cross_20B20B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&all_10F),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&all_10F),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&clamp_20B00B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&clamp_20B00B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&tanh_20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&tanh_20B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&dFdx_00B),
    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&dFdx_00B),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(&dFdxExt_00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&matrixCompMult_F0BF0B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&matrixCompMult_F0BF0B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjOffset_00Y30B20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjOffset_00Y30B20D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&abs_00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&abs_00D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&abs_00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&abs_00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00R10B00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00R10B00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&step_20B20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&step_20B20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxFragmentAtomicCounters),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxFragmentAtomicCounters),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLodOffset_00U20B00B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLodOffset_00U20B00B10D),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProj_00R20B00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProj_00R20B00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&faceforward_20B20B20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&faceforward_20B20B20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageSize_01E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&acos_20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&acos_20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetch_00X10D00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetch_00X10D00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&sinh_00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&sinh_00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageSize_01A),
    Rule::Get<Spec::ESSL, 100, Shader::VERTEX, 0>(&texture2DLod_00I10B00B),
    Rule::Get<Spec::GLSL, 0, Shader::VERTEX, 0>(&texture2DLod_00I10B00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&memoryBarrierAtomicCounter_),
    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&memoryBarrierAtomicCounter_),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&texelFetch_00b10D00D),
    Rule::Get<Spec::GLSL, 150, Shader::ALL, 0>(&texelFetch_00b10D00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(ANGLE_texture_multisample)>(
        &texelFetchExt_00b10D00D),
    Rule::Get<Spec::ESSL, 320, Shader::ALL, 0>(&fma_20B20B20B),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&fma_20B20B20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(&fmaExt_20B20B20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxAtomicCounterBufferSize),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxAtomicCounterBufferSize),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&max_20B20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&max_20B20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00f20B00B10D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00f20B00B10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&outerProduct_30B30B),
    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&outerProduct_30B30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&lessThanEqual_20E20E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&lessThanEqual_20E20E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00X10B00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00X10B00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&exp_30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&exp_30B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&memoryBarrier_),
    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&memoryBarrier_),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageSize_01D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&step_00B30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&step_00B30B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitCount_10D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitCount_10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&equal_30E30E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&equal_30E30E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&sign_00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&sign_00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&log_00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&log_00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00Z20B00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00Z20B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&sign_00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&sign_00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureOffset_00Y20B20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureOffset_00Y20B20D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&transpose_60B),
    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&transpose_60B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findMSB_00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findMSB_00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_geometry_shader)>(
        &TableBase::m_gl_MaxGeometryTotalOutputComponents),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&acosh_30B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&acosh_30B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findMSB_00E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findMSB_00E),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldExtract_20E00D00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldExtract_20E00D00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&uintBitsToFloat_20E),
    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&uintBitsToFloat_20E),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&unpackUnorm4x8_00E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&unpackUnorm4x8_00E),
    Rule::Get<Spec::ESSL, 100, Shader::ALL, 0>(&texture2DProj_00M20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetchOffset_00X10D00D10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetchOffset_00X10D00D10D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mod_10B10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mod_10B10B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00d20B00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00d20B00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&notEqual_10D10D),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&notEqual_10D10D),
    Rule::Get<Spec::ESSL, 100, Shader::ALL, 0>(&texture2DProj_00M30B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureSize_00V),
    Rule::Get<Spec::GLSL, 150, Shader::ALL, 0>(&textureSize_00V),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(ANGLE_texture_multisample)>(
        &textureSizeExt_00V),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&packUnorm2x16_10B),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&packUnorm2x16_10B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&faceforward_00B00B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&faceforward_00B00B00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&umulExtended_20E20E20E20E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&umulExtended_20E20E20E20E),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureOffset_00X10B10D00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureOffset_00X10B10D00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&cos_30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&cos_30B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findLSB_30D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findLSB_30D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findLSB_30E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findLSB_30E),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitCount_20E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitCount_20E),
    Rule::Get<Spec::ESSL, 310, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_NumWorkGroups),
    Rule::Get<Spec::GLSL, 0, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_NumWorkGroups),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&equal_20D20D),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&equal_20D20D),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProjOffset_00Y30B20D00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProjOffset_00Y30B20D00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00U20B10D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00U20B10D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&faceforward_10B10B10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&faceforward_10B10B10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00L00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00L00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeUniformComponents),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeUniformComponents),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00R10B00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00R10B00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_01H20D30E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00Z00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00Z00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00U20B),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00U20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldExtract_30D00D00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldExtract_30D00D00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_10D00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_10D00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(OES_texture_storage_multisample_2d_array)>(
        &texelFetchExt_00Q20D00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_20E00E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_20E00E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProj_00S30B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProj_00S30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&roundEven_00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&roundEven_00B),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(EXT_shader_texture_lod)>(
        &texture2DLodEXT_00I10B00B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&dFdy_30B),
    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&dFdy_30B),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(&dFdyExt_30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&atanh_20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&atanh_20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_10E00E00E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_10E00E00E),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_01C20D30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_20D00D00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_20D00D00D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&all_20F),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&all_20F),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&isinf_10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&isinf_10B),
    Rule::Get<Spec::ESSL, 320, Shader::ALL, 0>(&textureGatherOffsets_00a20B70D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00a20B70D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(
        &textureGatherOffsetsExt_00a20B70D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageSize_01J),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageSize_01K),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageSize_01H),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageSize_01I),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&packHalf2x16_10B),
    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&packHalf2x16_10B),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, 0>(&texture2DProj_00I20B00B),
    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&texture2DProj_00I20B00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findLSB_00E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findLSB_00E),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findLSB_00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findLSB_00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjOffset_00X30B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjOffset_00X30B10D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageSize_01C),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&greaterThanEqual_30B30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&greaterThanEqual_30B30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00U00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00U00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGradOffset_00R10B10B10B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00R10B10B10B10D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageSize_01G),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&equal_30F30F),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&equal_30F30F),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldExtract_00D00D00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldExtract_00D00D00D),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(EXT_shader_texture_lod)>(
        &texture2DProjLodEXT_00I20B00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&notEqual_30F30F),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&notEqual_30F30F),
    Rule::Get<Spec::ESSL, 0, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_FrontFacing),
    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_FrontFacing),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(EXT_blend_func_extended)>(
        &BuiltInVariable::kgl_SecondaryFragColorEXT),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&inversesqrt_10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&inversesqrt_10B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeWorkGroupCount),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeWorkGroupCount),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&acos_10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&acos_10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&abs_30D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&abs_30D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxFragmentUniformVectors),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxFragmentUniformVectors),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&fract_20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&fract_20B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&abs_30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&abs_30B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&lessThan_10B10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&lessThan_10B10B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00X10B10D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00X10B10D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldInsert_10E10E00D00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldInsert_10E10E00D00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&packSnorm4x8_30B),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&packSnorm4x8_30B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mix_10B10B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mix_10B10B00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageLoad_01E20D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_30D30D30D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_30D30D30D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00U20B00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00U20B00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00f00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00f00D),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, EXT_INDEX(EXT_YUV_target)>(&textureProj_00N20B00B),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, 0>(&TableBase::m_gl_FragData),
    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&TableBase::m_gl_FragData),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProj_00d30B00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProj_00d30B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_20E00E00E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_20E00E00E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00X10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00X10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProj_00d30B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProj_00d30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&mix_30B30B30F),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&mix_30B30B30F),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&determinant_F0B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&transpose_A0B),
    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&transpose_A0B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&pow_20B20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&pow_20B20B),
    Rule::Get<Spec::ESSL, 100, Shader::ALL, EXT_INDEX(EXT_shader_texture_lod)>(
        &texture2DProjGradEXT_00I20B10B10B),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(ARM_shader_framebuffer_fetch)>(
        &BuiltInVariable::kgl_LastFragColorARM),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00Z20B00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00Z20B00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00R10B),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00R10B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&lessThanEqual_20D20D),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&lessThanEqual_20D20D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00S20B00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00S20B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLod_00Y30B00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLod_00Y30B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&cosh_10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&cosh_10B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&sqrt_30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&sqrt_30B),
    Rule::Get<Spec::ESSL, 300, Shader::VERTEX, 0>(&BuiltInVariable::kgl_VertexID),
    Rule::Get<Spec::GLSL, 0, Shader::VERTEX, 0>(&BuiltInVariable::kgl_VertexID),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&sign_10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&sign_10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(OES_EGL_image_external_essl3)>(
        &textureProj_00M30B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&exp_00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&exp_00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_00E00E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_00E00E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_30D30D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_30D30D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&umulExtended_00E00E00E00E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&umulExtended_00E00E00E00E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexAttribs),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexAttribs),
    Rule::Get<Spec::ESSL, 300, Shader::VERTEX, EXT_INDEX(ANGLE_base_vertex_base_instance)>(
        &BuiltInVariable::kgl_BaseInstance),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&transpose_B0B),
    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&transpose_B0B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&fwidth_20B),
    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&fwidth_20B),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(
        &fwidthExt_20B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&smoothstep_00B00B30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&smoothstep_00B00B30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&floatBitsToInt_20B),
    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&floatBitsToInt_20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(OES_EGL_image_external_essl3)>(
        &textureSize_00M00D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&log2_20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&log2_20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&ldexp_10B10D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&ldexp_10B10D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&min_10B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&min_10B00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mix_30B30B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mix_30B30B00B),
    Rule::Get<Spec::ESSL, 0, Shader::VERTEX, EXT_INDEX(ANGLE_base_vertex_base_instance)>(
        &BuiltInVariable::kangle_BaseInstance),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&degrees_10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&degrees_10B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxTextureImageUnits),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxTextureImageUnits),
    Rule::Get<Spec::ESSL, 0, Shader::VERTEX, 0>(&BuiltInVariable::kgl_Position),
    Rule::Get<Spec::GLSL, 0, Shader::VERTEX, 0>(&BuiltInVariable::kgl_Position),
    Rule::Get<Spec::ESSL, 310, Shader::GEOMETRY_EXT, EXT_INDEX(EXT_geometry_shader)>(
        &TableBase::m_gl_PositionGS),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00K20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00K20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicCompSwap_00E00E00E),
    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicCompSwap_00E00E00E),
    Rule::Get<Spec::ESSL, 320, Shader::ALL, 0>(&fma_30B30B30B),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&fma_30B30B30B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(&fmaExt_30B30B30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&sinh_10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&sinh_10B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&atan_30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&atan_30B),
    Rule::Get<Spec::ESSL, 320, Shader::ALL, 0>(&textureGatherOffsets_00R10B70D00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00R10B70D00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(
        &textureGatherOffsetsExt_00R10B70D00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGradOffset_00L20B10B10B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00L20B10B10B10D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&ceil_10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&ceil_10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00S00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00S00D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&greaterThanEqual_10B10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&greaterThanEqual_10B10B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicCounterDecrement_00G),
    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&atomicCounterDecrement_00G),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, 0>(&textureCube_00K20B00B),
    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&textureCube_00K20B00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&dot_20B20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&dot_20B20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&transpose_90B),
    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&transpose_90B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&notFunc_30F),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&notFunc_30F),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLodOffset_00I20B00B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLodOffset_00I20B00B10D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&notEqual_10F10F),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&notEqual_10F10F),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGrad_00R20B10B10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGrad_00R20B10B10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00f30B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00f30B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&smoothstep_00B00B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&smoothstep_00B00B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLodOffset_00d30B00B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLodOffset_00d30B00B10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetch_00R10D00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetch_00R10D00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&cosh_20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&cosh_20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLodOffset_00I30B00B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLodOffset_00I30B00B10D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&normalize_30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&normalize_30B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&smoothstep_30B30B30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&smoothstep_30B30B30B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldInsert_10D10D00D00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldInsert_10D10D00D00D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&clamp_20B20B20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&clamp_20B20B20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00L20B10B10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00L20B10B10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00R10B10B10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00R10B10B10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGrad_00I20B10B10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGrad_00I20B10B10B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00e20B),
    Rule::Get<Spec::ESSL, 100, Shader::ALL, 0>(&texture2D_00M10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_00D00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_00D00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&outerProduct_10B10B),
    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&outerProduct_10B10B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&lessThanEqual_10D10D),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&lessThanEqual_10D10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&trunc_20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&trunc_20B),
    Rule::Get<Spec::ESSL, 100, Shader::ALL, 0>(&TableBase::m_gl_MaxVaryingVectors),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxVaryingVectors),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProjOffset_00I30B10D00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProjOffset_00I30B10D00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00d00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00d00D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&sin_00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&sin_00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexUniformVectors),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexUniformVectors),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(EXT_shader_texture_lod)>(
        &textureCubeLodEXT_00K20B00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00T20B00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00T20B00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(EXT_YUV_target)>(&textureProj_00N20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&uaddCarry_10E10E10E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&uaddCarry_10E10E10E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&tan_10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&tan_10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLodOffset_00L20B00B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLodOffset_00L20B00B10D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicCounterIncrement_00G),
    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&atomicCounterIncrement_00G),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&ldexp_20B20D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&ldexp_20B20D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&greaterThanEqual_30D30D),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&greaterThanEqual_30D30D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&notEqual_20B20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&notEqual_20B20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageLoad_01D20D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLodOffset_00X30B00B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLodOffset_00X30B00B10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&isinf_20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&isinf_20B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&cos_10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&cos_10B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mix_30B30B30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mix_30B30B30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00e30B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00e30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00T00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00T00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00X10B10D00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00X10B10D00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&equal_10E10E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&equal_10E10E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_10E10E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_10E10E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGradOffset_00Y30B20B20B20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGradOffset_00Y30B20B20B20D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00T20B20B20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00T20B20B20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&memoryBarrierImage_),
    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&memoryBarrierImage_),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjOffset_00J30B20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjOffset_00J30B20D),
    Rule::Get<Spec::ESSL, 310, Shader::GEOMETRY_EXT, EXT_INDEX(EXT_geometry_shader)>(&EmitVertex_),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProjOffset_00d30B10D00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProjOffset_00d30B10D00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&round_10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&round_10B),
    Rule::Get<Spec::ESSL, 320, Shader::ALL, 0>(&textureGatherOffsets_00X10B70D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00X10B70D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(
        &textureGatherOffsetsExt_00X10B70D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjOffset_00d30B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjOffset_00d30B10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&notEqual_10E10E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&notEqual_10E10E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProj_00R30B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProj_00R30B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&matrixCompMult_50B50B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&matrixCompMult_50B50B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&equal_20F20F),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&equal_20F20F),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&TableBase::m_gl_MaxFragmentInputVectors),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxFragmentInputVectors),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&equal_30B30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&equal_30B30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00U20B00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00U20B00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&usubBorrow_10E10E10E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&usubBorrow_10E10E10E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&equal_10B10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&equal_10B10B),
    Rule::Get<Spec::ESSL, 320, Shader::ALL, 0>(&fma_00B00B00B),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&fma_00B00B00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(&fmaExt_00B00B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGradOffset_00I20B10B10B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGradOffset_00I20B10B10B10D),
    Rule::Get<Spec::ESSL, 100, Shader::VERTEX, 0>(&texture2DProjLod_00I30B00B),
    Rule::Get<Spec::GLSL, 0, Shader::VERTEX, 0>(&texture2DProjLod_00I30B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&isnan_10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&isnan_10B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&uaddCarry_20E20E20E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&uaddCarry_20E20E20E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&max_10B10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&max_10B10B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicMax_00E00E),
    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicMax_00E00E),
    Rule::Get<Spec::ESSL, 0, Shader::VERTEX, 0>(&BuiltInVariable::kgl_PointSize),
    Rule::Get<Spec::GLSL, 0, Shader::VERTEX, 0>(&BuiltInVariable::kgl_PointSize),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicMin_00D00D),
    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicMin_00D00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00X00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00X00D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&greaterThan_10B10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&greaterThan_10B10B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&asin_10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&asin_10B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00d10B00B),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00d10B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&trunc_10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&trunc_10B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeAtomicCounters),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeAtomicCounters),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProj_00X30B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProj_00X30B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexAtomicCounters),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexAtomicCounters),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&length_20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&length_20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldInsert_30E30E00D00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldInsert_30E30E00D00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureOffset_00S20B20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureOffset_00S20B20D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjOffset_00X20B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjOffset_00X20B10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_30D00D00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_30D00D00D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&clamp_10B00B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&clamp_10B00B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProj_00R20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProj_00R20B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProj_00I20B00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProj_00I20B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&greaterThan_10E10E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&greaterThan_10E10E),
    Rule::Get<Spec::ESSL, 320, Shader::ALL, 0>(&textureGatherOffsets_00L20B70D00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00L20B70D00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(
        &textureGatherOffsetsExt_00L20B70D00D),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProjOffset_00R30B10D00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProjOffset_00R30B10D00B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&dFdy_00B),
    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&dFdy_00B),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(&dFdyExt_00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_30D00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_30D00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&floatBitsToInt_00B),
    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&floatBitsToInt_00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&sign_10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&sign_10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_00E00E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_00E00E),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00a20B00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00a20B00B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, EXT_INDEX(OES_EGL_image_external_essl3)>(
        &texture_00M10B00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&smoothstep_20B20B20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&smoothstep_20B20B20B),
    Rule::Get<Spec::ESSL, 100, Shader::VERTEX, 0>(&textureCubeLod_00K20B00B),
    Rule::Get<Spec::GLSL, 0, Shader::VERTEX, 0>(&textureCubeLod_00K20B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureOffset_00J20B20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureOffset_00J20B20D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetch_00J20D00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetch_00J20D00D),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, EXT_INDEX(OES_EGL_image_external_essl3)>(
        &textureProj_00M20B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&floatBitsToUint_00B),
    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&floatBitsToUint_00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGradOffset_00R30B10B10B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGradOffset_00R30B10B10B10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00K20B00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00K20B00B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProjOffset_00X30B10D00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProjOffset_00X30B10D00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&cos_20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&cos_20B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&exp2_00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&exp2_00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&radians_30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&radians_30B),
    Rule::Get<Spec::ESSL, 100, Shader::ALL, EXT_INDEX(ARB_texture_rectangle)>(
        &texture2DRectProj_00O20B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&tan_20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&tan_20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00T20B),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00T20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00a20B00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00a20B00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGradOffset_00J30B20B20B20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGradOffset_00J30B20B20B20D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&asinh_10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&asinh_10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGrad_00X30B10B10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGrad_00X30B10B10B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&floor_00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&floor_00B),
    Rule::Get<Spec::ESSL, 0, Shader::VERTEX, EXT_INDEX(ANGLE_multi_draw)>(
        &BuiltInVariable::kgl_DrawID),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicOr_00D00D),
    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicOr_00D00D),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_texture_3D)>(
        &texture3DLod_00J20B00B)};

// Flat array of all mangled names.
constexpr const char *kMangledNames[] = {"textureProj(00R30B00B",
                                         "imageStore(01G20D30D",
                                         "texture(00N10B00B",
                                         "clamp(10D00D00D",
                                         "gl_PrimitiveID",
                                         "texture(00R10B00B",
                                         "modf(00B00B",
                                         "gl_MaxAtomicCounterBindings",
                                         "notEqual(20D20D",
                                         "gl_MaxComputeImageUniforms",
                                         "textureLod(00L20B00B",
                                         "angle_BaseVertex",
                                         "determinant(A0B",
                                         "textureProjGrad(00I30B10B10B",
                                         "tanh(30B",
                                         "gl_Layer",
                                         "textureOffset(00d20B10D",
                                         "dFdx(30B",
                                         "clamp(00E00E00E",
                                         "transpose(50B",
                                         "ldexp(00B00D",
                                         "textureGather(00K20B00D",
                                         "lessThanEqual(30B30B",
                                         "greaterThanEqual(20D20D",
                                         "min(20E20E",
                                         "asin(20B",
                                         "outerProduct(20B30B",
                                         "bitfieldInsert(00D00D00D00D",
                                         "textureProjGrad(00Y30B20B20B",
                                         "roundEven(30B",
                                         "acosh(20B",
                                         "atanh(10B",
                                         "mix(20B20B00B",
                                         "imageLoad(01C20D",
                                         "clamp(10B10B10B",
                                         "textureGrad(00I10B10B10B",
                                         "textureGatherOffset(00L20B10D00D",
                                         "bitCount(00D",
                                         "step(00B20B",
                                         "lessThan(30E30E",
                                         "uintBitsToFloat(30E",
                                         "imulExtended(30D30D30D30D",
                                         "textureSize(00K00D",
                                         "imageStore(01B10D30E",
                                         "transpose(70B",
                                         "textureProjOffset(00S30B20D00B",
                                         "textureProjLod(00X30B00B",
                                         "textureSize(00Y00D",
                                         "gl_MinProgramTexelOffset",
                                         "texture(00d20B",
                                         "textureProj(00J30B00B",
                                         "atan(10B10B",
                                         "max(20B00B",
                                         "clamp(30B30B30B",
                                         "EndPrimitive(",
                                         "textureLod(00Y20B00B",
                                         "textureLodOffset(00a20B00B10D",
                                         "texelFetchOffset(00Y20D00D20D",
                                         "texelFetch(00a20D00D",
                                         "min(20D00D",
                                         "textureGatherOffsets(00I10B70D00D",
                                         "textureGatherOffsets(00X10B70D00D",
                                         "uintBitsToFloat(00E",
                                         "lessThanEqual(20B20B",
                                         "texelFetch(00N10D00D",
                                         "atomicAdd(00D00D",
                                         "gl_MaxGeometryOutputComponents",
                                         "gl_MaxGeometryTextureImageUnits",
                                         "floatBitsToUint(20B",
                                         "bitfieldInsert(20D20D00D00D",
                                         "textureGatherOffsets(00U20B70D",
                                         "texture(00Z20B",
                                         "min(10D10D",
                                         "degrees(20B",
                                         "tanh(00B",
                                         "textureProjOffset(00J30B20D00B",
                                         "all(30F",
                                         "abs(20D",
                                         "abs(20B",
                                         "inversesqrt(00B",
                                         "matrixCompMult(D0BD0B",
                                         "lessThanEqual(10B10B",
                                         "bitfieldReverse(20D",
                                         "bitfieldReverse(20E",
                                         "textureProjGrad(00S30B20B20B",
                                         "equal(10D10D",
                                         "max(30D00D",
                                         "groupMemoryBarrier(",
                                         "mix(00B00B00F",
                                         "textureProjGradOffset(00R20B10B10B10D",
                                         "imageLoad(01A10D",
                                         "intBitsToFloat(30D",
                                         "textureProj(00I20B",
                                         "texelFetch(00I10D00D",
                                         "imageStore(01I20D30B",
                                         "min(30B30B",
                                         "gl_MaxVertexAtomicCounterBuffers",
                                         "textureLodOffset(00S20B00B20D",
                                         "textureGatherOffset(00R10B10D",
                                         "acos(00B",
                                         "fract(10B",
                                         "transpose(E0B",
                                         "intBitsToFloat(00D",
                                         "textureGradOffset(00J20B20B20B20D",
                                         "textureGatherOffsets(00f20B00B70D",
                                         "texture2DGradEXT(00I10B10B10B",
                                         "bitfieldInsert(00E00E00D00D",
                                         "atomicXor(00D00D",
                                         "greaterThan(20B20B",
                                         "textureLodOffset(00I10B00B10D",
                                         "texelFetch(00Y20D00D",
                                         "texture2DProjGradEXT(00I30B10B10B",
                                         "textureGrad(00d20B10B10B",
                                         "textureProjOffset(00R30B10D",
                                         "textureOffset(00U20B10D",
                                         "atan(10B",
                                         "modf(10B10B",
                                         "min(30B00B",
                                         "determinant(50B",
                                         "lessThan(20B20B",
                                         "atomicAnd(00D00D",
                                         "gl_FragColor",
                                         "exp(10B",
                                         "textureProjOffset(00I20B10D00B",
                                         "step(00B10B",
                                         "bitCount(30D",
                                         "textureProjLod(00I20B00B",
                                         "unpackUnorm2x16(00E",
                                         "rgb_2_yuv(20B00H",
                                         "sqrt(20B",
                                         "sign(20B",
                                         "sign(20D",
                                         "atanh(00B",
                                         "textureGradOffset(00X10B10B10B10D",
                                         "gl_DepthRange",
                                         "textureGatherOffsets(00I10B70D",
                                         "imulExtended(10D10D10D10D",
                                         "atan(20B",
                                         "texture(00M10B",
                                         "gl_MaxVertexOutputVectors",
                                         "texture(00T20B",
                                         "gl_PerVertex",
                                         "log2(10B",
                                         "min(10B10B",
                                         "gl_MaxImageUnits",
                                         "pow(10B10B",
                                         "findLSB(20E",
                                         "findLSB(20D",
                                         "texture(00Y20B",
                                         "packUnorm4x8(30B",
                                         "texture(00X10B00B",
                                         "frexp(00B00D",
                                         "texture2D(00I10B",
                                         "not(10F",
                                         "texelFetch(00P10D00D",
                                         "lessThan(10E10E",
                                         "ceil(20B",
                                         "textureLodOffset(00R10B00B10D",
                                         "clamp(10D10D10D",
                                         "texelFetch(00M10D00D",
                                         "texture(00O10B",
                                         "transpose(F0B",
                                         "textureOffset(00Y20B20D00B",
                                         "textureGradOffset(00S20B20B20B20D",
                                         "atomicXor(00E00E",
                                         "textureProjOffset(00R20B10D",
                                         "gl_FragCoord",
                                         "clamp(30E30E30E",
                                         "textureProj(00N30B00B",
                                         "textureSize(00R00D",
                                         "gl_MaxFragmentImageUniforms",
                                         "normalize(00B",
                                         "textureOffset(00I10B10D",
                                         "atomicExchange(00E00E",
                                         "textureProj(00I30B00B",
                                         "acosh(10B",
                                         "gl_MaxCombinedShaderOutputResources",
                                         "atomicOr(00E00E",
                                         "min(20B00B",
                                         "textureProj(00M30B00B",
                                         "atomicMax(00D00D",
                                         "textureProj(00M20B",
                                         "texture(00I10B00B",
                                         "reflect(00B00B",
                                         "mod(20B00B",
                                         "lessThan(20D20D",
                                         "reflect(10B10B",
                                         "floatBitsToUint(10B",
                                         "textureLod(00J20B00B",
                                         "sqrt(10B",
                                         "textureProjLod(00S30B00B",
                                         "clamp(20E20E20E",
                                         "atomicAnd(00E00E",
                                         "max(20D00D",
                                         "textureSize(00I00D",
                                         "gl_MaxComputeAtomicCounterBuffers",
                                         "gl_PrimitiveIDIn",
                                         "texelFetchOffset(00R10D00D10D",
                                         "isinf(30B",
                                         "textureGatherOffsets(00U20B70D00D",
                                         "textureGatherOffset(00I10B10D",
                                         "textureOffset(00L20B10D00B",
                                         "textureLodOffset(00X10B00B10D",
                                         "texture(00T20B00B",
                                         "textureOffset(00L20B10D",
                                         "lessThanEqual(30E30E",
                                         "textureOffset(00J20B20D00B",
                                         "textureGatherOffset(00a20B10D00D",
                                         "min(10E00E",
                                         "log(30B",
                                         "imageStore(01J20D30D",
                                         "atomicCounter(00G",
                                         "textureProjOffset(00S30B20D",
                                         "imageLoad(01I20D",
                                         "round(00B",
                                         "smoothstep(00B00B20B",
                                         "imageLoad(01H20D",
                                         "textureGather(00K20B",
                                         "bitfieldInsert(30D30D00D00D",
                                         "fwidth(10B",
                                         "textureProjLod(00R20B00B",
                                         "notEqual(30D30D",
                                         "refract(10B10B00B",
                                         "textureProjOffset(00I20B10D",
                                         "greaterThan(30D30D",
                                         "greaterThan(10D10D",
                                         "texture(00U20B",
                                         "textureSize(00a00D",
                                         "bitfieldExtract(10E00D00D",
                                         "gl_MaxDrawBuffers",
                                         "textureGatherOffset(00U20B10D00D",
                                         "textureProjLod(00J30B00B",
                                         "texture2DRect(00O10B",
                                         "imulExtended(20D20D20D20D",
                                         "any(30F",
                                         "distance(30B30B",
                                         "greaterThan(20D20D",
                                         "textureOffset(00a20B10D",
                                         "greaterThan(30B30B",
                                         "trunc(00B",
                                         "sinh(30B",
                                         "length(10B",
                                         "findMSB(10E",
                                         "findMSB(10D",
                                         "dot(00B00B",
                                         "asinh(20B",
                                         "dot(30B30B",
                                         "bitCount(00E",
                                         "tan(30B",
                                         "textureLod(00T20B00B",
                                         "imageStore(00z10D30B",
                                         "usubBorrow(20E20E20E",
                                         "textureProjGrad(00R30B10B10B",
                                         "exp2(10B",
                                         "textureProj(00O20B",
                                         "textureProjOffset(00X20B10D00B",
                                         "outerProduct(10B20B",
                                         "gl_MaxGeometryAtomicCounterBuffers",
                                         "textureProjGradOffset(00X30B10B10B10D",
                                         "textureOffset(00I10B10D00B",
                                         "clamp(30B00B00B",
                                         "inverse(50B",
                                         "lessThan(20E20E",
                                         "dot(10B10B",
                                         "unpackHalf2x16(00E",
                                         "matrixCompMult(A0BA0B",
                                         "texture2DProjLod(00I20B00B",
                                         "texelFetch(00W20D00D",
                                         "texture2DRectProj(00O30B",
                                         "radians(20B",
                                         "textureGrad(00S20B20B20B",
                                         "max(10D00D",
                                         "round(30B",
                                         "gl_MaxComputeTextureImageUnits",
                                         "clamp(00D00D00D",
                                         "sin(30B",
                                         "floor(30B",
                                         "textureProj(00S30B00B",
                                         "textureGrad(00Y20B20B20B",
                                         "gl_MaxCombinedAtomicCounters",
                                         "textureGather(00L20B00D",
                                         "textureProjGradOffset(00S30B20B20B20D",
                                         "imageStore(01A10D30D",
                                         "gl_MaxGeometryOutputVertices",
                                         "texture(00J20B",
                                         "gl_MaxVertexTextureImageUnits",
                                         "gl_PointCoord",
                                         "dFdx(20B",
                                         "imageStore(01F20D30B",
                                         "textureProj(00X20B",
                                         "max(10E10E",
                                         "max(30B30B",
                                         "clamp(10E10E10E",
                                         "texelFetchOffset(00S20D00D20D",
                                         "texture(00N10B",
                                         "texture(00L20B",
                                         "barrier(",
                                         "gl_MaxGeometryUniformComponents",
                                         "greaterThanEqual(20E20E",
                                         "lessThan(10D10D",
                                         "texelFetchOffset(00a20D00D10D",
                                         "textureProjGradOffset(00X20B10B10B10D",
                                         "texture2DProj(00I20B",
                                         "texture3DProjLod(00J30B00B",
                                         "not(20F",
                                         "",
                                         "findMSB(20D",
                                         "findMSB(20E",
                                         "texelFetchOffset(00I10D00D10D",
                                         "textureGather(00I10B00D",
                                         "texelFetch(00V10D00D",
                                         "outerProduct(20B20B",
                                         "atan(30B30B",
                                         "unpackSnorm4x8(00E",
                                         "bitCount(30E",
                                         "textureProjLodOffset(00R20B00B10D",
                                         "log(20B",
                                         "textureGatherOffsets(00R10B70D",
                                         "asin(30B",
                                         "textureGather(00f20B",
                                         "modf(30B30B",
                                         "texture(00y10B",
                                         "isnan(20B",
                                         "max(00B00B",
                                         "roundEven(20B",
                                         "fwidth(00B",
                                         "textureProjGrad(00J30B20B20B",
                                         "dFdy(10B",
                                         "outerProduct(30B10B",
                                         "floatBitsToInt(30B",
                                         "textureProj(00J30B",
                                         "gl_InvocationID",
                                         "max(30E00E",
                                         "exp2(20B",
                                         "textureLod(00d20B00B",
                                         "radians(10B",
                                         "texelFetch(00U20D00D",
                                         "gl_MaxComputeWorkGroupSize",
                                         "gl_BaseVertex",
                                         "max(00D00D",
                                         "gl_LastFragData",
                                         "ceil(30B",
                                         "atomicMin(00E00E",
                                         "gl_MaxCombinedTextureImageUnits",
                                         "bitCount(10E",
                                         "texture(00S20B00B",
                                         "textureGather(00e20B00B",
                                         "gl_DepthRangeParameters",
                                         "distance(10B10B",
                                         "reflect(20B20B",
                                         "mod(10B00B",
                                         "uintBitsToFloat(10E",
                                         "textureGrad(00Z20B20B20B",
                                         "equal(10F10F",
                                         "cosh(00B",
                                         "bitfieldReverse(00D",
                                         "bitfieldReverse(00E",
                                         "max(20E20E",
                                         "matrixCompMult(70B70B",
                                         "bitfieldExtract(30E00D00D",
                                         "textureLod(00I10B00B",
                                         "greaterThanEqual(10D10D",
                                         "imageSize(01F",
                                         "texture(00e30B00B",
                                         "textureLodOffset(00Y20B00B20D",
                                         "log2(00B",
                                         "gl_LastFragColor",
                                         "abs(10D",
                                         "abs(10B",
                                         "acos(30B",
                                         "tanh(10B",
                                         "degrees(30B",
                                         "imageStore(01E20D30E",
                                         "dFdx(10B",
                                         "textureProjOffset(00I30B10D",
                                         "bitfieldReverse(30E",
                                         "bitfieldReverse(30D",
                                         "inversesqrt(30B",
                                         "gl_LocalInvocationID",
                                         "",
                                         "clamp(00B00B00B",
                                         "textureGather(00d10B",
                                         "frexp(20B20D",
                                         "intBitsToFloat(20D",
                                         "fract(00B",
                                         "gl_FragDepth",
                                         "min(30E00E",
                                         "exp(20B",
                                         "equal(20B20B",
                                         "textureProjLodOffset(00X20B00B10D",
                                         "acosh(00B",
                                         "log(10B",
                                         "textureVideoWEBGL(00y10B",
                                         "textureProjLodOffset(00S30B00B20D",
                                         "sinh(20B",
                                         "fma(10B10B10B",
                                         "textureGatherOffsets(00a20B70D00D",
                                         "reflect(30B30B",
                                         "outerProduct(30B20B",
                                         "texture(00U20B00B",
                                         "texture(00S20B",
                                         "imageLoad(01F20D",
                                         "outerProduct(20B10B",
                                         "umulExtended(10E10E10E10E",
                                         "texture(00Z20B00B",
                                         "textureGradOffset(00a20B10B10B10D",
                                         "notEqual(20F20F",
                                         "mod(30B30B",
                                         "bitfieldExtract(10D00D00D",
                                         "sign(30B",
                                         "sign(30D",
                                         "pow(00B00B",
                                         "mod(00B00B",
                                         "texture(00Y20B00B",
                                         "notEqual(30B30B",
                                         "roundEven(10B",
                                         "texture2DProjLodEXT(00I30B00B",
                                         "atanh(30B",
                                         "dFdy(20B",
                                         "textureProj(00Y30B",
                                         "bitCount(20D",
                                         "step(00B00B",
                                         "texelFetch(00L20D00D",
                                         "memoryBarrierBuffer(",
                                         "isinf(00B",
                                         "imageSize(00z",
                                         "distance(20B20B",
                                         "textureGrad(00U20B10B10B",
                                         "uaddCarry(30E30E30E",
                                         "mod(30B00B",
                                         "texture(00K20B00B",
                                         "gl_MaxCombinedImageUniforms",
                                         "yuv_2_rgb(20B00H",
                                         "textureGather(00f20B00B",
                                         "greaterThan(20E20E",
                                         "textureGrad(00a20B10B10B",
                                         "textureOffset(00U20B10D00B",
                                         "intBitsToFloat(10D",
                                         "texture(00J20B00B",
                                         "refract(20B20B00B",
                                         "textureProjLod(00I30B00B",
                                         "refract(00B00B00B",
                                         "findLSB(10D",
                                         "findLSB(10E",
                                         "mix(10B10B10F",
                                         "mix(10B10B10B",
                                         "textureProj(00Y30B00B",
                                         "texture3D(00J20B",
                                         "transpose(D0B",
                                         "log2(30B",
                                         "textureGrad(00J20B20B20B",
                                         "textureProjGrad(00d30B10B10B",
                                         "fract(30B",
                                         "gl_LocalInvocationIndex",
                                         "textureSize(00J00D",
                                         "textureGatherOffset(00I10B10D00D",
                                         "textureGather(00X10B00D",
                                         "texelFetchOffset(00U20D00D10D",
                                         "textureProjLodOffset(00Y30B00B20D",
                                         "textureSize(00e00D",
                                         "notEqual(20E20E",
                                         "textureLodOffset(00d20B00B10D",
                                         "inverse(A0B",
                                         "textureProjGrad(00X20B10B10B",
                                         "max(30E30E",
                                         "isnan(30B",
                                         "imulExtended(00D00D00D00D",
                                         "gl_in",
                                         "atan(20B20B",
                                         "usubBorrow(00E00E00E",
                                         "textureProjLodOffset(00J30B00B20D",
                                         "frexp(30B30D",
                                         "gl_SecondaryFragDataEXT",
                                         "min(30E30E",
                                         "imageLoad(01B10D",
                                         "texture2DProj(00I30B00B",
                                         "textureCubeGradEXT(00K20B20B20B",
                                         "texture(00I10B",
                                         "textureGatherOffsets(00d10B00B70D",
                                         "min(00B00B",
                                         "gl_InstanceID",
                                         "texelFetch(00c20D00D",
                                         "gl_MaxVertexImageUniforms",
                                         "sqrt(00B",
                                         "normalize(20B",
                                         "gl_MaxFragmentAtomicCounterBuffers",
                                         "gl_WorkGroupID",
                                         "degrees(00B",
                                         "inverse(F0B",
                                         "min(20E00E",
                                         "textureProjLod(00R30B00B",
                                         "textureSize(00P",
                                         "textureGradOffset(00d20B10B10B10D",
                                         "textureProjLodOffset(00R30B00B10D",
                                         "atan(00B",
                                         "atomicExchange(00D00D",
                                         "textureGatherOffset(00R10B10D00D",
                                         "gl_MaxGeometryAtomicCounters",
                                         "texture2D(00I10B00B",
                                         "textureProj(00X20B00B",
                                         "clamp(20D20D20D",
                                         "greaterThan(30E30E",
                                         "frexp(10B10D",
                                         "max(10E00E",
                                         "smoothstep(00B00B10B",
                                         "gl_GlobalInvocationID",
                                         "matrixCompMult(60B60B",
                                         "memoryBarrierShared(",
                                         "normalize(10B",
                                         "unpackSnorm2x16(00E",
                                         "imageLoad(00z10D",
                                         "lessThan(30D30D",
                                         "atan(00B00B",
                                         "bitfieldExtract(20D00D00D",
                                         "texture(00L20B00B",
                                         "notEqual(10B10B",
                                         "imageLoad(01G20D",
                                         "bitfieldExtract(00E00D00D",
                                         "atomicCompSwap(00D00D00D",
                                         "trunc(30B",
                                         "matrixCompMult(E0BE0B",
                                         "length(00B",
                                         "any(20F",
                                         "textureGatherOffsets(00L20B70D",
                                         "textureProj(00X30B00B",
                                         "gl_HelperInvocation",
                                         "textureGather(00L20B",
                                         "gl_ViewID_OVR",
                                         "floor(10B",
                                         "sin(10B",
                                         "textureSize(00N00D",
                                         "texelFetchOffset(00J20D00D20D",
                                         "tan(00B",
                                         "mod(20B20B",
                                         "imageLoad(01J20D",
                                         "gl_WorkGroupSize",
                                         "asinh(30B",
                                         "outerProduct(10B30B",
                                         "textureCube(00K20B",
                                         "textureSize(00c",
                                         "textureSize(00b",
                                         "cos(00B",
                                         "min(20B20B",
                                         "textureGradOffset(00f30B10B10B10D",
                                         "max(20D20D",
                                         "textureProj(00I30B",
                                         "max(10D10D",
                                         "textureOffset(00a20B10D00B",
                                         "textureGather(00X10B",
                                         "pow(30B30B",
                                         "textureGather(00a20B",
                                         "smoothstep(10B10B10B",
                                         "textureProj(00O30B",
                                         "textureGatherOffset(00d10B00B10D",
                                         "refract(30B30B00B",
                                         "bitfieldInsert(20E20E00D00D",
                                         "floor(20B",
                                         "equal(20E20E",
                                         "mix(00B00B00B",
                                         "imageSize(01B",
                                         "greaterThanEqual(20B20B",
                                         "uaddCarry(00E00E00E",
                                         "sin(20B",
                                         "imageLoad(01K20D",
                                         "textureSize(00Q",
                                         "round(20B",
                                         "matrixCompMult(90B90B",
                                         "textureProjLod(00d30B00B",
                                         "textureSize(00W",
                                         "textureProjLod(00X20B00B",
                                         "gl_MaxCombinedAtomicCounterBuffers",
                                         "isnan(00B",
                                         "umulExtended(30E30E30E30E",
                                         "faceforward(30B30B30B",
                                         "textureGradOffset(00Y20B20B20B20D",
                                         "clamp(30E00E00E",
                                         "asin(00B",
                                         "ceil(00B",
                                         "texture3D(00J20B00B",
                                         "distance(00B00B",
                                         "texture(00a20B",
                                         "textureGatherOffset(00a20B10D",
                                         "textureGrad(00f30B10B10B",
                                         "texture2DProj(00I30B",
                                         "modf(20B20B",
                                         "textureGradOffset(00I10B10B10B10D",
                                         "notEqual(30E30E",
                                         "textureGather(00I10B",
                                         "lessThanEqual(10E10E",
                                         "inversesqrt(20B",
                                         "textureLodOffset(00J20B00B20D",
                                         "min(30D30D",
                                         "textureOffset(00R10B10D00B",
                                         "textureGrad(00e30B20B20B",
                                         "atomicAdd(00E00E",
                                         "gl_MaxGeometryInputComponents",
                                         "findMSB(30E",
                                         "findMSB(30D",
                                         "textureGrad(00X10B10B10B",
                                         "length(30B",
                                         "greaterThanEqual(30E30E",
                                         "fwidth(30B",
                                         "textureGrad(00K20B20B20B",
                                         "mix(20B20B20F",
                                         "texelFetch(00S20D00D",
                                         "textureGradOffset(00U20B10B10B10D",
                                         "mix(20B20B20B",
                                         "floatBitsToInt(10B",
                                         "max(10B00B",
                                         "textureGatherOffset(00L20B10D",
                                         "textureLod(00a20B00B",
                                         "any(10F",
                                         "textureProjGradOffset(00d30B10B10B10D",
                                         "textureProj(00N30B",
                                         "gl_MaxProgramTexelOffset",
                                         "exp2(30B",
                                         "texelFetchOffset(00L20D00D10D",
                                         "equal(30D30D",
                                         "texture3DProj(00J30B00B",
                                         "imageStore(01D20D30D",
                                         "packSnorm2x16(10B",
                                         "floatBitsToUint(30B",
                                         "lessThanEqual(30D30D",
                                         "gl_MaxGeometryImageUniforms",
                                         "asinh(00B",
                                         "textureOffset(00R10B10D",
                                         "greaterThanEqual(10E10E",
                                         "textureProjGradOffset(00I30B10B10B10D",
                                         "textureGather(00Z20B",
                                         "textureOffset(00X10B10D",
                                         "cosh(30B",
                                         "textureOffset(00d20B10D00B",
                                         "texture(00R10B",
                                         "textureOffset(00S20B20D00B",
                                         "usubBorrow(30E30E30E",
                                         "radians(00B",
                                         "textureProjOffset(00R20B10D00B",
                                         "ldexp(30B30D",
                                         "max(30B00B",
                                         "min(20D20D",
                                         "imageStore(01K20D30E",
                                         "step(10B10B",
                                         "gl_MaxDualSourceDrawBuffersEXT",
                                         "step(30B30B",
                                         "bitfieldReverse(10E",
                                         "bitfieldReverse(10D",
                                         "texture3DProj(00J30B",
                                         "gl_FragDepthEXT",
                                         "matrixCompMult(B0BB0B",
                                         "lessThan(30B30B",
                                         "cross(20B20B",
                                         "all(10F",
                                         "clamp(20B00B00B",
                                         "tanh(20B",
                                         "dFdx(00B",
                                         "matrixCompMult(F0BF0B",
                                         "textureProjOffset(00Y30B20D",
                                         "abs(00D",
                                         "abs(00B",
                                         "textureLod(00R10B00B",
                                         "step(20B20B",
                                         "gl_MaxFragmentAtomicCounters",
                                         "textureLodOffset(00U20B00B10D",
                                         "textureProj(00R20B00B",
                                         "faceforward(20B20B20B",
                                         "imageSize(01E",
                                         "acos(20B",
                                         "texelFetch(00X10D00D",
                                         "sinh(00B",
                                         "imageSize(01A",
                                         "texture2DLod(00I10B00B",
                                         "memoryBarrierAtomicCounter(",
                                         "texelFetch(00b10D00D",
                                         "fma(20B20B20B",
                                         "gl_MaxAtomicCounterBufferSize",
                                         "max(20B20B",
                                         "textureGatherOffset(00f20B00B10D",
                                         "outerProduct(30B30B",
                                         "lessThanEqual(20E20E",
                                         "textureLod(00X10B00B",
                                         "exp(30B",
                                         "memoryBarrier(",
                                         "imageSize(01D",
                                         "step(00B30B",
                                         "bitCount(10D",
                                         "equal(30E30E",
                                         "sign(00B",
                                         "log(00B",
                                         "textureLod(00Z20B00B",
                                         "sign(00D",
                                         "textureOffset(00Y20B20D",
                                         "transpose(60B",
                                         "findMSB(00D",
                                         "gl_MaxGeometryTotalOutputComponents",
                                         "acosh(30B",
                                         "findMSB(00E",
                                         "bitfieldExtract(20E00D00D",
                                         "uintBitsToFloat(20E",
                                         "unpackUnorm4x8(00E",
                                         "texture2DProj(00M20B",
                                         "texelFetchOffset(00X10D00D10D",
                                         "mod(10B10B",
                                         "texture(00d20B00B",
                                         "notEqual(10D10D",
                                         "texture2DProj(00M30B",
                                         "textureSize(00V",
                                         "packUnorm2x16(10B",
                                         "faceforward(00B00B00B",
                                         "umulExtended(20E20E20E20E",
                                         "textureOffset(00X10B10D00B",
                                         "cos(30B",
                                         "findLSB(30D",
                                         "findLSB(30E",
                                         "bitCount(20E",
                                         "gl_NumWorkGroups",
                                         "equal(20D20D",
                                         "textureProjOffset(00Y30B20D00B",
                                         "textureGatherOffset(00U20B10D",
                                         "faceforward(10B10B10B",
                                         "textureSize(00L00D",
                                         "gl_MaxComputeUniformComponents",
                                         "textureGather(00R10B00D",
                                         "imageStore(01H20D30E",
                                         "textureSize(00Z00D",
                                         "textureGather(00U20B",
                                         "bitfieldExtract(30D00D00D",
                                         "min(10D00D",
                                         "texelFetch(00Q20D00D",
                                         "max(20E00E",
                                         "textureProj(00S30B",
                                         "roundEven(00B",
                                         "texture2DLodEXT(00I10B00B",
                                         "dFdy(30B",
                                         "atanh(20B",
                                         "clamp(10E00E00E",
                                         "imageStore(01C20D30B",
                                         "clamp(20D00D00D",
                                         "all(20F",
                                         "isinf(10B",
                                         "textureGatherOffsets(00a20B70D",
                                         "imageSize(01J",
                                         "imageSize(01K",
                                         "imageSize(01H",
                                         "imageSize(01I",
                                         "packHalf2x16(10B",
                                         "texture2DProj(00I20B00B",
                                         "findLSB(00E",
                                         "findLSB(00D",
                                         "textureProjOffset(00X30B10D",
                                         "imageSize(01C",
                                         "greaterThanEqual(30B30B",
                                         "textureSize(00U00D",
                                         "textureGradOffset(00R10B10B10B10D",
                                         "imageSize(01G",
                                         "equal(30F30F",
                                         "bitfieldExtract(00D00D00D",
                                         "texture2DProjLodEXT(00I20B00B",
                                         "notEqual(30F30F",
                                         "gl_FrontFacing",
                                         "gl_SecondaryFragColorEXT",
                                         "inversesqrt(10B",
                                         "gl_MaxComputeWorkGroupCount",
                                         "acos(10B",
                                         "abs(30D",
                                         "gl_MaxFragmentUniformVectors",
                                         "fract(20B",
                                         "abs(30B",
                                         "lessThan(10B10B",
                                         "textureGatherOffset(00X10B10D",
                                         "bitfieldInsert(10E10E00D00D",
                                         "packSnorm4x8(30B",
                                         "mix(10B10B00B",
                                         "imageLoad(01E20D",
                                         "clamp(30D30D30D",
                                         "textureGather(00U20B00D",
                                         "textureSize(00f00D",
                                         "textureProj(00N20B00B",
                                         "gl_FragData",
                                         "textureProj(00d30B00B",
                                         "clamp(20E00E00E",
                                         "texture(00X10B",
                                         "textureProj(00d30B",
                                         "mix(30B30B30F",
                                         "determinant(F0B",
                                         "transpose(A0B",
                                         "pow(20B20B",
                                         "texture2DProjGradEXT(00I20B10B10B",
                                         "gl_LastFragColorARM",
                                         "textureGather(00Z20B00D",
                                         "textureGather(00R10B",
                                         "lessThanEqual(20D20D",
                                         "textureLod(00S20B00B",
                                         "textureProjLod(00Y30B00B",
                                         "cosh(10B",
                                         "sqrt(30B",
                                         "gl_VertexID",
                                         "sign(10D",
                                         "textureProj(00M30B",
                                         "exp(00B",
                                         "min(00E00E",
                                         "max(30D30D",
                                         "umulExtended(00E00E00E00E",
                                         "gl_MaxVertexAttribs",
                                         "gl_BaseInstance",
                                         "transpose(B0B",
                                         "fwidth(20B",
                                         "",
                                         "smoothstep(00B00B30B",
                                         "floatBitsToInt(20B",
                                         "textureSize(00M00D",
                                         "log2(20B",
                                         "ldexp(10B10D",
                                         "min(10B00B",
                                         "mix(30B30B00B",
                                         "angle_BaseInstance",
                                         "degrees(10B",
                                         "gl_MaxTextureImageUnits",
                                         "gl_Position",
                                         "texture(00K20B",
                                         "atomicCompSwap(00E00E00E",
                                         "fma(30B30B30B",
                                         "sinh(10B",
                                         "atan(30B",
                                         "textureGatherOffsets(00R10B70D00D",
                                         "textureGradOffset(00L20B10B10B10D",
                                         "ceil(10B",
                                         "textureSize(00S00D",
                                         "greaterThanEqual(10B10B",
                                         "atomicCounterDecrement(00G",
                                         "textureCube(00K20B00B",
                                         "dot(20B20B",
                                         "transpose(90B",
                                         "not(30F",
                                         "textureProjLodOffset(00I20B00B10D",
                                         "notEqual(10F10F",
                                         "textureProjGrad(00R20B10B10B",
                                         "texture(00f30B",
                                         "smoothstep(00B00B00B",
                                         "textureProjLodOffset(00d30B00B10D",
                                         "texelFetch(00R10D00D",
                                         "cosh(20B",
                                         "textureProjLodOffset(00I30B00B10D",
                                         "normalize(30B",
                                         "smoothstep(30B30B30B",
                                         "bitfieldInsert(10D10D00D00D",
                                         "clamp(20B20B20B",
                                         "textureGrad(00L20B10B10B",
                                         "textureGrad(00R10B10B10B",
                                         "textureProjGrad(00I20B10B10B",
                                         "textureGather(00e20B",
                                         "texture2D(00M10B",
                                         "min(00D00D",
                                         "outerProduct(10B10B",
                                         "lessThanEqual(10D10D",
                                         "trunc(20B",
                                         "gl_MaxVaryingVectors",
                                         "textureProjOffset(00I30B10D00B",
                                         "textureSize(00d00D",
                                         "sin(00B",
                                         "gl_MaxVertexUniformVectors",
                                         "textureCubeLodEXT(00K20B00B",
                                         "textureGather(00T20B00D",
                                         "textureProj(00N20B",
                                         "uaddCarry(10E10E10E",
                                         "tan(10B",
                                         "textureLodOffset(00L20B00B10D",
                                         "atomicCounterIncrement(00G",
                                         "ldexp(20B20D",
                                         "greaterThanEqual(30D30D",
                                         "notEqual(20B20B",
                                         "imageLoad(01D20D",
                                         "textureProjLodOffset(00X30B00B10D",
                                         "isinf(20B",
                                         "cos(10B",
                                         "mix(30B30B30B",
                                         "texture(00e30B",
                                         "textureSize(00T00D",
                                         "textureGatherOffset(00X10B10D00D",
                                         "equal(10E10E",
                                         "min(10E10E",
                                         "textureProjGradOffset(00Y30B20B20B20D",
                                         "textureGrad(00T20B20B20B",
                                         "memoryBarrierImage(",
                                         "textureProjOffset(00J30B20D",
                                         "EmitVertex(",
                                         "textureProjOffset(00d30B10D00B",
                                         "round(10B",
                                         "textureGatherOffsets(00X10B70D",
                                         "textureProjOffset(00d30B10D",
                                         "notEqual(10E10E",
                                         "textureProj(00R30B",
                                         "matrixCompMult(50B50B",
                                         "equal(20F20F",
                                         "gl_MaxFragmentInputVectors",
                                         "equal(30B30B",
                                         "textureLod(00U20B00B",
                                         "usubBorrow(10E10E10E",
                                         "equal(10B10B",
                                         "fma(00B00B00B",
                                         "textureProjGradOffset(00I20B10B10B10D",
                                         "texture2DProjLod(00I30B00B",
                                         "isnan(10B",
                                         "uaddCarry(20E20E20E",
                                         "max(10B10B",
                                         "atomicMax(00E00E",
                                         "gl_PointSize",
                                         "atomicMin(00D00D",
                                         "textureSize(00X00D",
                                         "greaterThan(10B10B",
                                         "asin(10B",
                                         "textureGather(00d10B00B",
                                         "trunc(10B",
                                         "gl_MaxComputeAtomicCounters",
                                         "textureProj(00X30B",
                                         "gl_MaxVertexAtomicCounters",
                                         "length(20B",
                                         "bitfieldInsert(30E30E00D00D",
                                         "textureOffset(00S20B20D",
                                         "textureProjOffset(00X20B10D",
                                         "clamp(30D00D00D",
                                         "clamp(10B00B00B",
                                         "textureProj(00R20B",
                                         "textureProj(00I20B00B",
                                         "greaterThan(10E10E",
                                         "textureGatherOffsets(00L20B70D00D",
                                         "textureProjOffset(00R30B10D00B",
                                         "dFdy(00B",
                                         "min(30D00D",
                                         "floatBitsToInt(00B",
                                         "sign(10B",
                                         "max(00E00E",
                                         "texture(00a20B00B",
                                         "texture(00M10B00B",
                                         "smoothstep(20B20B20B",
                                         "textureCubeLod(00K20B00B",
                                         "textureOffset(00J20B20D",
                                         "texelFetch(00J20D00D",
                                         "textureProj(00M20B00B",
                                         "floatBitsToUint(00B",
                                         "textureProjGradOffset(00R30B10B10B10D",
                                         "textureLod(00K20B00B",
                                         "textureProjOffset(00X30B10D00B",
                                         "cos(20B",
                                         "exp2(00B",
                                         "radians(30B",
                                         "texture2DRectProj(00O20B",
                                         "tan(20B",
                                         "textureGather(00T20B",
                                         "textureGather(00a20B00D",
                                         "textureProjGradOffset(00J30B20B20B20D",
                                         "asinh(10B",
                                         "textureProjGrad(00X30B10B10B",
                                         "floor(00B",
                                         "gl_DrawID",
                                         "atomicOr(00D00D",
                                         "texture3DLod(00J20B00B"};

// Flat array of offsets from a symbol into the rules table.
constexpr uint16_t kMangledOffsets[] = {
    0,     // textureProj_00R30B00B
    2,     // imageStore_01G20D30D
    3,     // texture_00N10B00B
    4,     // clamp_10D00D00D
    6,     // gl_PrimitiveID
    8,     // texture_00R10B00B
    10,    // modf_00B00B
    12,    // gl_MaxAtomicCounterBindings
    14,    // notEqual_20D20D
    16,    // gl_MaxComputeImageUniforms
    18,    // textureLod_00L20B00B
    20,    // angle_BaseVertex
    21,    // determinant_A0B
    22,    // textureProjGrad_00I30B10B10B
    24,    // tanh_30B
    26,    // gl_Layer
    28,    // textureOffset_00d20B10D
    30,    // dFdx_30B
    33,    // clamp_00E00E00E
    35,    // transpose_50B
    37,    // ldexp_00B00D
    39,    // textureGather_00K20B00D
    41,    // lessThanEqual_30B30B
    43,    // greaterThanEqual_20D20D
    45,    // min_20E20E
    47,    // asin_20B
    49,    // outerProduct_20B30B
    51,    // bitfieldInsert_00D00D00D00D
    53,    // textureProjGrad_00Y30B20B20B
    55,    // roundEven_30B
    57,    // acosh_20B
    59,    // atanh_10B
    61,    // mix_20B20B00B
    63,    // imageLoad_01C20D
    64,    // clamp_10B10B10B
    66,    // textureGrad_00I10B10B10B
    68,    // textureGatherOffset_00L20B10D00D
    70,    // bitCount_00D
    72,    // step_00B20B
    74,    // lessThan_30E30E
    76,    // uintBitsToFloat_30E
    78,    // imulExtended_30D30D30D30D
    80,    // textureSize_00K00D
    82,    // imageStore_01B10D30E
    83,    // transpose_70B
    85,    // textureProjOffset_00S30B20D00B
    87,    // textureProjLod_00X30B00B
    89,    // textureSize_00Y00D
    91,    // gl_MinProgramTexelOffset
    93,    // texture_00d20B
    95,    // textureProj_00J30B00B
    97,    // atan_10B10B
    99,    // max_20B00B
    101,   // clamp_30B30B30B
    103,   // EndPrimitive_
    104,   // textureLod_00Y20B00B
    106,   // textureLodOffset_00a20B00B10D
    108,   // texelFetchOffset_00Y20D00D20D
    110,   // texelFetch_00a20D00D
    112,   // min_20D00D
    114,   // textureGatherOffsets_00I10B70D00D
    117,   // textureGatherOffsets_00X10B70D00D
    120,   // uintBitsToFloat_00E
    122,   // lessThanEqual_20B20B
    124,   // texelFetch_00N10D00D
    125,   // atomicAdd_00D00D
    127,   // gl_MaxGeometryOutputComponents
    128,   // gl_MaxGeometryTextureImageUnits
    129,   // floatBitsToUint_20B
    131,   // bitfieldInsert_20D20D00D00D
    133,   // textureGatherOffsets_00U20B70D
    136,   // texture_00Z20B
    138,   // min_10D10D
    140,   // degrees_20B
    142,   // tanh_00B
    144,   // textureProjOffset_00J30B20D00B
    146,   // all_30F
    148,   // abs_20D
    150,   // abs_20B
    152,   // inversesqrt_00B
    154,   // matrixCompMult_D0BD0B
    155,   // lessThanEqual_10B10B
    157,   // bitfieldReverse_20D
    159,   // bitfieldReverse_20E
    161,   // textureProjGrad_00S30B20B20B
    163,   // equal_10D10D
    165,   // max_30D00D
    167,   // groupMemoryBarrier_
    169,   // mix_00B00B00F
    171,   // textureProjGradOffset_00R20B10B10B10D
    173,   // imageLoad_01A10D
    174,   // intBitsToFloat_30D
    176,   // textureProj_00I20B
    178,   // texelFetch_00I10D00D
    180,   // imageStore_01I20D30B
    181,   // min_30B30B
    183,   // gl_MaxVertexAtomicCounterBuffers
    185,   // textureLodOffset_00S20B00B20D
    187,   // textureGatherOffset_00R10B10D
    189,   // acos_00B
    191,   // fract_10B
    193,   // transpose_E0B
    195,   // intBitsToFloat_00D
    197,   // textureGradOffset_00J20B20B20B20D
    199,   // textureGatherOffsets_00f20B00B70D
    202,   // texture2DGradEXT_00I10B10B10B
    203,   // bitfieldInsert_00E00E00D00D
    205,   // atomicXor_00D00D
    207,   // greaterThan_20B20B
    209,   // textureLodOffset_00I10B00B10D
    211,   // texelFetch_00Y20D00D
    213,   // texture2DProjGradEXT_00I30B10B10B
    214,   // textureGrad_00d20B10B10B
    216,   // textureProjOffset_00R30B10D
    218,   // textureOffset_00U20B10D
    220,   // atan_10B
    222,   // modf_10B10B
    224,   // min_30B00B
    226,   // determinant_50B
    227,   // lessThan_20B20B
    229,   // atomicAnd_00D00D
    231,   // gl_FragColor
    233,   // exp_10B
    235,   // textureProjOffset_00I20B10D00B
    237,   // step_00B10B
    239,   // bitCount_30D
    241,   // textureProjLod_00I20B00B
    243,   // unpackUnorm2x16_00E
    245,   // rgb_2_yuv_20B00H
    246,   // sqrt_20B
    248,   // sign_20B
    250,   // sign_20D
    252,   // atanh_00B
    254,   // textureGradOffset_00X10B10B10B10D
    256,   // gl_DepthRange
    258,   // textureGatherOffsets_00I10B70D
    261,   // imulExtended_10D10D10D10D
    263,   // atan_20B
    265,   // texture_00M10B
    266,   // gl_MaxVertexOutputVectors
    268,   // texture_00T20B
    270,   // gl_PerVertex
    271,   // log2_10B
    273,   // min_10B10B
    275,   // gl_MaxImageUnits
    277,   // pow_10B10B
    279,   // findLSB_20E
    281,   // findLSB_20D
    283,   // texture_00Y20B
    285,   // packUnorm4x8_30B
    287,   // texture_00X10B00B
    289,   // frexp_00B00D
    291,   // texture2D_00I10B
    293,   // not_10F
    295,   // texelFetch_00P10D00D
    298,   // lessThan_10E10E
    300,   // ceil_20B
    302,   // textureLodOffset_00R10B00B10D
    304,   // clamp_10D10D10D
    306,   // texelFetch_00M10D00D
    307,   // texture_00O10B
    308,   // transpose_F0B
    310,   // textureOffset_00Y20B20D00B
    312,   // textureGradOffset_00S20B20B20B20D
    314,   // atomicXor_00E00E
    316,   // textureProjOffset_00R20B10D
    318,   // gl_FragCoord
    320,   // clamp_30E30E30E
    322,   // textureProj_00N30B00B
    323,   // textureSize_00R00D
    325,   // gl_MaxFragmentImageUniforms
    327,   // normalize_00B
    329,   // textureOffset_00I10B10D
    331,   // atomicExchange_00E00E
    333,   // textureProj_00I30B00B
    335,   // acosh_10B
    337,   // gl_MaxCombinedShaderOutputResources
    339,   // atomicOr_00E00E
    341,   // min_20B00B
    343,   // textureProj_00M30B00B
    344,   // atomicMax_00D00D
    346,   // textureProj_00M20B
    347,   // texture_00I10B00B
    349,   // reflect_00B00B
    351,   // mod_20B00B
    353,   // lessThan_20D20D
    355,   // reflect_10B10B
    357,   // floatBitsToUint_10B
    359,   // textureLod_00J20B00B
    361,   // sqrt_10B
    363,   // textureProjLod_00S30B00B
    365,   // clamp_20E20E20E
    367,   // atomicAnd_00E00E
    369,   // max_20D00D
    371,   // textureSize_00I00D
    373,   // gl_MaxComputeAtomicCounterBuffers
    375,   // gl_PrimitiveIDIn
    376,   // texelFetchOffset_00R10D00D10D
    378,   // isinf_30B
    380,   // textureGatherOffsets_00U20B70D00D
    383,   // textureGatherOffset_00I10B10D
    385,   // textureOffset_00L20B10D00B
    387,   // textureLodOffset_00X10B00B10D
    389,   // texture_00T20B00B
    391,   // textureOffset_00L20B10D
    393,   // lessThanEqual_30E30E
    395,   // textureOffset_00J20B20D00B
    397,   // textureGatherOffset_00a20B10D00D
    399,   // min_10E00E
    401,   // log_30B
    403,   // imageStore_01J20D30D
    404,   // atomicCounter_00G
    406,   // textureProjOffset_00S30B20D
    408,   // imageLoad_01I20D
    409,   // round_00B
    411,   // smoothstep_00B00B20B
    413,   // imageLoad_01H20D
    414,   // textureGather_00K20B
    416,   // bitfieldInsert_30D30D00D00D
    418,   // fwidth_10B
    421,   // textureProjLod_00R20B00B
    423,   // notEqual_30D30D
    425,   // refract_10B10B00B
    427,   // textureProjOffset_00I20B10D
    429,   // greaterThan_30D30D
    431,   // greaterThan_10D10D
    433,   // texture_00U20B
    435,   // textureSize_00a00D
    437,   // bitfieldExtract_10E00D00D
    439,   // gl_MaxDrawBuffers
    441,   // textureGatherOffset_00U20B10D00D
    443,   // textureProjLod_00J30B00B
    445,   // texture2DRect_00O10B
    446,   // imulExtended_20D20D20D20D
    448,   // any_30F
    450,   // distance_30B30B
    452,   // greaterThan_20D20D
    454,   // textureOffset_00a20B10D
    456,   // greaterThan_30B30B
    458,   // trunc_00B
    460,   // sinh_30B
    462,   // length_10B
    464,   // findMSB_10E
    466,   // findMSB_10D
    468,   // dot_00B00B
    470,   // asinh_20B
    472,   // dot_30B30B
    474,   // bitCount_00E
    476,   // tan_30B
    478,   // textureLod_00T20B00B
    480,   // imageStore_00z10D30B
    481,   // usubBorrow_20E20E20E
    483,   // textureProjGrad_00R30B10B10B
    485,   // exp2_10B
    487,   // textureProj_00O20B
    488,   // textureProjOffset_00X20B10D00B
    490,   // outerProduct_10B20B
    492,   // gl_MaxGeometryAtomicCounterBuffers
    493,   // textureProjGradOffset_00X30B10B10B10D
    495,   // textureOffset_00I10B10D00B
    497,   // clamp_30B00B00B
    499,   // inverse_50B
    501,   // lessThan_20E20E
    503,   // dot_10B10B
    505,   // unpackHalf2x16_00E
    507,   // matrixCompMult_A0BA0B
    509,   // texture2DProjLod_00I20B00B
    511,   // texelFetch_00W20D00D
    512,   // texture2DRectProj_00O30B
    513,   // radians_20B
    515,   // textureGrad_00S20B20B20B
    517,   // max_10D00D
    519,   // round_30B
    521,   // gl_MaxComputeTextureImageUnits
    523,   // clamp_00D00D00D
    525,   // sin_30B
    527,   // floor_30B
    529,   // textureProj_00S30B00B
    531,   // textureGrad_00Y20B20B20B
    533,   // gl_MaxCombinedAtomicCounters
    535,   // textureGather_00L20B00D
    537,   // textureProjGradOffset_00S30B20B20B20D
    539,   // imageStore_01A10D30D
    540,   // gl_MaxGeometryOutputVertices
    541,   // texture_00J20B
    543,   // gl_MaxVertexTextureImageUnits
    545,   // gl_PointCoord
    547,   // dFdx_20B
    550,   // imageStore_01F20D30B
    551,   // textureProj_00X20B
    553,   // max_10E10E
    555,   // max_30B30B
    557,   // clamp_10E10E10E
    559,   // texelFetchOffset_00S20D00D20D
    561,   // texture_00N10B
    562,   // texture_00L20B
    564,   // barrier_
    566,   // gl_MaxGeometryUniformComponents
    567,   // greaterThanEqual_20E20E
    569,   // lessThan_10D10D
    571,   // texelFetchOffset_00a20D00D10D
    573,   // textureProjGradOffset_00X20B10B10B10D
    575,   // texture2DProj_00I20B
    577,   // texture3DProjLod_00J30B00B
    578,   // not_20F
    580,   // Empty
    580,   // findMSB_20D
    582,   // findMSB_20E
    584,   // texelFetchOffset_00I10D00D10D
    586,   // textureGather_00I10B00D
    588,   // texelFetch_00V10D00D
    591,   // outerProduct_20B20B
    593,   // atan_30B30B
    595,   // unpackSnorm4x8_00E
    597,   // bitCount_30E
    599,   // textureProjLodOffset_00R20B00B10D
    601,   // log_20B
    603,   // textureGatherOffsets_00R10B70D
    606,   // asin_30B
    608,   // textureGather_00f20B
    609,   // modf_30B30B
    611,   // texture_00y10B
    613,   // isnan_20B
    615,   // max_00B00B
    617,   // roundEven_20B
    619,   // fwidth_00B
    622,   // textureProjGrad_00J30B20B20B
    624,   // dFdy_10B
    627,   // outerProduct_30B10B
    629,   // floatBitsToInt_30B
    631,   // textureProj_00J30B
    633,   // gl_InvocationID
    634,   // max_30E00E
    636,   // exp2_20B
    638,   // textureLod_00d20B00B
    640,   // radians_10B
    642,   // texelFetch_00U20D00D
    644,   // gl_MaxComputeWorkGroupSize
    646,   // gl_BaseVertex
    647,   // max_00D00D
    649,   // gl_LastFragData
    651,   // ceil_30B
    653,   // atomicMin_00E00E
    655,   // gl_MaxCombinedTextureImageUnits
    657,   // bitCount_10E
    659,   // texture_00S20B00B
    661,   // textureGather_00e20B00B
    663,   // gl_DepthRangeParameters
    665,   // distance_10B10B
    667,   // reflect_20B20B
    669,   // mod_10B00B
    671,   // uintBitsToFloat_10E
    673,   // textureGrad_00Z20B20B20B
    675,   // equal_10F10F
    677,   // cosh_00B
    679,   // bitfieldReverse_00D
    681,   // bitfieldReverse_00E
    683,   // max_20E20E
    685,   // matrixCompMult_70B70B
    686,   // bitfieldExtract_30E00D00D
    688,   // textureLod_00I10B00B
    690,   // greaterThanEqual_10D10D
    692,   // imageSize_01F
    693,   // texture_00e30B00B
    695,   // textureLodOffset_00Y20B00B20D
    697,   // log2_00B
    699,   // gl_LastFragColor
    700,   // abs_10D
    702,   // abs_10B
    704,   // acos_30B
    706,   // tanh_10B
    708,   // degrees_30B
    710,   // imageStore_01E20D30E
    711,   // dFdx_10B
    714,   // textureProjOffset_00I30B10D
    716,   // bitfieldReverse_30E
    718,   // bitfieldReverse_30D
    720,   // inversesqrt_30B
    722,   // gl_LocalInvocationID
    724,   // Empty
    724,   // clamp_00B00B00B
    726,   // textureGather_00d10B
    727,   // frexp_20B20D
    729,   // intBitsToFloat_20D
    731,   // fract_00B
    733,   // gl_FragDepth
    735,   // min_30E00E
    737,   // exp_20B
    739,   // equal_20B20B
    741,   // textureProjLodOffset_00X20B00B10D
    743,   // acosh_00B
    745,   // log_10B
    747,   // textureVideoWEBGL_00y10B
    749,   // textureProjLodOffset_00S30B00B20D
    751,   // sinh_20B
    753,   // fma_10B10B10B
    756,   // textureGatherOffsets_00a20B70D00D
    759,   // reflect_30B30B
    761,   // outerProduct_30B20B
    763,   // texture_00U20B00B
    765,   // texture_00S20B
    767,   // imageLoad_01F20D
    768,   // outerProduct_20B10B
    770,   // umulExtended_10E10E10E10E
    772,   // texture_00Z20B00B
    774,   // textureGradOffset_00a20B10B10B10D
    776,   // notEqual_20F20F
    778,   // mod_30B30B
    780,   // bitfieldExtract_10D00D00D
    782,   // sign_30B
    784,   // sign_30D
    786,   // pow_00B00B
    788,   // mod_00B00B
    790,   // texture_00Y20B00B
    792,   // notEqual_30B30B
    794,   // roundEven_10B
    796,   // texture2DProjLodEXT_00I30B00B
    797,   // atanh_30B
    799,   // dFdy_20B
    802,   // textureProj_00Y30B
    804,   // bitCount_20D
    806,   // step_00B00B
    808,   // texelFetch_00L20D00D
    810,   // memoryBarrierBuffer_
    812,   // isinf_00B
    814,   // imageSize_00z
    815,   // distance_20B20B
    817,   // textureGrad_00U20B10B10B
    819,   // uaddCarry_30E30E30E
    821,   // mod_30B00B
    823,   // texture_00K20B00B
    825,   // gl_MaxCombinedImageUniforms
    827,   // yuv_2_rgb_20B00H
    828,   // textureGather_00f20B00B
    830,   // greaterThan_20E20E
    832,   // textureGrad_00a20B10B10B
    834,   // textureOffset_00U20B10D00B
    836,   // intBitsToFloat_10D
    838,   // texture_00J20B00B
    840,   // refract_20B20B00B
    842,   // textureProjLod_00I30B00B
    844,   // refract_00B00B00B
    846,   // findLSB_10D
    848,   // findLSB_10E
    850,   // mix_10B10B10F
    852,   // mix_10B10B10B
    854,   // textureProj_00Y30B00B
    856,   // texture3D_00J20B
    857,   // transpose_D0B
    859,   // log2_30B
    861,   // textureGrad_00J20B20B20B
    863,   // textureProjGrad_00d30B10B10B
    865,   // fract_30B
    867,   // gl_LocalInvocationIndex
    869,   // textureSize_00J00D
    871,   // textureGatherOffset_00I10B10D00D
    873,   // textureGather_00X10B00D
    875,   // texelFetchOffset_00U20D00D10D
    877,   // textureProjLodOffset_00Y30B00B20D
    879,   // textureSize_00e00D
    881,   // notEqual_20E20E
    883,   // textureLodOffset_00d20B00B10D
    885,   // inverse_A0B
    887,   // textureProjGrad_00X20B10B10B
    889,   // max_30E30E
    891,   // isnan_30B
    893,   // imulExtended_00D00D00D00D
    895,   // gl_in
    896,   // atan_20B20B
    898,   // usubBorrow_00E00E00E
    900,   // textureProjLodOffset_00J30B00B20D
    902,   // frexp_30B30D
    904,   // gl_SecondaryFragDataEXT
    905,   // min_30E30E
    907,   // imageLoad_01B10D
    908,   // texture2DProj_00I30B00B
    910,   // textureCubeGradEXT_00K20B20B20B
    911,   // texture_00I10B
    913,   // textureGatherOffsets_00d10B00B70D
    916,   // min_00B00B
    918,   // gl_InstanceID
    920,   // texelFetch_00c20D00D
    921,   // gl_MaxVertexImageUniforms
    923,   // sqrt_00B
    925,   // normalize_20B
    927,   // gl_MaxFragmentAtomicCounterBuffers
    929,   // gl_WorkGroupID
    931,   // degrees_00B
    933,   // inverse_F0B
    935,   // min_20E00E
    937,   // textureProjLod_00R30B00B
    939,   // textureSize_00P
    942,   // textureGradOffset_00d20B10B10B10D
    944,   // textureProjLodOffset_00R30B00B10D
    946,   // atan_00B
    948,   // atomicExchange_00D00D
    950,   // textureGatherOffset_00R10B10D00D
    952,   // gl_MaxGeometryAtomicCounters
    953,   // texture2D_00I10B00B
    955,   // textureProj_00X20B00B
    957,   // clamp_20D20D20D
    959,   // greaterThan_30E30E
    961,   // frexp_10B10D
    963,   // max_10E00E
    965,   // smoothstep_00B00B10B
    967,   // gl_GlobalInvocationID
    969,   // matrixCompMult_60B60B
    970,   // memoryBarrierShared_
    972,   // normalize_10B
    974,   // unpackSnorm2x16_00E
    976,   // imageLoad_00z10D
    977,   // lessThan_30D30D
    979,   // atan_00B00B
    981,   // bitfieldExtract_20D00D00D
    983,   // texture_00L20B00B
    985,   // notEqual_10B10B
    987,   // imageLoad_01G20D
    988,   // bitfieldExtract_00E00D00D
    990,   // atomicCompSwap_00D00D00D
    992,   // trunc_30B
    994,   // matrixCompMult_E0BE0B
    995,   // length_00B
    997,   // any_20F
    999,   // textureGatherOffsets_00L20B70D
    1002,  // textureProj_00X30B00B
    1004,  // gl_HelperInvocation
    1006,  // textureGather_00L20B
    1008,  // gl_ViewID_OVR
    1009,  // floor_10B
    1011,  // sin_10B
    1013,  // textureSize_00N00D
    1014,  // texelFetchOffset_00J20D00D20D
    1016,  // tan_00B
    1018,  // mod_20B20B
    1020,  // imageLoad_01J20D
    1021,  // gl_WorkGroupSize
    1023,  // asinh_30B
    1025,  // outerProduct_10B30B
    1027,  // textureCube_00K20B
    1029,  // textureSize_00c
    1030,  // textureSize_00b
    1033,  // cos_00B
    1035,  // min_20B20B
    1037,  // textureGradOffset_00f30B10B10B10D
    1039,  // max_20D20D
    1041,  // textureProj_00I30B
    1043,  // max_10D10D
    1045,  // textureOffset_00a20B10D00B
    1047,  // textureGather_00X10B
    1049,  // pow_30B30B
    1051,  // textureGather_00a20B
    1053,  // smoothstep_10B10B10B
    1055,  // textureProj_00O30B
    1056,  // textureGatherOffset_00d10B00B10D
    1058,  // refract_30B30B00B
    1060,  // bitfieldInsert_20E20E00D00D
    1062,  // floor_20B
    1064,  // equal_20E20E
    1066,  // mix_00B00B00B
    1068,  // imageSize_01B
    1069,  // greaterThanEqual_20B20B
    1071,  // uaddCarry_00E00E00E
    1073,  // sin_20B
    1075,  // imageLoad_01K20D
    1076,  // textureSize_00Q
    1077,  // round_20B
    1079,  // matrixCompMult_90B90B
    1080,  // textureProjLod_00d30B00B
    1082,  // textureSize_00W
    1083,  // textureProjLod_00X20B00B
    1085,  // gl_MaxCombinedAtomicCounterBuffers
    1087,  // isnan_00B
    1089,  // umulExtended_30E30E30E30E
    1091,  // faceforward_30B30B30B
    1093,  // textureGradOffset_00Y20B20B20B20D
    1095,  // clamp_30E00E00E
    1097,  // asin_00B
    1099,  // ceil_00B
    1101,  // texture3D_00J20B00B
    1102,  // distance_00B00B
    1104,  // texture_00a20B
    1106,  // textureGatherOffset_00a20B10D
    1108,  // textureGrad_00f30B10B10B
    1110,  // texture2DProj_00I30B
    1112,  // modf_20B20B
    1114,  // textureGradOffset_00I10B10B10B10D
    1116,  // notEqual_30E30E
    1118,  // textureGather_00I10B
    1120,  // lessThanEqual_10E10E
    1122,  // inversesqrt_20B
    1124,  // textureLodOffset_00J20B00B20D
    1126,  // min_30D30D
    1128,  // textureOffset_00R10B10D00B
    1130,  // textureGrad_00e30B20B20B
    1132,  // atomicAdd_00E00E
    1134,  // gl_MaxGeometryInputComponents
    1135,  // findMSB_30E
    1137,  // findMSB_30D
    1139,  // textureGrad_00X10B10B10B
    1141,  // length_30B
    1143,  // greaterThanEqual_30E30E
    1145,  // fwidth_30B
    1148,  // textureGrad_00K20B20B20B
    1150,  // mix_20B20B20F
    1152,  // texelFetch_00S20D00D
    1154,  // textureGradOffset_00U20B10B10B10D
    1156,  // mix_20B20B20B
    1158,  // floatBitsToInt_10B
    1160,  // max_10B00B
    1162,  // textureGatherOffset_00L20B10D
    1164,  // textureLod_00a20B00B
    1166,  // any_10F
    1168,  // textureProjGradOffset_00d30B10B10B10D
    1170,  // textureProj_00N30B
    1171,  // gl_MaxProgramTexelOffset
    1173,  // exp2_30B
    1175,  // texelFetchOffset_00L20D00D10D
    1177,  // equal_30D30D
    1179,  // texture3DProj_00J30B00B
    1180,  // imageStore_01D20D30D
    1181,  // packSnorm2x16_10B
    1183,  // floatBitsToUint_30B
    1185,  // lessThanEqual_30D30D
    1187,  // gl_MaxGeometryImageUniforms
    1188,  // asinh_00B
    1190,  // textureOffset_00R10B10D
    1192,  // greaterThanEqual_10E10E
    1194,  // textureProjGradOffset_00I30B10B10B10D
    1196,  // textureGather_00Z20B
    1198,  // textureOffset_00X10B10D
    1200,  // cosh_30B
    1202,  // textureOffset_00d20B10D00B
    1204,  // texture_00R10B
    1206,  // textureOffset_00S20B20D00B
    1208,  // usubBorrow_30E30E30E
    1210,  // radians_00B
    1212,  // textureProjOffset_00R20B10D00B
    1214,  // ldexp_30B30D
    1216,  // max_30B00B
    1218,  // min_20D20D
    1220,  // imageStore_01K20D30E
    1221,  // step_10B10B
    1223,  // gl_MaxDualSourceDrawBuffersEXT
    1224,  // step_30B30B
    1226,  // bitfieldReverse_10E
    1228,  // bitfieldReverse_10D
    1230,  // texture3DProj_00J30B
    1231,  // gl_FragDepthEXT
    1232,  // matrixCompMult_B0BB0B
    1233,  // lessThan_30B30B
    1235,  // cross_20B20B
    1237,  // all_10F
    1239,  // clamp_20B00B00B
    1241,  // tanh_20B
    1243,  // dFdx_00B
    1246,  // matrixCompMult_F0BF0B
    1248,  // textureProjOffset_00Y30B20D
    1250,  // abs_00D
    1252,  // abs_00B
    1254,  // textureLod_00R10B00B
    1256,  // step_20B20B
    1258,  // gl_MaxFragmentAtomicCounters
    1260,  // textureLodOffset_00U20B00B10D
    1262,  // textureProj_00R20B00B
    1264,  // faceforward_20B20B20B
    1266,  // imageSize_01E
    1267,  // acos_20B
    1269,  // texelFetch_00X10D00D
    1271,  // sinh_00B
    1273,  // imageSize_01A
    1274,  // texture2DLod_00I10B00B
    1276,  // memoryBarrierAtomicCounter_
    1278,  // texelFetch_00b10D00D
    1281,  // fma_20B20B20B
    1284,  // gl_MaxAtomicCounterBufferSize
    1286,  // max_20B20B
    1288,  // textureGatherOffset_00f20B00B10D
    1290,  // outerProduct_30B30B
    1292,  // lessThanEqual_20E20E
    1294,  // textureLod_00X10B00B
    1296,  // exp_30B
    1298,  // memoryBarrier_
    1300,  // imageSize_01D
    1301,  // step_00B30B
    1303,  // bitCount_10D
    1305,  // equal_30E30E
    1307,  // sign_00B
    1309,  // log_00B
    1311,  // textureLod_00Z20B00B
    1313,  // sign_00D
    1315,  // textureOffset_00Y20B20D
    1317,  // transpose_60B
    1319,  // findMSB_00D
    1321,  // gl_MaxGeometryTotalOutputComponents
    1322,  // acosh_30B
    1324,  // findMSB_00E
    1326,  // bitfieldExtract_20E00D00D
    1328,  // uintBitsToFloat_20E
    1330,  // unpackUnorm4x8_00E
    1332,  // texture2DProj_00M20B
    1333,  // texelFetchOffset_00X10D00D10D
    1335,  // mod_10B10B
    1337,  // texture_00d20B00B
    1339,  // notEqual_10D10D
    1341,  // texture2DProj_00M30B
    1342,  // textureSize_00V
    1345,  // packUnorm2x16_10B
    1347,  // faceforward_00B00B00B
    1349,  // umulExtended_20E20E20E20E
    1351,  // textureOffset_00X10B10D00B
    1353,  // cos_30B
    1355,  // findLSB_30D
    1357,  // findLSB_30E
    1359,  // bitCount_20E
    1361,  // gl_NumWorkGroups
    1363,  // equal_20D20D
    1365,  // textureProjOffset_00Y30B20D00B
    1367,  // textureGatherOffset_00U20B10D
    1369,  // faceforward_10B10B10B
    1371,  // textureSize_00L00D
    1373,  // gl_MaxComputeUniformComponents
    1375,  // textureGather_00R10B00D
    1377,  // imageStore_01H20D30E
    1378,  // textureSize_00Z00D
    1380,  // textureGather_00U20B
    1382,  // bitfieldExtract_30D00D00D
    1384,  // min_10D00D
    1386,  // texelFetch_00Q20D00D
    1387,  // max_20E00E
    1389,  // textureProj_00S30B
    1391,  // roundEven_00B
    1393,  // texture2DLodEXT_00I10B00B
    1394,  // dFdy_30B
    1397,  // atanh_20B
    1399,  // clamp_10E00E00E
    1401,  // imageStore_01C20D30B
    1402,  // clamp_20D00D00D
    1404,  // all_20F
    1406,  // isinf_10B
    1408,  // textureGatherOffsets_00a20B70D
    1411,  // imageSize_01J
    1412,  // imageSize_01K
    1413,  // imageSize_01H
    1414,  // imageSize_01I
    1415,  // packHalf2x16_10B
    1417,  // texture2DProj_00I20B00B
    1419,  // findLSB_00E
    1421,  // findLSB_00D
    1423,  // textureProjOffset_00X30B10D
    1425,  // imageSize_01C
    1426,  // greaterThanEqual_30B30B
    1428,  // textureSize_00U00D
    1430,  // textureGradOffset_00R10B10B10B10D
    1432,  // imageSize_01G
    1433,  // equal_30F30F
    1435,  // bitfieldExtract_00D00D00D
    1437,  // texture2DProjLodEXT_00I20B00B
    1438,  // notEqual_30F30F
    1440,  // gl_FrontFacing
    1442,  // gl_SecondaryFragColorEXT
    1443,  // inversesqrt_10B
    1445,  // gl_MaxComputeWorkGroupCount
    1447,  // acos_10B
    1449,  // abs_30D
    1451,  // gl_MaxFragmentUniformVectors
    1453,  // fract_20B
    1455,  // abs_30B
    1457,  // lessThan_10B10B
    1459,  // textureGatherOffset_00X10B10D
    1461,  // bitfieldInsert_10E10E00D00D
    1463,  // packSnorm4x8_30B
    1465,  // mix_10B10B00B
    1467,  // imageLoad_01E20D
    1468,  // clamp_30D30D30D
    1470,  // textureGather_00U20B00D
    1472,  // textureSize_00f00D
    1474,  // textureProj_00N20B00B
    1475,  // gl_FragData
    1477,  // textureProj_00d30B00B
    1479,  // clamp_20E00E00E
    1481,  // texture_00X10B
    1483,  // textureProj_00d30B
    1485,  // mix_30B30B30F
    1487,  // determinant_F0B
    1488,  // transpose_A0B
    1490,  // pow_20B20B
    1492,  // texture2DProjGradEXT_00I20B10B10B
    1493,  // gl_LastFragColorARM
    1494,  // textureGather_00Z20B00D
    1496,  // textureGather_00R10B
    1498,  // lessThanEqual_20D20D
    1500,  // textureLod_00S20B00B
    1502,  // textureProjLod_00Y30B00B
    1504,  // cosh_10B
    1506,  // sqrt_30B
    1508,  // gl_VertexID
    1510,  // sign_10D
    1512,  // textureProj_00M30B
    1513,  // exp_00B
    1515,  // min_00E00E
    1517,  // max_30D30D
    1519,  // umulExtended_00E00E00E00E
    1521,  // gl_MaxVertexAttribs
    1523,  // gl_BaseInstance
    1524,  // transpose_B0B
    1526,  // fwidth_20B
    1529,  // Empty
    1529,  // smoothstep_00B00B30B
    1531,  // floatBitsToInt_20B
    1533,  // textureSize_00M00D
    1534,  // log2_20B
    1536,  // ldexp_10B10D
    1538,  // min_10B00B
    1540,  // mix_30B30B00B
    1542,  // angle_BaseInstance
    1543,  // degrees_10B
    1545,  // gl_MaxTextureImageUnits
    1547,  // gl_Position
    1550,  // texture_00K20B
    1552,  // atomicCompSwap_00E00E00E
    1554,  // fma_30B30B30B
    1557,  // sinh_10B
    1559,  // atan_30B
    1561,  // textureGatherOffsets_00R10B70D00D
    1564,  // textureGradOffset_00L20B10B10B10D
    1566,  // ceil_10B
    1568,  // textureSize_00S00D
    1570,  // greaterThanEqual_10B10B
    1572,  // atomicCounterDecrement_00G
    1574,  // textureCube_00K20B00B
    1576,  // dot_20B20B
    1578,  // transpose_90B
    1580,  // not_30F
    1582,  // textureProjLodOffset_00I20B00B10D
    1584,  // notEqual_10F10F
    1586,  // textureProjGrad_00R20B10B10B
    1588,  // texture_00f30B
    1590,  // smoothstep_00B00B00B
    1592,  // textureProjLodOffset_00d30B00B10D
    1594,  // texelFetch_00R10D00D
    1596,  // cosh_20B
    1598,  // textureProjLodOffset_00I30B00B10D
    1600,  // normalize_30B
    1602,  // smoothstep_30B30B30B
    1604,  // bitfieldInsert_10D10D00D00D
    1606,  // clamp_20B20B20B
    1608,  // textureGrad_00L20B10B10B
    1610,  // textureGrad_00R10B10B10B
    1612,  // textureProjGrad_00I20B10B10B
    1614,  // textureGather_00e20B
    1615,  // texture2D_00M10B
    1616,  // min_00D00D
    1618,  // outerProduct_10B10B
    1620,  // lessThanEqual_10D10D
    1622,  // trunc_20B
    1624,  // gl_MaxVaryingVectors
    1626,  // textureProjOffset_00I30B10D00B
    1628,  // textureSize_00d00D
    1630,  // sin_00B
    1632,  // gl_MaxVertexUniformVectors
    1634,  // textureCubeLodEXT_00K20B00B
    1635,  // textureGather_00T20B00D
    1637,  // textureProj_00N20B
    1638,  // uaddCarry_10E10E10E
    1640,  // tan_10B
    1642,  // textureLodOffset_00L20B00B10D
    1644,  // atomicCounterIncrement_00G
    1646,  // ldexp_20B20D
    1648,  // greaterThanEqual_30D30D
    1650,  // notEqual_20B20B
    1652,  // imageLoad_01D20D
    1653,  // textureProjLodOffset_00X30B00B10D
    1655,  // isinf_20B
    1657,  // cos_10B
    1659,  // mix_30B30B30B
    1661,  // texture_00e30B
    1663,  // textureSize_00T00D
    1665,  // textureGatherOffset_00X10B10D00D
    1667,  // equal_10E10E
    1669,  // min_10E10E
    1671,  // textureProjGradOffset_00Y30B20B20B20D
    1673,  // textureGrad_00T20B20B20B
    1675,  // memoryBarrierImage_
    1677,  // textureProjOffset_00J30B20D
    1679,  // EmitVertex_
    1680,  // textureProjOffset_00d30B10D00B
    1682,  // round_10B
    1684,  // textureGatherOffsets_00X10B70D
    1687,  // textureProjOffset_00d30B10D
    1689,  // notEqual_10E10E
    1691,  // textureProj_00R30B
    1693,  // matrixCompMult_50B50B
    1695,  // equal_20F20F
    1697,  // gl_MaxFragmentInputVectors
    1699,  // equal_30B30B
    1701,  // textureLod_00U20B00B
    1703,  // usubBorrow_10E10E10E
    1705,  // equal_10B10B
    1707,  // fma_00B00B00B
    1710,  // textureProjGradOffset_00I20B10B10B10D
    1712,  // texture2DProjLod_00I30B00B
    1714,  // isnan_10B
    1716,  // uaddCarry_20E20E20E
    1718,  // max_10B10B
    1720,  // atomicMax_00E00E
    1722,  // gl_PointSize
    1724,  // atomicMin_00D00D
    1726,  // textureSize_00X00D
    1728,  // greaterThan_10B10B
    1730,  // asin_10B
    1732,  // textureGather_00d10B00B
    1734,  // trunc_10B
    1736,  // gl_MaxComputeAtomicCounters
    1738,  // textureProj_00X30B
    1740,  // gl_MaxVertexAtomicCounters
    1742,  // length_20B
    1744,  // bitfieldInsert_30E30E00D00D
    1746,  // textureOffset_00S20B20D
    1748,  // textureProjOffset_00X20B10D
    1750,  // clamp_30D00D00D
    1752,  // clamp_10B00B00B
    1754,  // textureProj_00R20B
    1756,  // textureProj_00I20B00B
    1758,  // greaterThan_10E10E
    1760,  // textureGatherOffsets_00L20B70D00D
    1763,  // textureProjOffset_00R30B10D00B
    1765,  // dFdy_00B
    1768,  // min_30D00D
    1770,  // floatBitsToInt_00B
    1772,  // sign_10B
    1774,  // max_00E00E
    1776,  // texture_00a20B00B
    1778,  // texture_00M10B00B
    1779,  // smoothstep_20B20B20B
    1781,  // textureCubeLod_00K20B00B
    1783,  // textureOffset_00J20B20D
    1785,  // texelFetch_00J20D00D
    1787,  // textureProj_00M20B00B
    1788,  // floatBitsToUint_00B
    1790,  // textureProjGradOffset_00R30B10B10B10D
    1792,  // textureLod_00K20B00B
    1794,  // textureProjOffset_00X30B10D00B
    1796,  // cos_20B
    1798,  // exp2_00B
    1800,  // radians_30B
    1802,  // texture2DRectProj_00O20B
    1803,  // tan_20B
    1805,  // textureGather_00T20B
    1807,  // textureGather_00a20B00D
    1809,  // textureProjGradOffset_00J30B20B20B20D
    1811,  // asinh_10B
    1813,  // textureProjGrad_00X30B10B10B
    1815,  // floor_00B
    1817,  // gl_DrawID
    1818,  // atomicOr_00D00D
    1820,  // texture3DLod_00J20B00B
};

using Ext = TExtension;

// Flat array of all unmangled name identifiers.
constexpr UnmangledEntry unmangled[] = {
    {"all", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"textureProj", Ext::OES_EGL_image_external_essl3, Ext::UNDEFINED, 300, -1, Shader::ALL},
    {"unpackUnorm4x8", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
    {"textureVideoWEBGL", Ext::UNDEFINED, Ext::UNDEFINED, 100, 0, Shader::ALL},
    {"fwidth", Ext::UNDEFINED, Ext::UNDEFINED, 300, 0, Shader::FRAGMENT},
    {"rgb_2_yuv", Ext::EXT_YUV_target, Ext::UNDEFINED, 300, -1, Shader::ALL},
    {"atomicCounterIncrement", Ext::UNDEFINED, Ext::UNDEFINED, 310, 420, Shader::ALL},
    {"yuv_2_rgb", Ext::EXT_YUV_target, Ext::UNDEFINED, 300, -1, Shader::ALL},
    {"findLSB", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
    {"textureCubeGradEXT", Ext::EXT_shader_texture_lod, Ext::UNDEFINED, 100, -1, Shader::ALL},
    {"memoryBarrierImage", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL},
    {"packSnorm4x8", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
    {"inverse", Ext::UNDEFINED, Ext::UNDEFINED, 300, 140, Shader::ALL},
    {"textureCubeLod", Ext::UNDEFINED, Ext::UNDEFINED, 100, 0, Shader::VERTEX},
    {"texture", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"frexp", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
    {"degrees", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"imulExtended", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
    {"texture2DProjGradEXT", Ext::EXT_shader_texture_lod, Ext::UNDEFINED, 100, -1, Shader::ALL},
    {"atomicAnd", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL},
    {"textureProjGradOffset", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"roundEven", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"texture2DProjLodEXT", Ext::EXT_shader_texture_lod, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT},
    {"memoryBarrierAtomicCounter", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL},
    {"ceil", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"not", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"texture2DRectProj", Ext::ARB_texture_rectangle, Ext::UNDEFINED, 100, -1, Shader::ALL},
    {"mod", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"floatBitsToInt", Ext::UNDEFINED, Ext::UNDEFINED, 300, 330, Shader::ALL},
    {"radians", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"smoothstep", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"textureProjGrad", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"lessThan", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"dFdy", Ext::UNDEFINED, Ext::UNDEFINED, 300, 0, Shader::FRAGMENT},
    {"modf", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"unpackSnorm4x8", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
    {"round", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"textureOffset", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"clamp", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"findMSB", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
    {"texture2DRect", Ext::ARB_texture_rectangle, Ext::UNDEFINED, 100, -1, Shader::ALL},
    {"acosh", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"cosh", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"uaddCarry", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
    {"asin", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"isnan", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"atomicMax", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL},
    {"bitfieldReverse", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
    {"dFdx", Ext::UNDEFINED, Ext::UNDEFINED, 300, 0, Shader::FRAGMENT},
    {"memoryBarrierShared", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::COMPUTE},
    {"texture3DLod", Ext::OES_texture_3D, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT},
    {"textureLod", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"faceforward", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"abs", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"max", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"unpackSnorm2x16", Ext::UNDEFINED, Ext::UNDEFINED, 300, 420, Shader::ALL},
    {"log2", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"textureGrad", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"barrier", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::COMPUTE},
    {"texture2DProj", Ext::UNDEFINED, Ext::UNDEFINED, 100, 0, Shader::FRAGMENT},
    {"atomicCounterDecrement", Ext::UNDEFINED, Ext::UNDEFINED, 310, 420, Shader::ALL},
    {"lessThanEqual", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"transpose", Ext::UNDEFINED, Ext::UNDEFINED, 300, 120, Shader::ALL},
    {"step", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"sinh", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"textureProjOffset", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"trunc", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"cos", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"equal", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"texture2DLodEXT", Ext::EXT_shader_texture_lod, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT},
    {"usubBorrow", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
    {"texelFetchOffset", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"length", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"textureSize", Ext::OES_EGL_image_external_essl3, Ext::UNDEFINED, 300, -1, Shader::ALL},
    {"acos", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"uintBitsToFloat", Ext::UNDEFINED, Ext::UNDEFINED, 300, 330, Shader::ALL},
    {"packUnorm2x16", Ext::UNDEFINED, Ext::UNDEFINED, 300, 400, Shader::ALL},
    {"unpackHalf2x16", Ext::UNDEFINED, Ext::UNDEFINED, 300, 420, Shader::ALL},
    {"matrixCompMult", Ext::UNDEFINED, Ext::UNDEFINED, 300, -1, Shader::ALL},
    {"pow", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"atomicExchange", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL},
    {"texture2DProjLod", Ext::UNDEFINED, Ext::UNDEFINED, 100, 0, Shader::VERTEX},
    {"ldexp", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
    {"floatBitsToUint", Ext::UNDEFINED, Ext::UNDEFINED, 300, 330, Shader::ALL},
    {"textureProjLod", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"textureCubeLodEXT", Ext::EXT_shader_texture_lod, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT},
    {"imageStore", Ext::UNDEFINED, Ext::UNDEFINED, 310, -1, Shader::ALL},
    {"textureGatherOffset", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
    {"textureProjLodOffset", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"log", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"bitCount", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
    {"exp2", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"atomicCompSwap", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL},
    {"fract", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"EmitVertex", Ext::EXT_geometry_shader, Ext::UNDEFINED, 310, -1, Shader::GEOMETRY_EXT},
    {"textureGatherOffsets", Ext::EXT_gpu_shader5, Ext::UNDEFINED, 310, -1, Shader::ALL},
    {"fma", Ext::EXT_gpu_shader5, Ext::UNDEFINED, 310, -1, Shader::ALL},
    {"determinant", Ext::UNDEFINED, Ext::UNDEFINED, 300, -1, Shader::ALL},
    {"textureGather", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
    {"greaterThanEqual", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"greaterThan", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"bitfieldInsert", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
    {"texture3DProj", Ext::OES_texture_3D, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT},
    {"packUnorm4x8", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
    {"sign", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"inversesqrt", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"distance", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"tanh", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"texture2DGradEXT", Ext::EXT_shader_texture_lod, Ext::UNDEFINED, 100, -1, Shader::ALL},
    {"memoryBarrier", Ext::UNDEFINED, Ext::UNDEFINED, 310, 420, Shader::ALL},
    {"atomicCounter", Ext::UNDEFINED, Ext::UNDEFINED, 310, 420, Shader::ALL},
    {"intBitsToFloat", Ext::UNDEFINED, Ext::UNDEFINED, 300, 330, Shader::ALL},
    {"bitfieldExtract", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
    {"texture3DProjLod", Ext::OES_texture_3D, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT},
    {"atomicAdd", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL},
    {"asinh", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"texture2D", Ext::UNDEFINED, Ext::UNDEFINED, 100, 0, Shader::FRAGMENT},
    {"memoryBarrierBuffer", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL},
    {"tan", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"any", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"atomicXor", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL},
    {"normalize", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"imageLoad", Ext::UNDEFINED, Ext::UNDEFINED, 310, -1, Shader::ALL},
    {"floor", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"textureLodOffset", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"atanh", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"cross", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"sqrt", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"mix", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"sin", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"textureGradOffset", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"atan", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"unpackUnorm2x16", Ext::UNDEFINED, Ext::UNDEFINED, 300, 400, Shader::ALL},
    {"reflect", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"isinf", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"texture3D", Ext::OES_texture_3D, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT},
    {"umulExtended", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
    {"atomicOr", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL},
    {"texelFetch", Ext::OES_EGL_image_external_essl3, Ext::UNDEFINED, 300, -1, Shader::ALL},
    {"EndPrimitive", Ext::EXT_geometry_shader, Ext::UNDEFINED, 310, -1, Shader::GEOMETRY_EXT},
    {"notEqual", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"outerProduct", Ext::UNDEFINED, Ext::UNDEFINED, 300, 120, Shader::ALL},
    {"imageSize", Ext::UNDEFINED, Ext::UNDEFINED, 310, -1, Shader::ALL},
    {"refract", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"min", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"textureCube", Ext::UNDEFINED, Ext::UNDEFINED, 100, 0, Shader::ALL},
    {"packSnorm2x16", Ext::UNDEFINED, Ext::UNDEFINED, 300, 420, Shader::ALL},
    {"exp", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"groupMemoryBarrier", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::COMPUTE},
    {"atomicMin", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL},
    {"packHalf2x16", Ext::UNDEFINED, Ext::UNDEFINED, 300, 420, Shader::ALL},
    {"texture2DLod", Ext::UNDEFINED, Ext::UNDEFINED, 100, 0, Shader::VERTEX},
    {"dot", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, 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,
                       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, TExtension::UNDEFINED, type_gl_DepthRange);
    m_gl_MaxVertexAttribs = new TVariable(
        BuiltInId::gl_MaxVertexAttribs, BuiltInName::gl_MaxVertexAttribs, SymbolType::BuiltIn,
        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,
                      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,
                      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,
                      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, 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,
                      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,
        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,
        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, 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, 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,
                      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, 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, 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, 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, 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,
                      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,
                      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,
                      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,
                      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,
                      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,
                      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,
                      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,
                      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,
                      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,
                      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,
                      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,
                      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,
                      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,
                      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,
                      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,
                      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,
                      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,
                      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, TExtension::EXT_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_MaxGeometryOutputComponents = new TVariable(
        BuiltInId::gl_MaxGeometryOutputComponents, BuiltInName::gl_MaxGeometryOutputComponents,
        SymbolType::BuiltIn, TExtension::EXT_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_MaxGeometryImageUniforms = new TVariable(
        BuiltInId::gl_MaxGeometryImageUniforms, BuiltInName::gl_MaxGeometryImageUniforms,
        SymbolType::BuiltIn, TExtension::EXT_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_MaxGeometryTextureImageUnits = new TVariable(
        BuiltInId::gl_MaxGeometryTextureImageUnits, BuiltInName::gl_MaxGeometryTextureImageUnits,
        SymbolType::BuiltIn, TExtension::EXT_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_MaxGeometryOutputVertices = new TVariable(
        BuiltInId::gl_MaxGeometryOutputVertices, BuiltInName::gl_MaxGeometryOutputVertices,
        SymbolType::BuiltIn, TExtension::EXT_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_MaxGeometryTotalOutputComponents = new TVariable(
        BuiltInId::gl_MaxGeometryTotalOutputComponents,
        BuiltInName::gl_MaxGeometryTotalOutputComponents, SymbolType::BuiltIn,
        TExtension::EXT_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_MaxGeometryUniformComponents = new TVariable(
        BuiltInId::gl_MaxGeometryUniformComponents, BuiltInName::gl_MaxGeometryUniformComponents,
        SymbolType::BuiltIn, TExtension::EXT_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_MaxGeometryAtomicCounters = new TVariable(
        BuiltInId::gl_MaxGeometryAtomicCounters, BuiltInName::gl_MaxGeometryAtomicCounters,
        SymbolType::BuiltIn, TExtension::EXT_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_MaxGeometryAtomicCounterBuffers = new TVariable(
        BuiltInId::gl_MaxGeometryAtomicCounterBuffers,
        BuiltInName::gl_MaxGeometryAtomicCounterBuffers, SymbolType::BuiltIn,
        TExtension::EXT_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);
    }
    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, 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, TExtension::EXT_blend_func_extended, type_gl_SecondaryFragDataEXT);
    TType *type_gl_FragDepthEXT = new TType(
        EbtFloat, resources.FragmentPrecisionHigh ? EbpHigh : EbpMedium, EvqFragDepthEXT, 1);
    type_gl_FragDepthEXT->realize();
    m_gl_FragDepthEXT =
        new TVariable(BuiltInId::gl_FragDepthEXT, BuiltInName::gl_FragDepthEXT, SymbolType::BuiltIn,
                      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,
                      TExtension::EXT_shader_framebuffer_fetch, 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,
        TExtension::NV_shader_framebuffer_fetch, type_gl_LastFragDataNV);
    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,
                            TExtension::EXT_geometry_shader, fields_gl_PerVertex);
    m_gl_PerVertex    = gl_PerVertex;
    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,
                            TExtension::EXT_geometry_shader, type_gl_in);
    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,
                            TExtension::EXT_geometry_shader, fields_gl_PerVertexOutBlock);
    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,
                      TExtension::EXT_geometry_shader, type_gl_PositionGS);
}

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

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

    uint32_t nameHash = name.mangledNameHash();
    if (nameHash >= 956)
        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() > 26)
        return false;

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

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

}  // namespace sh
