// 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::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::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_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;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_ISampler2DArray1_Float3_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_USampler2DArray1_Float3_Int2;
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_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::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_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 = 3334;

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 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_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 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 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_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<EbtImage2D, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00z(BuiltInId::pt00z,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtIImage2D, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01A(BuiltInId::pt01A,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtUImage2D, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01B(BuiltInId::pt01B,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtImage3D, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01C(BuiltInId::pt01C,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtIImage3D, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01D(BuiltInId::pt01D,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtUImage3D, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01E(BuiltInId::pt01E,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtImage2DArray, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01F(
    BuiltInId::pt01F,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtIImage2DArray, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01G(
    BuiltInId::pt01G,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtUImage2DArray, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01H(BuiltInId::pt01H,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtImageCube, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01I(BuiltInId::pt01I,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtIImageCube, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01J(BuiltInId::pt01J,
                                 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 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_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 *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 *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 *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 *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 *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 *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 *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 *p00f30B10B10B10D[5] = {
    &BuiltInVariable::kpt00f, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00y10D30B[3] = {&BuiltInVariable::kpt00y, &BuiltInVariable::kpt10D,
                                            &BuiltInVariable::kpt30B};
constexpr const TVariable *p00z10D30D[3] = {&BuiltInVariable::kpt00z, &BuiltInVariable::kpt10D,
                                            &BuiltInVariable::kpt30D};
constexpr const TVariable *p01A10D30E[3] = {&BuiltInVariable::kpt01A, &BuiltInVariable::kpt10D,
                                            &BuiltInVariable::kpt30E};
constexpr const TVariable *p01B20D30B[3] = {&BuiltInVariable::kpt01B, &BuiltInVariable::kpt20D,
                                            &BuiltInVariable::kpt30B};
constexpr const TVariable *p01C20D30D[3] = {&BuiltInVariable::kpt01C, &BuiltInVariable::kpt20D,
                                            &BuiltInVariable::kpt30D};
constexpr const TVariable *p01D20D30E[3] = {&BuiltInVariable::kpt01D, &BuiltInVariable::kpt20D,
                                            &BuiltInVariable::kpt30E};
constexpr const TVariable *p01E20D30B[3] = {&BuiltInVariable::kpt01E, &BuiltInVariable::kpt20D,
                                            &BuiltInVariable::kpt30B};
constexpr const TVariable *p01F20D30D[3] = {&BuiltInVariable::kpt01F, &BuiltInVariable::kpt20D,
                                            &BuiltInVariable::kpt30D};
constexpr const TVariable *p01G20D30E[3] = {&BuiltInVariable::kpt01G, &BuiltInVariable::kpt20D,
                                            &BuiltInVariable::kpt30E};
constexpr const TVariable *p01H20D30B[3] = {&BuiltInVariable::kpt01H, &BuiltInVariable::kpt20D,
                                            &BuiltInVariable::kpt30B};
constexpr const TVariable *p01I20D30D[3] = {&BuiltInVariable::kpt01I, &BuiltInVariable::kpt20D,
                                            &BuiltInVariable::kpt30D};
constexpr const TVariable *p01J20D30E[3] = {&BuiltInVariable::kpt01J, &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::p20B10B,
                                      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::p20B10B,
                                      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::p20B10B,
                                  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::p20B10B,
                                  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::p20B10B,
                                  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::p20B10B,
                                   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::p20B10B,
                                   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::p00B00B00F,
                                      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::p20B10B,
                                   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::p20B10B,
                                   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::p20B10B,
                                   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::p20B10B,
                                   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::p20B10B,
                                    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::p20B10B,
                                    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::p20B10B,
                                    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::p00B00B00F,
                                     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::p20B10B,
                                  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::p20B10B,
                                  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::p20B10B,
                                   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::p20B10B,
                                   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::p20B10B,
                                   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::p20B10B,
    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::p20B10B,
                                  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::p20B10B,
                                   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::p20B10B,
                                    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::p20B10B,
                                    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::p20B10B,
                                    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::p20B10B,
                                        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::p20B10B,
                                   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::p20B10B,
                                    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::p00B00B00F,
                                     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::p00B00B00F,
                                     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::p00B00B00F,
                                     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::p00B00B00F,
                                      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::p20B10B,
                                    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::p20B10B,
                                    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::p20B10B,
    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::p20B10B,
    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 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::p20B10B,
                                     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::p00B00B00F,
    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::p00B00B00F,
                                     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::p20B10B,
                                        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::p00B00B00F,
                                         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::p20B10B,
                                      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::p20B10B,
                                      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::p20B10B,
                                        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::p00U20B10D00D,
                                         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::p00U20B10D00D,
    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 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_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_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_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_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::p20B10B,
                                   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::p20B10B,
                                   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::p20B10B,
                                     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_00y(BuiltInId::imageSize_Image2D1,
                                        BuiltInName::imageSize,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p00y10D30B,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpCallBuiltInFunction,
                                        false);
constexpr const TFunction imageSize_00z(BuiltInId::imageSize_IImage2D1,
                                        BuiltInName::imageSize,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p00z10D30D,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpCallBuiltInFunction,
                                        false);
constexpr const TFunction imageSize_01A(BuiltInId::imageSize_UImage2D1,
                                        BuiltInName::imageSize,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p01A10D30E,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpCallBuiltInFunction,
                                        false);
constexpr const TFunction imageSize_01B(BuiltInId::imageSize_Image3D1,
                                        BuiltInName::imageSize,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p01B20D30B,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpCallBuiltInFunction,
                                        false);
constexpr const TFunction imageSize_01C(BuiltInId::imageSize_IImage3D1,
                                        BuiltInName::imageSize,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p01C20D30D,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpCallBuiltInFunction,
                                        false);
constexpr const TFunction imageSize_01D(BuiltInId::imageSize_UImage3D1,
                                        BuiltInName::imageSize,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p01D20D30E,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpCallBuiltInFunction,
                                        false);
constexpr const TFunction imageSize_01E(BuiltInId::imageSize_Image2DArray1,
                                        BuiltInName::imageSize,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p01E20D30B,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpCallBuiltInFunction,
                                        false);
constexpr const TFunction imageSize_01F(BuiltInId::imageSize_IImage2DArray1,
                                        BuiltInName::imageSize,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p01F20D30D,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpCallBuiltInFunction,
                                        false);
constexpr const TFunction imageSize_01G(BuiltInId::imageSize_UImage2DArray1,
                                        BuiltInName::imageSize,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p01G20D30E,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpCallBuiltInFunction,
                                        false);
constexpr const TFunction imageSize_01H(BuiltInId::imageSize_ImageCube1,
                                        BuiltInName::imageSize,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p01H20D30B,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpCallBuiltInFunction,
                                        false);
constexpr const TFunction imageSize_01I(BuiltInId::imageSize_IImageCube1,
                                        BuiltInName::imageSize,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p01I20D30D,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpCallBuiltInFunction,
                                        false);
constexpr const TFunction imageSize_01J(BuiltInId::imageSize_UImageCube1,
                                        BuiltInName::imageSize,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p01J20D30E,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpCallBuiltInFunction,
                                        false);
constexpr const TFunction imageLoad_00y10D(
    BuiltInId::imageLoad_Image2D1_Int2,
    BuiltInName::imageLoad,
    TExtension::UNDEFINED,
    BuiltInParameters::p00y10D30B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageLoad_00z10D(BuiltInId::imageLoad_IImage2D1_Int2,
                                           BuiltInName::imageLoad,
                                           TExtension::UNDEFINED,
                                           BuiltInParameters::p00z10D30D,
                                           2,
                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                           EOpCallBuiltInFunction,
                                           false);
constexpr const TFunction imageLoad_01A10D(
    BuiltInId::imageLoad_UImage2D1_Int2,
    BuiltInName::imageLoad,
    TExtension::UNDEFINED,
    BuiltInParameters::p01A10D30E,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageLoad_01B20D(
    BuiltInId::imageLoad_Image3D1_Int3,
    BuiltInName::imageLoad,
    TExtension::UNDEFINED,
    BuiltInParameters::p01B20D30B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageLoad_01C20D(BuiltInId::imageLoad_IImage3D1_Int3,
                                           BuiltInName::imageLoad,
                                           TExtension::UNDEFINED,
                                           BuiltInParameters::p01C20D30D,
                                           2,
                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                           EOpCallBuiltInFunction,
                                           false);
constexpr const TFunction imageLoad_01D20D(
    BuiltInId::imageLoad_UImage3D1_Int3,
    BuiltInName::imageLoad,
    TExtension::UNDEFINED,
    BuiltInParameters::p01D20D30E,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageLoad_01E20D(
    BuiltInId::imageLoad_Image2DArray1_Int3,
    BuiltInName::imageLoad,
    TExtension::UNDEFINED,
    BuiltInParameters::p01E20D30B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageLoad_01F20D(BuiltInId::imageLoad_IImage2DArray1_Int3,
                                           BuiltInName::imageLoad,
                                           TExtension::UNDEFINED,
                                           BuiltInParameters::p01F20D30D,
                                           2,
                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                           EOpCallBuiltInFunction,
                                           false);
constexpr const TFunction imageLoad_01G20D(
    BuiltInId::imageLoad_UImage2DArray1_Int3,
    BuiltInName::imageLoad,
    TExtension::UNDEFINED,
    BuiltInParameters::p01G20D30E,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageLoad_01H20D(
    BuiltInId::imageLoad_ImageCube1_Int3,
    BuiltInName::imageLoad,
    TExtension::UNDEFINED,
    BuiltInParameters::p01H20D30B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageLoad_01I20D(BuiltInId::imageLoad_IImageCube1_Int3,
                                           BuiltInName::imageLoad,
                                           TExtension::UNDEFINED,
                                           BuiltInParameters::p01I20D30D,
                                           2,
                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                           EOpCallBuiltInFunction,
                                           false);
constexpr const TFunction imageLoad_01J20D(
    BuiltInId::imageLoad_UImageCube1_Int3,
    BuiltInName::imageLoad,
    TExtension::UNDEFINED,
    BuiltInParameters::p01J20D30E,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageStore_00y10D30B(
    BuiltInId::imageStore_Image2D1_Int2_Float4,
    BuiltInName::imageStore,
    TExtension::UNDEFINED,
    BuiltInParameters::p00y10D30B,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageStore_00z10D30D(
    BuiltInId::imageStore_IImage2D1_Int2_Int4,
    BuiltInName::imageStore,
    TExtension::UNDEFINED,
    BuiltInParameters::p00z10D30D,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageStore_01A10D30E(
    BuiltInId::imageStore_UImage2D1_Int2_UInt4,
    BuiltInName::imageStore,
    TExtension::UNDEFINED,
    BuiltInParameters::p01A10D30E,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageStore_01B20D30B(
    BuiltInId::imageStore_Image3D1_Int3_Float4,
    BuiltInName::imageStore,
    TExtension::UNDEFINED,
    BuiltInParameters::p01B20D30B,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageStore_01C20D30D(
    BuiltInId::imageStore_IImage3D1_Int3_Int4,
    BuiltInName::imageStore,
    TExtension::UNDEFINED,
    BuiltInParameters::p01C20D30D,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageStore_01D20D30E(
    BuiltInId::imageStore_UImage3D1_Int3_UInt4,
    BuiltInName::imageStore,
    TExtension::UNDEFINED,
    BuiltInParameters::p01D20D30E,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageStore_01E20D30B(
    BuiltInId::imageStore_Image2DArray1_Int3_Float4,
    BuiltInName::imageStore,
    TExtension::UNDEFINED,
    BuiltInParameters::p01E20D30B,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageStore_01F20D30D(
    BuiltInId::imageStore_IImage2DArray1_Int3_Int4,
    BuiltInName::imageStore,
    TExtension::UNDEFINED,
    BuiltInParameters::p01F20D30D,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageStore_01G20D30E(
    BuiltInId::imageStore_UImage2DArray1_Int3_UInt4,
    BuiltInName::imageStore,
    TExtension::UNDEFINED,
    BuiltInParameters::p01G20D30E,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageStore_01H20D30B(
    BuiltInId::imageStore_ImageCube1_Int3_Float4,
    BuiltInName::imageStore,
    TExtension::UNDEFINED,
    BuiltInParameters::p01H20D30B,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageStore_01I20D30D(
    BuiltInId::imageStore_IImageCube1_Int3_Int4,
    BuiltInName::imageStore,
    TExtension::UNDEFINED,
    BuiltInParameters::p01I20D30D,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageStore_01J20D30E(
    BuiltInId::imageStore_UImageCube1_Int3_UInt4,
    BuiltInName::imageStore,
    TExtension::UNDEFINED,
    BuiltInParameters::p01J20D30E,
    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);

}  // 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, 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, 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, EXT_INDEX(EXT_geometry_shader)>(
        &TableBase::m_gl_MaxGeometryOutputVertices),
    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, 310, Shader::ALL, 0>(&imageLoad_01F20D),
    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, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexTextureImageUnits),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexTextureImageUnits),
    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, 0, Shader::ALL, 0>(&min_30B30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&min_30B30B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_01I20D30D),
    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, 310, Shader::ALL, 0>(&memoryBarrierAtomicCounter_),
    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&memoryBarrierAtomicCounter_),
    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, 310, Shader::ALL, 0>(&imageStore_01B20D30B),
    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, 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, 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, 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, 310, Shader::ALL, 0>(&textureGatherOffset_00a20B10D00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00a20B10D00D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&lessThan_30B30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&lessThan_30B30B),
    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, 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>(&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, 310, Shader::ALL, 0>(&imageStore_01G20D30E),
    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, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeWorkGroupCount),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeWorkGroupCount),
    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>(&usubBorrow_20E20E20E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&usubBorrow_20E20E20E),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_00z10D30D),
    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, 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, 310, Shader::ALL, 0>(&imageStore_01J20D30E),
    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_01A10D30E),
    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::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, 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, 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>(&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::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, 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, 100, Shader::FRAGMENT, EXT_INDEX(EXT_frag_depth)>(
        &TableBase::m_gl_FragDepthEXT),
    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, 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, 310, Shader::ALL, 0>(&textureGather_00L20B),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00L20B),
    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, 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>(&imageSize_00y),
    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, 310, Shader::ALL, 0>(&imageStore_01E20D30B),
    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, 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, 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, 0>(&imageStore_00y10D30B),
    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, 310, Shader::ALL, 0>(&memoryBarrier_),
    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&memoryBarrier_),
    Rule::Get<Spec::ESSL, 310, Shader::GEOMETRY_EXT, EXT_INDEX(EXT_geometry_shader)>(
        &TableBase::m_gl_PerVertex),
    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::ALL, 0>(&atomicMax_00D00D),
    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicMax_00D00D),
    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, 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, 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, 310, Shader::ALL, 0>(&imageLoad_00y10D),
    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, 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, 300, Shader::ALL, 0>(&matrixCompMult_B0BB0B),
    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>(&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>(&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>(&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, 310, Shader::ALL, 0>(&imageSize_01F),
    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, 300, Shader::VERTEX, EXT_INDEX(ANGLE_base_vertex_base_instance)>(
        &BuiltInVariable::kgl_BaseVertex),
    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>(&memoryBarrierBuffer_),
    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&memoryBarrierBuffer_),
    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, 0>(&imageStore_01H20D30B),
    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, 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, 310, Shader::ALL, 0>(&imageLoad_01C20D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageSize_01J),
    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>(&imageStore_01C20D30D),
    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, 310, Shader::ALL, 0>(&imageLoad_01B20D),
    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, 300, Shader::ALL, 0>(&textureProjOffset_00Y30B20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjOffset_00Y30B20D),
    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, 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, 310, Shader::ALL, 0>(&imageStore_01D20D30E),
    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, 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, 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, 310, Shader::ALL, 0>(&imageStore_01F20D30D),
    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, 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",
                                         "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",
                                         "clamp(10B10B10B",
                                         "textureGrad(00I10B10B10B",
                                         "textureGatherOffset(00L20B10D00D",
                                         "bitCount(00D",
                                         "step(00B20B",
                                         "lessThan(30E30E",
                                         "uintBitsToFloat(30E",
                                         "imulExtended(30D30D30D30D",
                                         "textureSize(00K00D",
                                         "gl_MaxGeometryOutputVertices",
                                         "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",
                                         "imageLoad(01F20D",
                                         "uintBitsToFloat(00E",
                                         "lessThanEqual(20B20B",
                                         "texelFetch(00N10D00D",
                                         "atomicAdd(00D00D",
                                         "gl_MaxGeometryOutputComponents",
                                         "gl_MaxGeometryTextureImageUnits",
                                         "floatBitsToUint(20B",
                                         "bitfieldInsert(20D20D00D00D",
                                         "gl_MaxVertexTextureImageUnits",
                                         "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",
                                         "min(30B30B",
                                         "imageStore(01I20D30D",
                                         "gl_MaxVertexAtomicCounterBuffers",
                                         "textureLodOffset(00S20B00B20D",
                                         "textureGatherOffset(00R10B10D",
                                         "acos(00B",
                                         "fract(10B",
                                         "transpose(E0B",
                                         "intBitsToFloat(00D",
                                         "textureGradOffset(00J20B20B20B20D",
                                         "memoryBarrierAtomicCounter(",
                                         "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",
                                         "imageStore(01B20D30B",
                                         "sign(20D",
                                         "atanh(00B",
                                         "textureGradOffset(00X10B10B10B10D",
                                         "gl_DepthRange",
                                         "imulExtended(10D10D10D10D",
                                         "atan(20B",
                                         "texture(00M10B",
                                         "gl_MaxVertexOutputVectors",
                                         "texture(00T20B",
                                         "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",
                                         "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",
                                         "textureGatherOffset(00a20B10D00D",
                                         "lessThan(30B30B",
                                         "textureGatherOffset(00I10B10D",
                                         "textureOffset(00L20B10D00B",
                                         "textureLodOffset(00X10B00B10D",
                                         "texture(00T20B00B",
                                         "textureOffset(00L20B10D",
                                         "lessThanEqual(30E30E",
                                         "textureOffset(00J20B20D00B",
                                         "min(10E00E",
                                         "log(30B",
                                         "atomicCounter(00G",
                                         "textureProjOffset(00S30B20D",
                                         "imageLoad(01I20D",
                                         "round(00B",
                                         "smoothstep(00B00B20B",
                                         "imageLoad(01H20D",
                                         "textureGather(00K20B",
                                         "bitfieldInsert(30D30D00D00D",
                                         "imageStore(01G20D30E",
                                         "fwidth(10B",
                                         "textureProjLod(00R20B00B",
                                         "notEqual(30D30D",
                                         "refract(10B10B00B",
                                         "textureProjOffset(00I20B10D",
                                         "greaterThan(30D30D",
                                         "greaterThan(10D10D",
                                         "texture(00U20B",
                                         "textureSize(00a00D",
                                         "bitfieldExtract(10E00D00D",
                                         "gl_MaxDrawBuffers",
                                         "textureGatherOffset(00U20B10D00D",
                                         "gl_MaxComputeWorkGroupCount",
                                         "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",
                                         "usubBorrow(20E20E20E",
                                         "imageStore(00z10D30D",
                                         "textureProjGrad(00R30B10B10B",
                                         "exp2(10B",
                                         "textureProj(00O20B",
                                         "textureProjOffset(00X20B10D00B",
                                         "outerProduct(10B20B",
                                         "gl_MaxGeometryAtomicCounterBuffers",
                                         "textureProjGradOffset(00X30B10B10B10D",
                                         "textureOffset(00I10B10D00B",
                                         "clamp(30B00B00B",
                                         "inverse(50B",
                                         "dot(10B10B",
                                         "unpackHalf2x16(00E",
                                         "matrixCompMult(A0BA0B",
                                         "texture2DProjLod(00I20B00B",
                                         "texelFetch(00W20D00D",
                                         "texture2DRectProj(00O30B",
                                         "radians(20B",
                                         "textureGrad(00S20B20B20B",
                                         "max(10D00D",
                                         "imageStore(01J20D30E",
                                         "round(30B",
                                         "gl_MaxComputeTextureImageUnits",
                                         "clamp(00D00D00D",
                                         "sin(30B",
                                         "floor(30B",
                                         "textureProj(00S30B00B",
                                         "textureGrad(00Y20B20B20B",
                                         "gl_MaxCombinedAtomicCounters",
                                         "textureGather(00L20B00D",
                                         "textureProjGradOffset(00S30B20B20B20D",
                                         "imageStore(01A10D30E",
                                         "texture(00J20B",
                                         "gl_PointCoord",
                                         "dFdx(20B",
                                         "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",
                                         "asin(30B",
                                         "textureGather(00f20B",
                                         "modf(30B30B",
                                         "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",
                                         "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",
                                         "texture(00e30B00B",
                                         "textureLodOffset(00Y20B00B20D",
                                         "log2(00B",
                                         "gl_LastFragColor",
                                         "abs(10D",
                                         "abs(10B",
                                         "acos(30B",
                                         "tanh(10B",
                                         "degrees(30B",
                                         "gl_FragDepthEXT",
                                         "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",
                                         "textureProjLodOffset(00S30B00B20D",
                                         "sinh(20B",
                                         "textureGather(00L20B",
                                         "reflect(30B30B",
                                         "outerProduct(30B20B",
                                         "texture(00U20B00B",
                                         "texture(00S20B",
                                         "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",
                                         "imageSize(00y",
                                         "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",
                                         "imageStore(01E20D30B",
                                         "textureProjGrad(00X20B10B10B",
                                         "max(30E30E",
                                         "isnan(30B",
                                         "imulExtended(00D00D00D00D",
                                         "gl_in",
                                         "atan(20B20B",
                                         "usubBorrow(00E00E00E",
                                         "textureProjLodOffset(00J30B00B20D",
                                         "frexp(30B30D",
                                         "gl_SecondaryFragDataEXT",
                                         "min(30E30E",
                                         "texture2DProj(00I30B00B",
                                         "textureCubeGradEXT(00K20B20B20B",
                                         "texture(00I10B",
                                         "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",
                                         "imageStore(00y10D30B",
                                         "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",
                                         "memoryBarrier(",
                                         "gl_PerVertex",
                                         "textureProj(00X30B00B",
                                         "atomicMax(00D00D",
                                         "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",
                                         "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",
                                         "packSnorm2x16(10B",
                                         "floatBitsToUint(30B",
                                         "lessThanEqual(30D30D",
                                         "gl_MaxGeometryImageUniforms",
                                         "imageLoad(00y10D",
                                         "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",
                                         "step(10B10B",
                                         "gl_MaxDualSourceDrawBuffersEXT",
                                         "step(30B30B",
                                         "bitfieldReverse(10E",
                                         "bitfieldReverse(10D",
                                         "texture3DProj(00J30B",
                                         "matrixCompMult(B0BB0B",
                                         "lessThan(20E20E",
                                         "cross(20B20B",
                                         "all(10F",
                                         "clamp(20B00B00B",
                                         "tanh(20B",
                                         "dFdx(00B",
                                         "matrixCompMult(F0BF0B",
                                         "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",
                                         "texelFetch(00b10D00D",
                                         "imageSize(01F",
                                         "gl_MaxAtomicCounterBufferSize",
                                         "max(20B20B",
                                         "textureGatherOffset(00f20B00B10D",
                                         "outerProduct(30B30B",
                                         "lessThanEqual(20E20E",
                                         "textureLod(00X10B00B",
                                         "exp(30B",
                                         "gl_BaseVertex",
                                         "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",
                                         "memoryBarrierBuffer(",
                                         "textureSize(00Z00D",
                                         "textureGather(00U20B",
                                         "bitfieldExtract(30D00D00D",
                                         "min(10D00D",
                                         "imageStore(01H20D30B",
                                         "texelFetch(00Q20D00D",
                                         "max(20E00E",
                                         "textureProj(00S30B",
                                         "roundEven(00B",
                                         "texture2DLodEXT(00I10B00B",
                                         "dFdy(30B",
                                         "atanh(20B",
                                         "clamp(10E00E00E",
                                         "clamp(20D00D00D",
                                         "all(20F",
                                         "isinf(10B",
                                         "imageLoad(01C20D",
                                         "imageSize(01J",
                                         "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",
                                         "imageStore(01C20D30D",
                                         "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",
                                         "imageLoad(01B20D",
                                         "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",
                                         "textureProjOffset(00Y30B20D",
                                         "sinh(10B",
                                         "atan(30B",
                                         "textureGradOffset(00L20B10B10B10D",
                                         "ceil(10B",
                                         "textureSize(00S00D",
                                         "imageStore(01D20D30E",
                                         "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",
                                         "textureProjOffset(00d30B10D",
                                         "notEqual(10E10E",
                                         "textureProj(00R30B",
                                         "matrixCompMult(50B50B",
                                         "equal(20F20F",
                                         "gl_MaxFragmentInputVectors",
                                         "equal(30B30B",
                                         "textureLod(00U20B00B",
                                         "usubBorrow(10E10E10E",
                                         "equal(10B10B",
                                         "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",
                                         "imageStore(01F20D30D",
                                         "textureProj(00I20B00B",
                                         "greaterThan(10E10E",
                                         "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,     // texture_00N10B00B
    3,     // clamp_10D00D00D
    5,     // gl_PrimitiveID
    7,     // texture_00R10B00B
    9,     // modf_00B00B
    11,    // gl_MaxAtomicCounterBindings
    13,    // notEqual_20D20D
    15,    // gl_MaxComputeImageUniforms
    17,    // textureLod_00L20B00B
    19,    // angle_BaseVertex
    20,    // determinant_A0B
    21,    // textureProjGrad_00I30B10B10B
    23,    // tanh_30B
    25,    // gl_Layer
    27,    // textureOffset_00d20B10D
    29,    // dFdx_30B
    32,    // clamp_00E00E00E
    34,    // transpose_50B
    36,    // ldexp_00B00D
    38,    // textureGather_00K20B00D
    40,    // lessThanEqual_30B30B
    42,    // greaterThanEqual_20D20D
    44,    // min_20E20E
    46,    // asin_20B
    48,    // outerProduct_20B30B
    50,    // bitfieldInsert_00D00D00D00D
    52,    // textureProjGrad_00Y30B20B20B
    54,    // roundEven_30B
    56,    // acosh_20B
    58,    // atanh_10B
    60,    // mix_20B20B00B
    62,    // clamp_10B10B10B
    64,    // textureGrad_00I10B10B10B
    66,    // textureGatherOffset_00L20B10D00D
    68,    // bitCount_00D
    70,    // step_00B20B
    72,    // lessThan_30E30E
    74,    // uintBitsToFloat_30E
    76,    // imulExtended_30D30D30D30D
    78,    // textureSize_00K00D
    80,    // gl_MaxGeometryOutputVertices
    81,    // transpose_70B
    83,    // textureProjOffset_00S30B20D00B
    85,    // textureProjLod_00X30B00B
    87,    // textureSize_00Y00D
    89,    // gl_MinProgramTexelOffset
    91,    // texture_00d20B
    93,    // textureProj_00J30B00B
    95,    // atan_10B10B
    97,    // max_20B00B
    99,    // clamp_30B30B30B
    101,   // EndPrimitive_
    102,   // textureLod_00Y20B00B
    104,   // textureLodOffset_00a20B00B10D
    106,   // texelFetchOffset_00Y20D00D20D
    108,   // texelFetch_00a20D00D
    110,   // min_20D00D
    112,   // imageLoad_01F20D
    113,   // uintBitsToFloat_00E
    115,   // lessThanEqual_20B20B
    117,   // texelFetch_00N10D00D
    118,   // atomicAdd_00D00D
    120,   // gl_MaxGeometryOutputComponents
    121,   // gl_MaxGeometryTextureImageUnits
    122,   // floatBitsToUint_20B
    124,   // bitfieldInsert_20D20D00D00D
    126,   // gl_MaxVertexTextureImageUnits
    128,   // texture_00Z20B
    130,   // min_10D10D
    132,   // degrees_20B
    134,   // tanh_00B
    136,   // textureProjOffset_00J30B20D00B
    138,   // all_30F
    140,   // abs_20D
    142,   // abs_20B
    144,   // inversesqrt_00B
    146,   // matrixCompMult_D0BD0B
    147,   // lessThanEqual_10B10B
    149,   // bitfieldReverse_20D
    151,   // bitfieldReverse_20E
    153,   // textureProjGrad_00S30B20B20B
    155,   // equal_10D10D
    157,   // max_30D00D
    159,   // groupMemoryBarrier_
    161,   // mix_00B00B00F
    163,   // textureProjGradOffset_00R20B10B10B10D
    165,   // imageLoad_01A10D
    166,   // intBitsToFloat_30D
    168,   // textureProj_00I20B
    170,   // texelFetch_00I10D00D
    172,   // min_30B30B
    174,   // imageStore_01I20D30D
    175,   // gl_MaxVertexAtomicCounterBuffers
    177,   // textureLodOffset_00S20B00B20D
    179,   // textureGatherOffset_00R10B10D
    181,   // acos_00B
    183,   // fract_10B
    185,   // transpose_E0B
    187,   // intBitsToFloat_00D
    189,   // textureGradOffset_00J20B20B20B20D
    191,   // memoryBarrierAtomicCounter_
    193,   // texture2DGradEXT_00I10B10B10B
    194,   // bitfieldInsert_00E00E00D00D
    196,   // atomicXor_00D00D
    198,   // greaterThan_20B20B
    200,   // textureLodOffset_00I10B00B10D
    202,   // texelFetch_00Y20D00D
    204,   // texture2DProjGradEXT_00I30B10B10B
    205,   // textureGrad_00d20B10B10B
    207,   // textureProjOffset_00R30B10D
    209,   // textureOffset_00U20B10D
    211,   // atan_10B
    213,   // modf_10B10B
    215,   // min_30B00B
    217,   // determinant_50B
    218,   // lessThan_20B20B
    220,   // atomicAnd_00D00D
    222,   // gl_FragColor
    224,   // exp_10B
    226,   // textureProjOffset_00I20B10D00B
    228,   // step_00B10B
    230,   // bitCount_30D
    232,   // textureProjLod_00I20B00B
    234,   // unpackUnorm2x16_00E
    236,   // rgb_2_yuv_20B00H
    237,   // sqrt_20B
    239,   // sign_20B
    241,   // imageStore_01B20D30B
    242,   // sign_20D
    244,   // atanh_00B
    246,   // textureGradOffset_00X10B10B10B10D
    248,   // gl_DepthRange
    250,   // imulExtended_10D10D10D10D
    252,   // atan_20B
    254,   // texture_00M10B
    255,   // gl_MaxVertexOutputVectors
    257,   // texture_00T20B
    259,   // log2_10B
    261,   // min_10B10B
    263,   // gl_MaxImageUnits
    265,   // pow_10B10B
    267,   // findLSB_20E
    269,   // findLSB_20D
    271,   // texture_00Y20B
    273,   // packUnorm4x8_30B
    275,   // texture_00X10B00B
    277,   // frexp_00B00D
    279,   // texture2D_00I10B
    281,   // not_10F
    283,   // texelFetch_00P10D00D
    286,   // lessThan_10E10E
    288,   // ceil_20B
    290,   // textureLodOffset_00R10B00B10D
    292,   // clamp_10D10D10D
    294,   // texelFetch_00M10D00D
    295,   // texture_00O10B
    296,   // transpose_F0B
    298,   // textureOffset_00Y20B20D00B
    300,   // textureGradOffset_00S20B20B20B20D
    302,   // atomicXor_00E00E
    304,   // textureProjOffset_00R20B10D
    306,   // gl_FragCoord
    308,   // clamp_30E30E30E
    310,   // textureProj_00N30B00B
    311,   // textureSize_00R00D
    313,   // gl_MaxFragmentImageUniforms
    315,   // normalize_00B
    317,   // textureOffset_00I10B10D
    319,   // atomicExchange_00E00E
    321,   // textureProj_00I30B00B
    323,   // acosh_10B
    325,   // gl_MaxCombinedShaderOutputResources
    327,   // atomicOr_00E00E
    329,   // min_20B00B
    331,   // textureProj_00M30B00B
    332,   // textureProj_00M20B
    333,   // texture_00I10B00B
    335,   // reflect_00B00B
    337,   // mod_20B00B
    339,   // lessThan_20D20D
    341,   // reflect_10B10B
    343,   // floatBitsToUint_10B
    345,   // textureLod_00J20B00B
    347,   // sqrt_10B
    349,   // textureProjLod_00S30B00B
    351,   // clamp_20E20E20E
    353,   // atomicAnd_00E00E
    355,   // max_20D00D
    357,   // textureSize_00I00D
    359,   // gl_MaxComputeAtomicCounterBuffers
    361,   // gl_PrimitiveIDIn
    362,   // texelFetchOffset_00R10D00D10D
    364,   // isinf_30B
    366,   // textureGatherOffset_00a20B10D00D
    368,   // lessThan_30B30B
    370,   // textureGatherOffset_00I10B10D
    372,   // textureOffset_00L20B10D00B
    374,   // textureLodOffset_00X10B00B10D
    376,   // texture_00T20B00B
    378,   // textureOffset_00L20B10D
    380,   // lessThanEqual_30E30E
    382,   // textureOffset_00J20B20D00B
    384,   // min_10E00E
    386,   // log_30B
    388,   // atomicCounter_00G
    390,   // textureProjOffset_00S30B20D
    392,   // imageLoad_01I20D
    393,   // round_00B
    395,   // smoothstep_00B00B20B
    397,   // imageLoad_01H20D
    398,   // textureGather_00K20B
    400,   // bitfieldInsert_30D30D00D00D
    402,   // imageStore_01G20D30E
    403,   // fwidth_10B
    406,   // textureProjLod_00R20B00B
    408,   // notEqual_30D30D
    410,   // refract_10B10B00B
    412,   // textureProjOffset_00I20B10D
    414,   // greaterThan_30D30D
    416,   // greaterThan_10D10D
    418,   // texture_00U20B
    420,   // textureSize_00a00D
    422,   // bitfieldExtract_10E00D00D
    424,   // gl_MaxDrawBuffers
    426,   // textureGatherOffset_00U20B10D00D
    428,   // gl_MaxComputeWorkGroupCount
    430,   // textureProjLod_00J30B00B
    432,   // texture2DRect_00O10B
    433,   // imulExtended_20D20D20D20D
    435,   // any_30F
    437,   // distance_30B30B
    439,   // greaterThan_20D20D
    441,   // textureOffset_00a20B10D
    443,   // greaterThan_30B30B
    445,   // trunc_00B
    447,   // sinh_30B
    449,   // length_10B
    451,   // findMSB_10E
    453,   // findMSB_10D
    455,   // dot_00B00B
    457,   // asinh_20B
    459,   // dot_30B30B
    461,   // bitCount_00E
    463,   // tan_30B
    465,   // textureLod_00T20B00B
    467,   // usubBorrow_20E20E20E
    469,   // imageStore_00z10D30D
    470,   // textureProjGrad_00R30B10B10B
    472,   // exp2_10B
    474,   // textureProj_00O20B
    475,   // textureProjOffset_00X20B10D00B
    477,   // outerProduct_10B20B
    479,   // gl_MaxGeometryAtomicCounterBuffers
    480,   // textureProjGradOffset_00X30B10B10B10D
    482,   // textureOffset_00I10B10D00B
    484,   // clamp_30B00B00B
    486,   // inverse_50B
    488,   // dot_10B10B
    490,   // unpackHalf2x16_00E
    492,   // matrixCompMult_A0BA0B
    494,   // texture2DProjLod_00I20B00B
    496,   // texelFetch_00W20D00D
    497,   // texture2DRectProj_00O30B
    498,   // radians_20B
    500,   // textureGrad_00S20B20B20B
    502,   // max_10D00D
    504,   // imageStore_01J20D30E
    505,   // round_30B
    507,   // gl_MaxComputeTextureImageUnits
    509,   // clamp_00D00D00D
    511,   // sin_30B
    513,   // floor_30B
    515,   // textureProj_00S30B00B
    517,   // textureGrad_00Y20B20B20B
    519,   // gl_MaxCombinedAtomicCounters
    521,   // textureGather_00L20B00D
    523,   // textureProjGradOffset_00S30B20B20B20D
    525,   // imageStore_01A10D30E
    526,   // texture_00J20B
    528,   // gl_PointCoord
    530,   // dFdx_20B
    533,   // textureProj_00X20B
    535,   // max_10E10E
    537,   // max_30B30B
    539,   // clamp_10E10E10E
    541,   // texelFetchOffset_00S20D00D20D
    543,   // texture_00N10B
    544,   // texture_00L20B
    546,   // barrier_
    548,   // gl_MaxGeometryUniformComponents
    549,   // greaterThanEqual_20E20E
    551,   // lessThan_10D10D
    553,   // texelFetchOffset_00a20D00D10D
    555,   // textureProjGradOffset_00X20B10B10B10D
    557,   // texture2DProj_00I20B
    559,   // texture3DProjLod_00J30B00B
    560,   // not_20F
    562,   // Empty
    562,   // findMSB_20D
    564,   // findMSB_20E
    566,   // texelFetchOffset_00I10D00D10D
    568,   // textureGather_00I10B00D
    570,   // texelFetch_00V10D00D
    573,   // outerProduct_20B20B
    575,   // atan_30B30B
    577,   // unpackSnorm4x8_00E
    579,   // bitCount_30E
    581,   // textureProjLodOffset_00R20B00B10D
    583,   // log_20B
    585,   // asin_30B
    587,   // textureGather_00f20B
    588,   // modf_30B30B
    590,   // isnan_20B
    592,   // max_00B00B
    594,   // roundEven_20B
    596,   // fwidth_00B
    599,   // textureProjGrad_00J30B20B20B
    601,   // dFdy_10B
    604,   // outerProduct_30B10B
    606,   // floatBitsToInt_30B
    608,   // textureProj_00J30B
    610,   // gl_InvocationID
    611,   // max_30E00E
    613,   // exp2_20B
    615,   // textureLod_00d20B00B
    617,   // radians_10B
    619,   // texelFetch_00U20D00D
    621,   // gl_MaxComputeWorkGroupSize
    623,   // max_00D00D
    625,   // gl_LastFragData
    627,   // ceil_30B
    629,   // atomicMin_00E00E
    631,   // gl_MaxCombinedTextureImageUnits
    633,   // bitCount_10E
    635,   // texture_00S20B00B
    637,   // textureGather_00e20B00B
    639,   // gl_DepthRangeParameters
    641,   // distance_10B10B
    643,   // reflect_20B20B
    645,   // mod_10B00B
    647,   // uintBitsToFloat_10E
    649,   // textureGrad_00Z20B20B20B
    651,   // equal_10F10F
    653,   // cosh_00B
    655,   // bitfieldReverse_00D
    657,   // bitfieldReverse_00E
    659,   // max_20E20E
    661,   // matrixCompMult_70B70B
    662,   // bitfieldExtract_30E00D00D
    664,   // textureLod_00I10B00B
    666,   // greaterThanEqual_10D10D
    668,   // texture_00e30B00B
    670,   // textureLodOffset_00Y20B00B20D
    672,   // log2_00B
    674,   // gl_LastFragColor
    675,   // abs_10D
    677,   // abs_10B
    679,   // acos_30B
    681,   // tanh_10B
    683,   // degrees_30B
    685,   // gl_FragDepthEXT
    686,   // dFdx_10B
    689,   // textureProjOffset_00I30B10D
    691,   // bitfieldReverse_30E
    693,   // bitfieldReverse_30D
    695,   // inversesqrt_30B
    697,   // gl_LocalInvocationID
    699,   // Empty
    699,   // clamp_00B00B00B
    701,   // textureGather_00d10B
    702,   // frexp_20B20D
    704,   // intBitsToFloat_20D
    706,   // fract_00B
    708,   // gl_FragDepth
    710,   // min_30E00E
    712,   // exp_20B
    714,   // equal_20B20B
    716,   // textureProjLodOffset_00X20B00B10D
    718,   // acosh_00B
    720,   // log_10B
    722,   // textureProjLodOffset_00S30B00B20D
    724,   // sinh_20B
    726,   // textureGather_00L20B
    728,   // reflect_30B30B
    730,   // outerProduct_30B20B
    732,   // texture_00U20B00B
    734,   // texture_00S20B
    736,   // outerProduct_20B10B
    738,   // umulExtended_10E10E10E10E
    740,   // texture_00Z20B00B
    742,   // textureGradOffset_00a20B10B10B10D
    744,   // notEqual_20F20F
    746,   // mod_30B30B
    748,   // bitfieldExtract_10D00D00D
    750,   // sign_30B
    752,   // sign_30D
    754,   // pow_00B00B
    756,   // mod_00B00B
    758,   // texture_00Y20B00B
    760,   // notEqual_30B30B
    762,   // roundEven_10B
    764,   // texture2DProjLodEXT_00I30B00B
    765,   // atanh_30B
    767,   // dFdy_20B
    770,   // textureProj_00Y30B
    772,   // bitCount_20D
    774,   // step_00B00B
    776,   // texelFetch_00L20D00D
    778,   // imageSize_00y
    779,   // isinf_00B
    781,   // imageSize_00z
    782,   // distance_20B20B
    784,   // textureGrad_00U20B10B10B
    786,   // uaddCarry_30E30E30E
    788,   // mod_30B00B
    790,   // texture_00K20B00B
    792,   // gl_MaxCombinedImageUniforms
    794,   // yuv_2_rgb_20B00H
    795,   // textureGather_00f20B00B
    797,   // greaterThan_20E20E
    799,   // textureGrad_00a20B10B10B
    801,   // textureOffset_00U20B10D00B
    803,   // intBitsToFloat_10D
    805,   // texture_00J20B00B
    807,   // refract_20B20B00B
    809,   // textureProjLod_00I30B00B
    811,   // refract_00B00B00B
    813,   // findLSB_10D
    815,   // findLSB_10E
    817,   // mix_10B10B10F
    819,   // mix_10B10B10B
    821,   // textureProj_00Y30B00B
    823,   // texture3D_00J20B
    824,   // transpose_D0B
    826,   // log2_30B
    828,   // textureGrad_00J20B20B20B
    830,   // textureProjGrad_00d30B10B10B
    832,   // fract_30B
    834,   // gl_LocalInvocationIndex
    836,   // textureSize_00J00D
    838,   // textureGatherOffset_00I10B10D00D
    840,   // textureGather_00X10B00D
    842,   // texelFetchOffset_00U20D00D10D
    844,   // textureProjLodOffset_00Y30B00B20D
    846,   // textureSize_00e00D
    848,   // notEqual_20E20E
    850,   // textureLodOffset_00d20B00B10D
    852,   // inverse_A0B
    854,   // imageStore_01E20D30B
    855,   // textureProjGrad_00X20B10B10B
    857,   // max_30E30E
    859,   // isnan_30B
    861,   // imulExtended_00D00D00D00D
    863,   // gl_in
    864,   // atan_20B20B
    866,   // usubBorrow_00E00E00E
    868,   // textureProjLodOffset_00J30B00B20D
    870,   // frexp_30B30D
    872,   // gl_SecondaryFragDataEXT
    873,   // min_30E30E
    875,   // texture2DProj_00I30B00B
    877,   // textureCubeGradEXT_00K20B20B20B
    878,   // texture_00I10B
    880,   // min_00B00B
    882,   // gl_InstanceID
    884,   // texelFetch_00c20D00D
    885,   // gl_MaxVertexImageUniforms
    887,   // sqrt_00B
    889,   // normalize_20B
    891,   // gl_MaxFragmentAtomicCounterBuffers
    893,   // gl_WorkGroupID
    895,   // degrees_00B
    897,   // inverse_F0B
    899,   // min_20E00E
    901,   // textureProjLod_00R30B00B
    903,   // textureSize_00P
    906,   // textureGradOffset_00d20B10B10B10D
    908,   // textureProjLodOffset_00R30B00B10D
    910,   // atan_00B
    912,   // atomicExchange_00D00D
    914,   // textureGatherOffset_00R10B10D00D
    916,   // imageStore_00y10D30B
    917,   // gl_MaxGeometryAtomicCounters
    918,   // texture2D_00I10B00B
    920,   // textureProj_00X20B00B
    922,   // clamp_20D20D20D
    924,   // greaterThan_30E30E
    926,   // frexp_10B10D
    928,   // max_10E00E
    930,   // smoothstep_00B00B10B
    932,   // gl_GlobalInvocationID
    934,   // matrixCompMult_60B60B
    935,   // memoryBarrierShared_
    937,   // normalize_10B
    939,   // unpackSnorm2x16_00E
    941,   // imageLoad_00z10D
    942,   // lessThan_30D30D
    944,   // atan_00B00B
    946,   // bitfieldExtract_20D00D00D
    948,   // texture_00L20B00B
    950,   // notEqual_10B10B
    952,   // imageLoad_01G20D
    953,   // bitfieldExtract_00E00D00D
    955,   // atomicCompSwap_00D00D00D
    957,   // trunc_30B
    959,   // matrixCompMult_E0BE0B
    960,   // length_00B
    962,   // any_20F
    964,   // memoryBarrier_
    966,   // gl_PerVertex
    967,   // textureProj_00X30B00B
    969,   // atomicMax_00D00D
    971,   // gl_ViewID_OVR
    972,   // floor_10B
    974,   // sin_10B
    976,   // textureSize_00N00D
    977,   // texelFetchOffset_00J20D00D20D
    979,   // tan_00B
    981,   // mod_20B20B
    983,   // imageLoad_01J20D
    984,   // gl_WorkGroupSize
    986,   // asinh_30B
    988,   // outerProduct_10B30B
    990,   // textureCube_00K20B
    992,   // textureSize_00c
    993,   // textureSize_00b
    996,   // cos_00B
    998,   // min_20B20B
    1000,  // textureGradOffset_00f30B10B10B10D
    1002,  // max_20D20D
    1004,  // textureProj_00I30B
    1006,  // max_10D10D
    1008,  // textureOffset_00a20B10D00B
    1010,  // textureGather_00X10B
    1012,  // pow_30B30B
    1014,  // textureGather_00a20B
    1016,  // smoothstep_10B10B10B
    1018,  // textureProj_00O30B
    1019,  // textureGatherOffset_00d10B00B10D
    1021,  // refract_30B30B00B
    1023,  // bitfieldInsert_20E20E00D00D
    1025,  // floor_20B
    1027,  // equal_20E20E
    1029,  // mix_00B00B00B
    1031,  // imageSize_01B
    1032,  // greaterThanEqual_20B20B
    1034,  // uaddCarry_00E00E00E
    1036,  // sin_20B
    1038,  // textureSize_00Q
    1039,  // round_20B
    1041,  // matrixCompMult_90B90B
    1042,  // textureProjLod_00d30B00B
    1044,  // textureSize_00W
    1045,  // textureProjLod_00X20B00B
    1047,  // gl_MaxCombinedAtomicCounterBuffers
    1049,  // isnan_00B
    1051,  // umulExtended_30E30E30E30E
    1053,  // faceforward_30B30B30B
    1055,  // textureGradOffset_00Y20B20B20B20D
    1057,  // clamp_30E00E00E
    1059,  // asin_00B
    1061,  // ceil_00B
    1063,  // texture3D_00J20B00B
    1064,  // distance_00B00B
    1066,  // texture_00a20B
    1068,  // textureGatherOffset_00a20B10D
    1070,  // textureGrad_00f30B10B10B
    1072,  // texture2DProj_00I30B
    1074,  // modf_20B20B
    1076,  // textureGradOffset_00I10B10B10B10D
    1078,  // notEqual_30E30E
    1080,  // textureGather_00I10B
    1082,  // lessThanEqual_10E10E
    1084,  // inversesqrt_20B
    1086,  // textureLodOffset_00J20B00B20D
    1088,  // min_30D30D
    1090,  // textureOffset_00R10B10D00B
    1092,  // textureGrad_00e30B20B20B
    1094,  // atomicAdd_00E00E
    1096,  // gl_MaxGeometryInputComponents
    1097,  // findMSB_30E
    1099,  // findMSB_30D
    1101,  // textureGrad_00X10B10B10B
    1103,  // length_30B
    1105,  // greaterThanEqual_30E30E
    1107,  // fwidth_30B
    1110,  // textureGrad_00K20B20B20B
    1112,  // mix_20B20B20F
    1114,  // texelFetch_00S20D00D
    1116,  // textureGradOffset_00U20B10B10B10D
    1118,  // mix_20B20B20B
    1120,  // floatBitsToInt_10B
    1122,  // max_10B00B
    1124,  // textureGatherOffset_00L20B10D
    1126,  // textureLod_00a20B00B
    1128,  // any_10F
    1130,  // textureProjGradOffset_00d30B10B10B10D
    1132,  // textureProj_00N30B
    1133,  // gl_MaxProgramTexelOffset
    1135,  // exp2_30B
    1137,  // texelFetchOffset_00L20D00D10D
    1139,  // equal_30D30D
    1141,  // texture3DProj_00J30B00B
    1142,  // packSnorm2x16_10B
    1144,  // floatBitsToUint_30B
    1146,  // lessThanEqual_30D30D
    1148,  // gl_MaxGeometryImageUniforms
    1149,  // imageLoad_00y10D
    1150,  // asinh_00B
    1152,  // textureOffset_00R10B10D
    1154,  // greaterThanEqual_10E10E
    1156,  // textureProjGradOffset_00I30B10B10B10D
    1158,  // textureGather_00Z20B
    1160,  // textureOffset_00X10B10D
    1162,  // cosh_30B
    1164,  // textureOffset_00d20B10D00B
    1166,  // texture_00R10B
    1168,  // textureOffset_00S20B20D00B
    1170,  // usubBorrow_30E30E30E
    1172,  // radians_00B
    1174,  // textureProjOffset_00R20B10D00B
    1176,  // ldexp_30B30D
    1178,  // max_30B00B
    1180,  // min_20D20D
    1182,  // step_10B10B
    1184,  // gl_MaxDualSourceDrawBuffersEXT
    1185,  // step_30B30B
    1187,  // bitfieldReverse_10E
    1189,  // bitfieldReverse_10D
    1191,  // texture3DProj_00J30B
    1192,  // matrixCompMult_B0BB0B
    1193,  // lessThan_20E20E
    1195,  // cross_20B20B
    1197,  // all_10F
    1199,  // clamp_20B00B00B
    1201,  // tanh_20B
    1203,  // dFdx_00B
    1206,  // matrixCompMult_F0BF0B
    1208,  // abs_00D
    1210,  // abs_00B
    1212,  // textureLod_00R10B00B
    1214,  // step_20B20B
    1216,  // gl_MaxFragmentAtomicCounters
    1218,  // textureLodOffset_00U20B00B10D
    1220,  // textureProj_00R20B00B
    1222,  // faceforward_20B20B20B
    1224,  // imageSize_01E
    1225,  // acos_20B
    1227,  // texelFetch_00X10D00D
    1229,  // sinh_00B
    1231,  // imageSize_01A
    1232,  // texture2DLod_00I10B00B
    1234,  // texelFetch_00b10D00D
    1237,  // imageSize_01F
    1238,  // gl_MaxAtomicCounterBufferSize
    1240,  // max_20B20B
    1242,  // textureGatherOffset_00f20B00B10D
    1244,  // outerProduct_30B30B
    1246,  // lessThanEqual_20E20E
    1248,  // textureLod_00X10B00B
    1250,  // exp_30B
    1252,  // gl_BaseVertex
    1253,  // imageSize_01D
    1254,  // step_00B30B
    1256,  // bitCount_10D
    1258,  // equal_30E30E
    1260,  // sign_00B
    1262,  // log_00B
    1264,  // textureLod_00Z20B00B
    1266,  // sign_00D
    1268,  // textureOffset_00Y20B20D
    1270,  // transpose_60B
    1272,  // findMSB_00D
    1274,  // gl_MaxGeometryTotalOutputComponents
    1275,  // acosh_30B
    1277,  // findMSB_00E
    1279,  // bitfieldExtract_20E00D00D
    1281,  // uintBitsToFloat_20E
    1283,  // unpackUnorm4x8_00E
    1285,  // texture2DProj_00M20B
    1286,  // texelFetchOffset_00X10D00D10D
    1288,  // mod_10B10B
    1290,  // texture_00d20B00B
    1292,  // notEqual_10D10D
    1294,  // texture2DProj_00M30B
    1295,  // textureSize_00V
    1298,  // packUnorm2x16_10B
    1300,  // faceforward_00B00B00B
    1302,  // umulExtended_20E20E20E20E
    1304,  // textureOffset_00X10B10D00B
    1306,  // cos_30B
    1308,  // findLSB_30D
    1310,  // findLSB_30E
    1312,  // bitCount_20E
    1314,  // gl_NumWorkGroups
    1316,  // equal_20D20D
    1318,  // textureProjOffset_00Y30B20D00B
    1320,  // textureGatherOffset_00U20B10D
    1322,  // faceforward_10B10B10B
    1324,  // textureSize_00L00D
    1326,  // gl_MaxComputeUniformComponents
    1328,  // textureGather_00R10B00D
    1330,  // memoryBarrierBuffer_
    1332,  // textureSize_00Z00D
    1334,  // textureGather_00U20B
    1336,  // bitfieldExtract_30D00D00D
    1338,  // min_10D00D
    1340,  // imageStore_01H20D30B
    1341,  // texelFetch_00Q20D00D
    1342,  // max_20E00E
    1344,  // textureProj_00S30B
    1346,  // roundEven_00B
    1348,  // texture2DLodEXT_00I10B00B
    1349,  // dFdy_30B
    1352,  // atanh_20B
    1354,  // clamp_10E00E00E
    1356,  // clamp_20D00D00D
    1358,  // all_20F
    1360,  // isinf_10B
    1362,  // imageLoad_01C20D
    1363,  // imageSize_01J
    1364,  // imageSize_01H
    1365,  // imageSize_01I
    1366,  // packHalf2x16_10B
    1368,  // texture2DProj_00I20B00B
    1370,  // findLSB_00E
    1372,  // findLSB_00D
    1374,  // textureProjOffset_00X30B10D
    1376,  // imageSize_01C
    1377,  // greaterThanEqual_30B30B
    1379,  // textureSize_00U00D
    1381,  // textureGradOffset_00R10B10B10B10D
    1383,  // imageSize_01G
    1384,  // equal_30F30F
    1386,  // bitfieldExtract_00D00D00D
    1388,  // texture2DProjLodEXT_00I20B00B
    1389,  // notEqual_30F30F
    1391,  // gl_FrontFacing
    1393,  // gl_SecondaryFragColorEXT
    1394,  // inversesqrt_10B
    1396,  // imageStore_01C20D30D
    1397,  // acos_10B
    1399,  // abs_30D
    1401,  // gl_MaxFragmentUniformVectors
    1403,  // fract_20B
    1405,  // abs_30B
    1407,  // lessThan_10B10B
    1409,  // textureGatherOffset_00X10B10D
    1411,  // bitfieldInsert_10E10E00D00D
    1413,  // packSnorm4x8_30B
    1415,  // mix_10B10B00B
    1417,  // imageLoad_01E20D
    1418,  // clamp_30D30D30D
    1420,  // textureGather_00U20B00D
    1422,  // textureSize_00f00D
    1424,  // textureProj_00N20B00B
    1425,  // gl_FragData
    1427,  // imageLoad_01B20D
    1428,  // textureProj_00d30B00B
    1430,  // clamp_20E00E00E
    1432,  // texture_00X10B
    1434,  // textureProj_00d30B
    1436,  // mix_30B30B30F
    1438,  // determinant_F0B
    1439,  // transpose_A0B
    1441,  // pow_20B20B
    1443,  // texture2DProjGradEXT_00I20B10B10B
    1444,  // gl_LastFragColorARM
    1445,  // textureGather_00Z20B00D
    1447,  // textureGather_00R10B
    1449,  // lessThanEqual_20D20D
    1451,  // textureLod_00S20B00B
    1453,  // textureProjLod_00Y30B00B
    1455,  // cosh_10B
    1457,  // sqrt_30B
    1459,  // gl_VertexID
    1461,  // sign_10D
    1463,  // textureProj_00M30B
    1464,  // exp_00B
    1466,  // min_00E00E
    1468,  // max_30D30D
    1470,  // umulExtended_00E00E00E00E
    1472,  // gl_MaxVertexAttribs
    1474,  // gl_BaseInstance
    1475,  // transpose_B0B
    1477,  // fwidth_20B
    1480,  // Empty
    1480,  // smoothstep_00B00B30B
    1482,  // floatBitsToInt_20B
    1484,  // textureSize_00M00D
    1485,  // log2_20B
    1487,  // ldexp_10B10D
    1489,  // min_10B00B
    1491,  // mix_30B30B00B
    1493,  // angle_BaseInstance
    1494,  // degrees_10B
    1496,  // gl_MaxTextureImageUnits
    1498,  // gl_Position
    1501,  // texture_00K20B
    1503,  // atomicCompSwap_00E00E00E
    1505,  // textureProjOffset_00Y30B20D
    1507,  // sinh_10B
    1509,  // atan_30B
    1511,  // textureGradOffset_00L20B10B10B10D
    1513,  // ceil_10B
    1515,  // textureSize_00S00D
    1517,  // imageStore_01D20D30E
    1518,  // greaterThanEqual_10B10B
    1520,  // atomicCounterDecrement_00G
    1522,  // textureCube_00K20B00B
    1524,  // dot_20B20B
    1526,  // transpose_90B
    1528,  // not_30F
    1530,  // textureProjLodOffset_00I20B00B10D
    1532,  // notEqual_10F10F
    1534,  // textureProjGrad_00R20B10B10B
    1536,  // texture_00f30B
    1538,  // smoothstep_00B00B00B
    1540,  // textureProjLodOffset_00d30B00B10D
    1542,  // texelFetch_00R10D00D
    1544,  // cosh_20B
    1546,  // textureProjLodOffset_00I30B00B10D
    1548,  // normalize_30B
    1550,  // smoothstep_30B30B30B
    1552,  // bitfieldInsert_10D10D00D00D
    1554,  // clamp_20B20B20B
    1556,  // textureGrad_00L20B10B10B
    1558,  // textureGrad_00R10B10B10B
    1560,  // textureProjGrad_00I20B10B10B
    1562,  // textureGather_00e20B
    1563,  // texture2D_00M10B
    1564,  // min_00D00D
    1566,  // outerProduct_10B10B
    1568,  // lessThanEqual_10D10D
    1570,  // trunc_20B
    1572,  // gl_MaxVaryingVectors
    1574,  // textureProjOffset_00I30B10D00B
    1576,  // textureSize_00d00D
    1578,  // sin_00B
    1580,  // gl_MaxVertexUniformVectors
    1582,  // textureCubeLodEXT_00K20B00B
    1583,  // textureGather_00T20B00D
    1585,  // textureProj_00N20B
    1586,  // uaddCarry_10E10E10E
    1588,  // tan_10B
    1590,  // textureLodOffset_00L20B00B10D
    1592,  // atomicCounterIncrement_00G
    1594,  // ldexp_20B20D
    1596,  // greaterThanEqual_30D30D
    1598,  // notEqual_20B20B
    1600,  // imageLoad_01D20D
    1601,  // textureProjLodOffset_00X30B00B10D
    1603,  // isinf_20B
    1605,  // cos_10B
    1607,  // mix_30B30B30B
    1609,  // texture_00e30B
    1611,  // textureSize_00T00D
    1613,  // textureGatherOffset_00X10B10D00D
    1615,  // equal_10E10E
    1617,  // min_10E10E
    1619,  // textureProjGradOffset_00Y30B20B20B20D
    1621,  // textureGrad_00T20B20B20B
    1623,  // memoryBarrierImage_
    1625,  // textureProjOffset_00J30B20D
    1627,  // EmitVertex_
    1628,  // textureProjOffset_00d30B10D00B
    1630,  // round_10B
    1632,  // textureProjOffset_00d30B10D
    1634,  // notEqual_10E10E
    1636,  // textureProj_00R30B
    1638,  // matrixCompMult_50B50B
    1640,  // equal_20F20F
    1642,  // gl_MaxFragmentInputVectors
    1644,  // equal_30B30B
    1646,  // textureLod_00U20B00B
    1648,  // usubBorrow_10E10E10E
    1650,  // equal_10B10B
    1652,  // textureProjGradOffset_00I20B10B10B10D
    1654,  // texture2DProjLod_00I30B00B
    1656,  // isnan_10B
    1658,  // uaddCarry_20E20E20E
    1660,  // max_10B10B
    1662,  // atomicMax_00E00E
    1664,  // gl_PointSize
    1666,  // atomicMin_00D00D
    1668,  // textureSize_00X00D
    1670,  // greaterThan_10B10B
    1672,  // asin_10B
    1674,  // textureGather_00d10B00B
    1676,  // trunc_10B
    1678,  // gl_MaxComputeAtomicCounters
    1680,  // textureProj_00X30B
    1682,  // gl_MaxVertexAtomicCounters
    1684,  // length_20B
    1686,  // bitfieldInsert_30E30E00D00D
    1688,  // textureOffset_00S20B20D
    1690,  // textureProjOffset_00X20B10D
    1692,  // clamp_30D00D00D
    1694,  // clamp_10B00B00B
    1696,  // textureProj_00R20B
    1698,  // imageStore_01F20D30D
    1699,  // textureProj_00I20B00B
    1701,  // greaterThan_10E10E
    1703,  // textureProjOffset_00R30B10D00B
    1705,  // dFdy_00B
    1708,  // min_30D00D
    1710,  // floatBitsToInt_00B
    1712,  // sign_10B
    1714,  // max_00E00E
    1716,  // texture_00a20B00B
    1718,  // texture_00M10B00B
    1719,  // smoothstep_20B20B20B
    1721,  // textureCubeLod_00K20B00B
    1723,  // textureOffset_00J20B20D
    1725,  // texelFetch_00J20D00D
    1727,  // textureProj_00M20B00B
    1728,  // floatBitsToUint_00B
    1730,  // textureProjGradOffset_00R30B10B10B10D
    1732,  // textureLod_00K20B00B
    1734,  // textureProjOffset_00X30B10D00B
    1736,  // cos_20B
    1738,  // exp2_00B
    1740,  // radians_30B
    1742,  // texture2DRectProj_00O20B
    1743,  // tan_20B
    1745,  // textureGather_00T20B
    1747,  // textureGather_00a20B00D
    1749,  // textureProjGradOffset_00J30B20B20B20D
    1751,  // asinh_10B
    1753,  // textureProjGrad_00X30B10B10B
    1755,  // floor_00B
    1757,  // gl_DrawID
    1758,  // atomicOr_00D00D
    1760,  // 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},
    {"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::OES_EGL_image_external_essl3, Ext::UNDEFINED, 300, -1, 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},
    {"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},
    {"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},
    {"atomicExchange", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, 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 == 935 - 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 >= 935)
        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 >= 150)
        return false;

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

}  // namespace sh
