// GENERATED FILE - DO NOT EDIT.
// Generated by gen_builtin_symbols.py using data from builtin_variables.json and
// builtin_function_declarations.txt.
//
// Copyright 2020 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// SymbolTable_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::mix_Int1_Int1_Bool1;
constexpr const TSymbolUniqueId BuiltInId::mix_Int2_Int2_Bool2;
constexpr const TSymbolUniqueId BuiltInId::mix_Int3_Int3_Bool3;
constexpr const TSymbolUniqueId BuiltInId::mix_Int4_Int4_Bool4;
constexpr const TSymbolUniqueId BuiltInId::mix_UInt1_UInt1_Bool1;
constexpr const TSymbolUniqueId BuiltInId::mix_UInt2_UInt2_Bool2;
constexpr const TSymbolUniqueId BuiltInId::mix_UInt3_UInt3_Bool3;
constexpr const TSymbolUniqueId BuiltInId::mix_UInt4_UInt4_Bool4;
constexpr const TSymbolUniqueId BuiltInId::mix_Bool1_Bool1_Bool1;
constexpr const TSymbolUniqueId BuiltInId::mix_Bool2_Bool2_Bool2;
constexpr const TSymbolUniqueId BuiltInId::mix_Bool3_Bool3_Bool3;
constexpr const TSymbolUniqueId BuiltInId::mix_Bool4_Bool4_Bool4;
constexpr const TSymbolUniqueId BuiltInId::step_Float1_Float1;
constexpr const TSymbolUniqueId BuiltInId::step_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::step_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::step_Float4_Float4;
constexpr const TSymbolUniqueId BuiltInId::step_Float1_Float2;
constexpr const TSymbolUniqueId BuiltInId::step_Float1_Float3;
constexpr const TSymbolUniqueId BuiltInId::step_Float1_Float4;
constexpr const TSymbolUniqueId BuiltInId::smoothstep_Float1_Float1_Float1;
constexpr const TSymbolUniqueId BuiltInId::smoothstep_Float2_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::smoothstep_Float3_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::smoothstep_Float4_Float4_Float4;
constexpr const TSymbolUniqueId BuiltInId::smoothstep_Float1_Float1_Float2;
constexpr const TSymbolUniqueId BuiltInId::smoothstep_Float1_Float1_Float3;
constexpr const TSymbolUniqueId BuiltInId::smoothstep_Float1_Float1_Float4;
constexpr const TSymbolUniqueId BuiltInId::modf_Float1_Float1;
constexpr const TSymbolUniqueId BuiltInId::modf_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::modf_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::modf_Float4_Float4;
constexpr const TSymbolUniqueId BuiltInId::isnan_Float1;
constexpr const TSymbolUniqueId BuiltInId::isnan_Float2;
constexpr const TSymbolUniqueId BuiltInId::isnan_Float3;
constexpr const TSymbolUniqueId BuiltInId::isnan_Float4;
constexpr const TSymbolUniqueId BuiltInId::isinf_Float1;
constexpr const TSymbolUniqueId BuiltInId::isinf_Float2;
constexpr const TSymbolUniqueId BuiltInId::isinf_Float3;
constexpr const TSymbolUniqueId BuiltInId::isinf_Float4;
constexpr const TSymbolUniqueId BuiltInId::floatBitsToInt_Float1;
constexpr const TSymbolUniqueId BuiltInId::floatBitsToInt_Float2;
constexpr const TSymbolUniqueId BuiltInId::floatBitsToInt_Float3;
constexpr const TSymbolUniqueId BuiltInId::floatBitsToInt_Float4;
constexpr const TSymbolUniqueId BuiltInId::floatBitsToUint_Float1;
constexpr const TSymbolUniqueId BuiltInId::floatBitsToUint_Float2;
constexpr const TSymbolUniqueId BuiltInId::floatBitsToUint_Float3;
constexpr const TSymbolUniqueId BuiltInId::floatBitsToUint_Float4;
constexpr const TSymbolUniqueId BuiltInId::intBitsToFloat_Int1;
constexpr const TSymbolUniqueId BuiltInId::intBitsToFloat_Int2;
constexpr const TSymbolUniqueId BuiltInId::intBitsToFloat_Int3;
constexpr const TSymbolUniqueId BuiltInId::intBitsToFloat_Int4;
constexpr const TSymbolUniqueId BuiltInId::uintBitsToFloat_UInt1;
constexpr const TSymbolUniqueId BuiltInId::uintBitsToFloat_UInt2;
constexpr const TSymbolUniqueId BuiltInId::uintBitsToFloat_UInt3;
constexpr const TSymbolUniqueId BuiltInId::uintBitsToFloat_UInt4;
constexpr const TSymbolUniqueId BuiltInId::fma_Float1_Float1_Float1;
constexpr const TSymbolUniqueId BuiltInId::fma_Float2_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::fma_Float3_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::fma_Float4_Float4_Float4;
constexpr const TSymbolUniqueId BuiltInId::fmaExt_Float1_Float1_Float1;
constexpr const TSymbolUniqueId BuiltInId::fmaExt_Float2_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::fmaExt_Float3_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::fmaExt_Float4_Float4_Float4;
constexpr const TSymbolUniqueId BuiltInId::frexp_Float1_Int1;
constexpr const TSymbolUniqueId BuiltInId::frexp_Float2_Int2;
constexpr const TSymbolUniqueId BuiltInId::frexp_Float3_Int3;
constexpr const TSymbolUniqueId BuiltInId::frexp_Float4_Int4;
constexpr const TSymbolUniqueId BuiltInId::ldexp_Float1_Int1;
constexpr const TSymbolUniqueId BuiltInId::ldexp_Float2_Int2;
constexpr const TSymbolUniqueId BuiltInId::ldexp_Float3_Int3;
constexpr const TSymbolUniqueId BuiltInId::ldexp_Float4_Int4;
constexpr const TSymbolUniqueId BuiltInId::packSnorm2x16_Float2;
constexpr const TSymbolUniqueId BuiltInId::packHalf2x16_Float2;
constexpr const TSymbolUniqueId BuiltInId::unpackSnorm2x16_UInt1;
constexpr const TSymbolUniqueId BuiltInId::unpackHalf2x16_UInt1;
constexpr const TSymbolUniqueId BuiltInId::packUnorm2x16_Float2;
constexpr const TSymbolUniqueId BuiltInId::unpackUnorm2x16_UInt1;
constexpr const TSymbolUniqueId BuiltInId::packUnorm4x8_Float4;
constexpr const TSymbolUniqueId BuiltInId::packSnorm4x8_Float4;
constexpr const TSymbolUniqueId BuiltInId::unpackUnorm4x8_UInt1;
constexpr const TSymbolUniqueId BuiltInId::unpackSnorm4x8_UInt1;
constexpr const TSymbolUniqueId BuiltInId::length_Float1;
constexpr const TSymbolUniqueId BuiltInId::length_Float2;
constexpr const TSymbolUniqueId BuiltInId::length_Float3;
constexpr const TSymbolUniqueId BuiltInId::length_Float4;
constexpr const TSymbolUniqueId BuiltInId::distance_Float1_Float1;
constexpr const TSymbolUniqueId BuiltInId::distance_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::distance_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::distance_Float4_Float4;
constexpr const TSymbolUniqueId BuiltInId::dot_Float1_Float1;
constexpr const TSymbolUniqueId BuiltInId::dot_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::dot_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::dot_Float4_Float4;
constexpr const TSymbolUniqueId BuiltInId::cross_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::normalize_Float1;
constexpr const TSymbolUniqueId BuiltInId::normalize_Float2;
constexpr const TSymbolUniqueId BuiltInId::normalize_Float3;
constexpr const TSymbolUniqueId BuiltInId::normalize_Float4;
constexpr const TSymbolUniqueId BuiltInId::faceforward_Float1_Float1_Float1;
constexpr const TSymbolUniqueId BuiltInId::faceforward_Float2_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::faceforward_Float3_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::faceforward_Float4_Float4_Float4;
constexpr const TSymbolUniqueId BuiltInId::reflect_Float1_Float1;
constexpr const TSymbolUniqueId BuiltInId::reflect_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::reflect_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::reflect_Float4_Float4;
constexpr const TSymbolUniqueId BuiltInId::refract_Float1_Float1_Float1;
constexpr const TSymbolUniqueId BuiltInId::refract_Float2_Float2_Float1;
constexpr const TSymbolUniqueId BuiltInId::refract_Float3_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::refract_Float4_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::matrixCompMult_Float2x2_Float2x2;
constexpr const TSymbolUniqueId BuiltInId::matrixCompMult_Float3x3_Float3x3;
constexpr const TSymbolUniqueId BuiltInId::matrixCompMult_Float4x4_Float4x4;
constexpr const TSymbolUniqueId BuiltInId::matrixCompMult_Float2x3_Float2x3;
constexpr const TSymbolUniqueId BuiltInId::matrixCompMult_Float3x2_Float3x2;
constexpr const TSymbolUniqueId BuiltInId::matrixCompMult_Float2x4_Float2x4;
constexpr const TSymbolUniqueId BuiltInId::matrixCompMult_Float4x2_Float4x2;
constexpr const TSymbolUniqueId BuiltInId::matrixCompMult_Float3x4_Float3x4;
constexpr const TSymbolUniqueId BuiltInId::matrixCompMult_Float4x3_Float4x3;
constexpr const TSymbolUniqueId BuiltInId::outerProduct_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::outerProduct_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::outerProduct_Float4_Float4;
constexpr const TSymbolUniqueId BuiltInId::outerProduct_Float3_Float2;
constexpr const TSymbolUniqueId BuiltInId::outerProduct_Float2_Float3;
constexpr const TSymbolUniqueId BuiltInId::outerProduct_Float4_Float2;
constexpr const TSymbolUniqueId BuiltInId::outerProduct_Float2_Float4;
constexpr const TSymbolUniqueId BuiltInId::outerProduct_Float4_Float3;
constexpr const TSymbolUniqueId BuiltInId::outerProduct_Float3_Float4;
constexpr const TSymbolUniqueId BuiltInId::transpose_Float2x2;
constexpr const TSymbolUniqueId BuiltInId::transpose_Float3x3;
constexpr const TSymbolUniqueId BuiltInId::transpose_Float4x4;
constexpr const TSymbolUniqueId BuiltInId::transpose_Float3x2;
constexpr const TSymbolUniqueId BuiltInId::transpose_Float2x3;
constexpr const TSymbolUniqueId BuiltInId::transpose_Float4x2;
constexpr const TSymbolUniqueId BuiltInId::transpose_Float2x4;
constexpr const TSymbolUniqueId BuiltInId::transpose_Float4x3;
constexpr const TSymbolUniqueId BuiltInId::transpose_Float3x4;
constexpr const TSymbolUniqueId BuiltInId::determinant_Float2x2;
constexpr const TSymbolUniqueId BuiltInId::determinant_Float3x3;
constexpr const TSymbolUniqueId BuiltInId::determinant_Float4x4;
constexpr const TSymbolUniqueId BuiltInId::inverse_Float2x2;
constexpr const TSymbolUniqueId BuiltInId::inverse_Float3x3;
constexpr const TSymbolUniqueId BuiltInId::inverse_Float4x4;
constexpr const TSymbolUniqueId BuiltInId::lessThan_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::lessThan_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::lessThan_Float4_Float4;
constexpr const TSymbolUniqueId BuiltInId::lessThan_Int2_Int2;
constexpr const TSymbolUniqueId BuiltInId::lessThan_Int3_Int3;
constexpr const TSymbolUniqueId BuiltInId::lessThan_Int4_Int4;
constexpr const TSymbolUniqueId BuiltInId::lessThan_UInt2_UInt2;
constexpr const TSymbolUniqueId BuiltInId::lessThan_UInt3_UInt3;
constexpr const TSymbolUniqueId BuiltInId::lessThan_UInt4_UInt4;
constexpr const TSymbolUniqueId BuiltInId::lessThanEqual_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::lessThanEqual_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::lessThanEqual_Float4_Float4;
constexpr const TSymbolUniqueId BuiltInId::lessThanEqual_Int2_Int2;
constexpr const TSymbolUniqueId BuiltInId::lessThanEqual_Int3_Int3;
constexpr const TSymbolUniqueId BuiltInId::lessThanEqual_Int4_Int4;
constexpr const TSymbolUniqueId BuiltInId::lessThanEqual_UInt2_UInt2;
constexpr const TSymbolUniqueId BuiltInId::lessThanEqual_UInt3_UInt3;
constexpr const TSymbolUniqueId BuiltInId::lessThanEqual_UInt4_UInt4;
constexpr const TSymbolUniqueId BuiltInId::greaterThan_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::greaterThan_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::greaterThan_Float4_Float4;
constexpr const TSymbolUniqueId BuiltInId::greaterThan_Int2_Int2;
constexpr const TSymbolUniqueId BuiltInId::greaterThan_Int3_Int3;
constexpr const TSymbolUniqueId BuiltInId::greaterThan_Int4_Int4;
constexpr const TSymbolUniqueId BuiltInId::greaterThan_UInt2_UInt2;
constexpr const TSymbolUniqueId BuiltInId::greaterThan_UInt3_UInt3;
constexpr const TSymbolUniqueId BuiltInId::greaterThan_UInt4_UInt4;
constexpr const TSymbolUniqueId BuiltInId::greaterThanEqual_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::greaterThanEqual_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::greaterThanEqual_Float4_Float4;
constexpr const TSymbolUniqueId BuiltInId::greaterThanEqual_Int2_Int2;
constexpr const TSymbolUniqueId BuiltInId::greaterThanEqual_Int3_Int3;
constexpr const TSymbolUniqueId BuiltInId::greaterThanEqual_Int4_Int4;
constexpr const TSymbolUniqueId BuiltInId::greaterThanEqual_UInt2_UInt2;
constexpr const TSymbolUniqueId BuiltInId::greaterThanEqual_UInt3_UInt3;
constexpr const TSymbolUniqueId BuiltInId::greaterThanEqual_UInt4_UInt4;
constexpr const TSymbolUniqueId BuiltInId::equal_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::equal_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::equal_Float4_Float4;
constexpr const TSymbolUniqueId BuiltInId::equal_Int2_Int2;
constexpr const TSymbolUniqueId BuiltInId::equal_Int3_Int3;
constexpr const TSymbolUniqueId BuiltInId::equal_Int4_Int4;
constexpr const TSymbolUniqueId BuiltInId::equal_UInt2_UInt2;
constexpr const TSymbolUniqueId BuiltInId::equal_UInt3_UInt3;
constexpr const TSymbolUniqueId BuiltInId::equal_UInt4_UInt4;
constexpr const TSymbolUniqueId BuiltInId::equal_Bool2_Bool2;
constexpr const TSymbolUniqueId BuiltInId::equal_Bool3_Bool3;
constexpr const TSymbolUniqueId BuiltInId::equal_Bool4_Bool4;
constexpr const TSymbolUniqueId BuiltInId::notEqual_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::notEqual_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::notEqual_Float4_Float4;
constexpr const TSymbolUniqueId BuiltInId::notEqual_Int2_Int2;
constexpr const TSymbolUniqueId BuiltInId::notEqual_Int3_Int3;
constexpr const TSymbolUniqueId BuiltInId::notEqual_Int4_Int4;
constexpr const TSymbolUniqueId BuiltInId::notEqual_UInt2_UInt2;
constexpr const TSymbolUniqueId BuiltInId::notEqual_UInt3_UInt3;
constexpr const TSymbolUniqueId BuiltInId::notEqual_UInt4_UInt4;
constexpr const TSymbolUniqueId BuiltInId::notEqual_Bool2_Bool2;
constexpr const TSymbolUniqueId BuiltInId::notEqual_Bool3_Bool3;
constexpr const TSymbolUniqueId BuiltInId::notEqual_Bool4_Bool4;
constexpr const TSymbolUniqueId BuiltInId::any_Bool2;
constexpr const TSymbolUniqueId BuiltInId::any_Bool3;
constexpr const TSymbolUniqueId BuiltInId::any_Bool4;
constexpr const TSymbolUniqueId BuiltInId::all_Bool2;
constexpr const TSymbolUniqueId BuiltInId::all_Bool3;
constexpr const TSymbolUniqueId BuiltInId::all_Bool4;
constexpr const TSymbolUniqueId BuiltInId::notFunc_Bool2;
constexpr const TSymbolUniqueId BuiltInId::notFunc_Bool3;
constexpr const TSymbolUniqueId BuiltInId::notFunc_Bool4;
constexpr const TSymbolUniqueId BuiltInId::bitfieldExtract_Int1_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::bitfieldExtract_Int2_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::bitfieldExtract_Int3_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::bitfieldExtract_Int4_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::bitfieldExtract_UInt1_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::bitfieldExtract_UInt2_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::bitfieldExtract_UInt3_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::bitfieldExtract_UInt4_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::bitfieldInsert_Int1_Int1_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::bitfieldInsert_Int2_Int2_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::bitfieldInsert_Int3_Int3_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::bitfieldInsert_Int4_Int4_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::bitfieldInsert_UInt1_UInt1_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::bitfieldInsert_UInt2_UInt2_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::bitfieldInsert_UInt3_UInt3_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::bitfieldInsert_UInt4_UInt4_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::bitfieldReverse_Int1;
constexpr const TSymbolUniqueId BuiltInId::bitfieldReverse_Int2;
constexpr const TSymbolUniqueId BuiltInId::bitfieldReverse_Int3;
constexpr const TSymbolUniqueId BuiltInId::bitfieldReverse_Int4;
constexpr const TSymbolUniqueId BuiltInId::bitfieldReverse_UInt1;
constexpr const TSymbolUniqueId BuiltInId::bitfieldReverse_UInt2;
constexpr const TSymbolUniqueId BuiltInId::bitfieldReverse_UInt3;
constexpr const TSymbolUniqueId BuiltInId::bitfieldReverse_UInt4;
constexpr const TSymbolUniqueId BuiltInId::bitCount_Int1;
constexpr const TSymbolUniqueId BuiltInId::bitCount_Int2;
constexpr const TSymbolUniqueId BuiltInId::bitCount_Int3;
constexpr const TSymbolUniqueId BuiltInId::bitCount_Int4;
constexpr const TSymbolUniqueId BuiltInId::bitCount_UInt1;
constexpr const TSymbolUniqueId BuiltInId::bitCount_UInt2;
constexpr const TSymbolUniqueId BuiltInId::bitCount_UInt3;
constexpr const TSymbolUniqueId BuiltInId::bitCount_UInt4;
constexpr const TSymbolUniqueId BuiltInId::findLSB_Int1;
constexpr const TSymbolUniqueId BuiltInId::findLSB_Int2;
constexpr const TSymbolUniqueId BuiltInId::findLSB_Int3;
constexpr const TSymbolUniqueId BuiltInId::findLSB_Int4;
constexpr const TSymbolUniqueId BuiltInId::findLSB_UInt1;
constexpr const TSymbolUniqueId BuiltInId::findLSB_UInt2;
constexpr const TSymbolUniqueId BuiltInId::findLSB_UInt3;
constexpr const TSymbolUniqueId BuiltInId::findLSB_UInt4;
constexpr const TSymbolUniqueId BuiltInId::findMSB_Int1;
constexpr const TSymbolUniqueId BuiltInId::findMSB_Int2;
constexpr const TSymbolUniqueId BuiltInId::findMSB_Int3;
constexpr const TSymbolUniqueId BuiltInId::findMSB_Int4;
constexpr const TSymbolUniqueId BuiltInId::findMSB_UInt1;
constexpr const TSymbolUniqueId BuiltInId::findMSB_UInt2;
constexpr const TSymbolUniqueId BuiltInId::findMSB_UInt3;
constexpr const TSymbolUniqueId BuiltInId::findMSB_UInt4;
constexpr const TSymbolUniqueId BuiltInId::uaddCarry_UInt1_UInt1_UInt1;
constexpr const TSymbolUniqueId BuiltInId::uaddCarry_UInt2_UInt2_UInt2;
constexpr const TSymbolUniqueId BuiltInId::uaddCarry_UInt3_UInt3_UInt3;
constexpr const TSymbolUniqueId BuiltInId::uaddCarry_UInt4_UInt4_UInt4;
constexpr const TSymbolUniqueId BuiltInId::usubBorrow_UInt1_UInt1_UInt1;
constexpr const TSymbolUniqueId BuiltInId::usubBorrow_UInt2_UInt2_UInt2;
constexpr const TSymbolUniqueId BuiltInId::usubBorrow_UInt3_UInt3_UInt3;
constexpr const TSymbolUniqueId BuiltInId::usubBorrow_UInt4_UInt4_UInt4;
constexpr const TSymbolUniqueId BuiltInId::umulExtended_UInt1_UInt1_UInt1_UInt1;
constexpr const TSymbolUniqueId BuiltInId::umulExtended_UInt2_UInt2_UInt2_UInt2;
constexpr const TSymbolUniqueId BuiltInId::umulExtended_UInt3_UInt3_UInt3_UInt3;
constexpr const TSymbolUniqueId BuiltInId::umulExtended_UInt4_UInt4_UInt4_UInt4;
constexpr const TSymbolUniqueId BuiltInId::imulExtended_Int1_Int1_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::imulExtended_Int2_Int2_Int2_Int2;
constexpr const TSymbolUniqueId BuiltInId::imulExtended_Int3_Int3_Int3_Int3;
constexpr const TSymbolUniqueId BuiltInId::imulExtended_Int4_Int4_Int4_Int4;
constexpr const TSymbolUniqueId BuiltInId::texture2D_Sampler2D1_Float2;
constexpr const TSymbolUniqueId BuiltInId::texture2DProj_Sampler2D1_Float3;
constexpr const TSymbolUniqueId BuiltInId::texture2DProj_Sampler2D1_Float4;
constexpr const TSymbolUniqueId BuiltInId::textureCube_SamplerCube1_Float3;
constexpr const TSymbolUniqueId BuiltInId::texture2D_SamplerExternalOES1_Float2;
constexpr const TSymbolUniqueId BuiltInId::texture2DProj_SamplerExternalOES1_Float3;
constexpr const TSymbolUniqueId BuiltInId::texture2DProj_SamplerExternalOES1_Float4;
constexpr const TSymbolUniqueId BuiltInId::texture2DRect_Sampler2DRect1_Float2;
constexpr const TSymbolUniqueId BuiltInId::texture2DRectProj_Sampler2DRect1_Float3;
constexpr const TSymbolUniqueId BuiltInId::texture2DRectProj_Sampler2DRect1_Float4;
constexpr const TSymbolUniqueId BuiltInId::texture_Sampler2DRect1_Float2;
constexpr const TSymbolUniqueId BuiltInId::textureProj_Sampler2DRect1_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureProj_Sampler2DRect1_Float4;
constexpr const TSymbolUniqueId BuiltInId::texture2DGradEXT_Sampler2D1_Float2_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::texture2DProjGradEXT_Sampler2D1_Float3_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::texture2DProjGradEXT_Sampler2D1_Float4_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::textureCubeGradEXT_SamplerCube1_Float3_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::texture2D_Sampler2D1_Float2_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture2DProj_Sampler2D1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture2DProj_Sampler2D1_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureCube_SamplerCube1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::dFdxExt_Float1;
constexpr const TSymbolUniqueId BuiltInId::dFdxExt_Float2;
constexpr const TSymbolUniqueId BuiltInId::dFdxExt_Float3;
constexpr const TSymbolUniqueId BuiltInId::dFdxExt_Float4;
constexpr const TSymbolUniqueId BuiltInId::dFdyExt_Float1;
constexpr const TSymbolUniqueId BuiltInId::dFdyExt_Float2;
constexpr const TSymbolUniqueId BuiltInId::dFdyExt_Float3;
constexpr const TSymbolUniqueId BuiltInId::dFdyExt_Float4;
constexpr const TSymbolUniqueId BuiltInId::fwidthExt_Float1;
constexpr const TSymbolUniqueId BuiltInId::fwidthExt_Float2;
constexpr const TSymbolUniqueId BuiltInId::fwidthExt_Float3;
constexpr const TSymbolUniqueId BuiltInId::fwidthExt_Float4;
constexpr const TSymbolUniqueId BuiltInId::texture2DLodEXT_Sampler2D1_Float2_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture2DProjLodEXT_Sampler2D1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture2DProjLodEXT_Sampler2D1_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureCubeLodEXT_SamplerCube1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture3D_Sampler3D1_Float3;
constexpr const TSymbolUniqueId BuiltInId::texture3DProj_Sampler3D1_Float4;
constexpr const TSymbolUniqueId BuiltInId::texture3D_Sampler3D1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture3DProj_Sampler3D1_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture3DLod_Sampler3D1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture3DProjLod_Sampler3D1_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture2DLod_Sampler2D1_Float2_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture2DProjLod_Sampler2D1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture2DProjLod_Sampler2D1_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureCubeLod_SamplerCube1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture_Sampler2D1_Float2;
constexpr const TSymbolUniqueId BuiltInId::texture_ISampler2D1_Float2;
constexpr const TSymbolUniqueId BuiltInId::texture_USampler2D1_Float2;
constexpr const TSymbolUniqueId BuiltInId::texture_Sampler3D1_Float3;
constexpr const TSymbolUniqueId BuiltInId::texture_ISampler3D1_Float3;
constexpr const TSymbolUniqueId BuiltInId::texture_USampler3D1_Float3;
constexpr const TSymbolUniqueId BuiltInId::texture_SamplerCube1_Float3;
constexpr const TSymbolUniqueId BuiltInId::texture_ISamplerCube1_Float3;
constexpr const TSymbolUniqueId BuiltInId::texture_USamplerCube1_Float3;
constexpr const TSymbolUniqueId BuiltInId::texture_Sampler2DArray1_Float3;
constexpr const TSymbolUniqueId BuiltInId::texture_ISampler2DArray1_Float3;
constexpr const TSymbolUniqueId BuiltInId::texture_USampler2DArray1_Float3;
constexpr const TSymbolUniqueId BuiltInId::texture_Sampler2DShadow1_Float3;
constexpr const TSymbolUniqueId BuiltInId::texture_SamplerCubeShadow1_Float4;
constexpr const TSymbolUniqueId BuiltInId::texture_Sampler2DArrayShadow1_Float4;
constexpr const TSymbolUniqueId BuiltInId::textureProj_Sampler2D1_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureProj_ISampler2D1_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureProj_USampler2D1_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureProj_Sampler2D1_Float4;
constexpr const TSymbolUniqueId BuiltInId::textureProj_ISampler2D1_Float4;
constexpr const TSymbolUniqueId BuiltInId::textureProj_USampler2D1_Float4;
constexpr const TSymbolUniqueId BuiltInId::textureProj_Sampler3D1_Float4;
constexpr const TSymbolUniqueId BuiltInId::textureProj_ISampler3D1_Float4;
constexpr const TSymbolUniqueId BuiltInId::textureProj_USampler3D1_Float4;
constexpr const TSymbolUniqueId BuiltInId::textureProj_Sampler2DShadow1_Float4;
constexpr const TSymbolUniqueId BuiltInId::textureLod_Sampler2D1_Float2_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureLod_ISampler2D1_Float2_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureLod_USampler2D1_Float2_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureLod_Sampler3D1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureLod_ISampler3D1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureLod_USampler3D1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureLod_SamplerCube1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureLod_ISamplerCube1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureLod_USamplerCube1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureLod_Sampler2DArray1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureLod_ISampler2DArray1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureLod_USampler2DArray1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureLod_Sampler2DShadow1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureSize_Sampler2D1_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureSize_ISampler2D1_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureSize_USampler2D1_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureSize_Sampler3D1_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureSize_ISampler3D1_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureSize_USampler3D1_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureSize_SamplerCube1_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureSize_ISamplerCube1_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureSize_USamplerCube1_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureSize_Sampler2DArray1_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureSize_ISampler2DArray1_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureSize_USampler2DArray1_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureSize_Sampler2DShadow1_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureSize_SamplerCubeShadow1_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureSize_Sampler2DArrayShadow1_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureProjLod_Sampler2D1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProjLod_ISampler2D1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProjLod_USampler2D1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProjLod_Sampler2D1_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProjLod_ISampler2D1_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProjLod_USampler2D1_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProjLod_Sampler3D1_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProjLod_ISampler3D1_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProjLod_USampler3D1_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProjLod_Sampler2DShadow1_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::texelFetch_Sampler2D1_Int2_Int1;
constexpr const TSymbolUniqueId BuiltInId::texelFetch_ISampler2D1_Int2_Int1;
constexpr const TSymbolUniqueId BuiltInId::texelFetch_USampler2D1_Int2_Int1;
constexpr const TSymbolUniqueId BuiltInId::texelFetch_Sampler3D1_Int3_Int1;
constexpr const TSymbolUniqueId BuiltInId::texelFetch_ISampler3D1_Int3_Int1;
constexpr const TSymbolUniqueId BuiltInId::texelFetch_USampler3D1_Int3_Int1;
constexpr const TSymbolUniqueId BuiltInId::texelFetch_Sampler2DArray1_Int3_Int1;
constexpr const TSymbolUniqueId BuiltInId::texelFetch_ISampler2DArray1_Int3_Int1;
constexpr const TSymbolUniqueId BuiltInId::texelFetch_USampler2DArray1_Int3_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGrad_Sampler2D1_Float2_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::textureGrad_ISampler2D1_Float2_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::textureGrad_USampler2D1_Float2_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::textureGrad_Sampler3D1_Float3_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureGrad_ISampler3D1_Float3_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureGrad_USampler3D1_Float3_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureGrad_SamplerCube1_Float3_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureGrad_ISamplerCube1_Float3_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureGrad_USamplerCube1_Float3_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureGrad_Sampler2DShadow1_Float3_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::textureGrad_SamplerCubeShadow1_Float4_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureGrad_Sampler2DArray1_Float3_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::textureGrad_ISampler2DArray1_Float3_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::textureGrad_USampler2DArray1_Float3_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::textureGrad_Sampler2DArrayShadow1_Float4_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_Sampler2D1_Float3_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_ISampler2D1_Float3_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_USampler2D1_Float3_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_Sampler2D1_Float4_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_ISampler2D1_Float4_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_USampler2D1_Float4_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_Sampler3D1_Float4_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_ISampler3D1_Float4_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_USampler3D1_Float4_Float3_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureProjGrad_Sampler2DShadow1_Float4_Float2_Float2;
constexpr const TSymbolUniqueId BuiltInId::textureSize_Sampler2DMS1;
constexpr const TSymbolUniqueId BuiltInId::textureSize_ISampler2DMS1;
constexpr const TSymbolUniqueId BuiltInId::textureSize_USampler2DMS1;
constexpr const TSymbolUniqueId BuiltInId::textureSizeExt_Sampler2DMS1;
constexpr const TSymbolUniqueId BuiltInId::textureSizeExt_ISampler2DMS1;
constexpr const TSymbolUniqueId BuiltInId::textureSizeExt_USampler2DMS1;
constexpr const TSymbolUniqueId BuiltInId::textureSizeExt_Sampler2DMSArray1;
constexpr const TSymbolUniqueId BuiltInId::textureSizeExt_ISampler2DMSArray1;
constexpr const TSymbolUniqueId BuiltInId::textureSizeExt_USampler2DMSArray1;
constexpr const TSymbolUniqueId BuiltInId::texelFetch_Sampler2DMS1_Int2_Int1;
constexpr const TSymbolUniqueId BuiltInId::texelFetch_ISampler2DMS1_Int2_Int1;
constexpr const TSymbolUniqueId BuiltInId::texelFetch_USampler2DMS1_Int2_Int1;
constexpr const TSymbolUniqueId BuiltInId::texelFetchExt_Sampler2DMS1_Int2_Int1;
constexpr const TSymbolUniqueId BuiltInId::texelFetchExt_ISampler2DMS1_Int2_Int1;
constexpr const TSymbolUniqueId BuiltInId::texelFetchExt_USampler2DMS1_Int2_Int1;
constexpr const TSymbolUniqueId BuiltInId::texelFetchExt_Sampler2DMSArray1_Int3_Int1;
constexpr const TSymbolUniqueId BuiltInId::texelFetchExt_ISampler2DMSArray1_Int3_Int1;
constexpr const TSymbolUniqueId BuiltInId::texelFetchExt_USampler2DMSArray1_Int3_Int1;
constexpr const TSymbolUniqueId BuiltInId::texture_Sampler2D1_Float2_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture_ISampler2D1_Float2_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture_USampler2D1_Float2_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture_Sampler3D1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture_ISampler3D1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture_USampler3D1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture_SamplerCube1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture_ISamplerCube1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture_USamplerCube1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture_Sampler2DArray1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture_ISampler2DArray1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture_USampler2DArray1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProj_Sampler2D1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProj_ISampler2D1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProj_USampler2D1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProj_Sampler2D1_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProj_ISampler2D1_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProj_USampler2D1_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProj_Sampler3D1_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProj_ISampler3D1_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProj_USampler3D1_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture_Sampler2DShadow1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture_SamplerCubeShadow1_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProj_Sampler2DShadow1_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture_SamplerExternalOES1_Float2_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProj_SamplerExternalOES1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProj_SamplerExternalOES1_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture_SamplerExternal2DY2YEXT1_Float2_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float4_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureOffset_Sampler2D1_Float2_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureOffset_ISampler2D1_Float2_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureOffset_USampler2D1_Float2_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureOffset_Sampler3D1_Float3_Int3;
constexpr const TSymbolUniqueId BuiltInId::textureOffset_ISampler3D1_Float3_Int3;
constexpr const TSymbolUniqueId BuiltInId::textureOffset_USampler3D1_Float3_Int3;
constexpr const TSymbolUniqueId BuiltInId::textureOffset_Sampler2DShadow1_Float3_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureOffset_Sampler2DArray1_Float3_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureOffset_ISampler2DArray1_Float3_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureOffset_USampler2DArray1_Float3_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_Sampler2D1_Float3_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_ISampler2D1_Float3_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_USampler2D1_Float3_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_Sampler2D1_Float4_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_ISampler2D1_Float4_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_USampler2D1_Float4_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_Sampler3D1_Float4_Int3;
constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_ISampler3D1_Float4_Int3;
constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_USampler3D1_Float4_Int3;
constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_Sampler2DShadow1_Float4_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureLodOffset_Sampler2D1_Float2_Float1_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureLodOffset_ISampler2D1_Float2_Float1_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureLodOffset_USampler2D1_Float2_Float1_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureLodOffset_Sampler3D1_Float3_Float1_Int3;
constexpr const TSymbolUniqueId BuiltInId::textureLodOffset_ISampler3D1_Float3_Float1_Int3;
constexpr const TSymbolUniqueId BuiltInId::textureLodOffset_USampler3D1_Float3_Float1_Int3;
constexpr const TSymbolUniqueId BuiltInId::textureLodOffset_Sampler2DShadow1_Float3_Float1_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureLodOffset_Sampler2DArray1_Float3_Float1_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureLodOffset_ISampler2DArray1_Float3_Float1_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureLodOffset_USampler2DArray1_Float3_Float1_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureProjLodOffset_Sampler2D1_Float3_Float1_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureProjLodOffset_ISampler2D1_Float3_Float1_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureProjLodOffset_USampler2D1_Float3_Float1_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureProjLodOffset_Sampler2D1_Float4_Float1_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureProjLodOffset_ISampler2D1_Float4_Float1_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureProjLodOffset_USampler2D1_Float4_Float1_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureProjLodOffset_Sampler3D1_Float4_Float1_Int3;
constexpr const TSymbolUniqueId BuiltInId::textureProjLodOffset_ISampler3D1_Float4_Float1_Int3;
constexpr const TSymbolUniqueId BuiltInId::textureProjLodOffset_USampler3D1_Float4_Float1_Int3;
constexpr const TSymbolUniqueId BuiltInId::textureProjLodOffset_Sampler2DShadow1_Float4_Float1_Int2;
constexpr const TSymbolUniqueId BuiltInId::texelFetchOffset_Sampler2D1_Int2_Int1_Int2;
constexpr const TSymbolUniqueId BuiltInId::texelFetchOffset_ISampler2D1_Int2_Int1_Int2;
constexpr const TSymbolUniqueId BuiltInId::texelFetchOffset_USampler2D1_Int2_Int1_Int2;
constexpr const TSymbolUniqueId BuiltInId::texelFetchOffset_Sampler3D1_Int3_Int1_Int3;
constexpr const TSymbolUniqueId BuiltInId::texelFetchOffset_ISampler3D1_Int3_Int1_Int3;
constexpr const TSymbolUniqueId BuiltInId::texelFetchOffset_USampler3D1_Int3_Int1_Int3;
constexpr const TSymbolUniqueId BuiltInId::texelFetchOffset_Sampler2DArray1_Int3_Int1_Int2;
constexpr const TSymbolUniqueId BuiltInId::texelFetchOffset_ISampler2DArray1_Int3_Int1_Int2;
constexpr const TSymbolUniqueId BuiltInId::texelFetchOffset_USampler2DArray1_Int3_Int1_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureGradOffset_Sampler2D1_Float2_Float2_Float2_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureGradOffset_ISampler2D1_Float2_Float2_Float2_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureGradOffset_USampler2D1_Float2_Float2_Float2_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureGradOffset_Sampler3D1_Float3_Float3_Float3_Int3;
constexpr const TSymbolUniqueId BuiltInId::textureGradOffset_ISampler3D1_Float3_Float3_Float3_Int3;
constexpr const TSymbolUniqueId BuiltInId::textureGradOffset_USampler3D1_Float3_Float3_Float3_Int3;
constexpr const TSymbolUniqueId
    BuiltInId::textureGradOffset_Sampler2DShadow1_Float3_Float2_Float2_Int2;
constexpr const TSymbolUniqueId
    BuiltInId::textureGradOffset_Sampler2DArray1_Float3_Float2_Float2_Int2;
constexpr const TSymbolUniqueId
    BuiltInId::textureGradOffset_ISampler2DArray1_Float3_Float2_Float2_Int2;
constexpr const TSymbolUniqueId
    BuiltInId::textureGradOffset_USampler2DArray1_Float3_Float2_Float2_Int2;
constexpr const TSymbolUniqueId
    BuiltInId::textureGradOffset_Sampler2DArrayShadow1_Float4_Float2_Float2_Int2;
constexpr const TSymbolUniqueId
    BuiltInId::textureProjGradOffset_Sampler2D1_Float3_Float2_Float2_Int2;
constexpr const TSymbolUniqueId
    BuiltInId::textureProjGradOffset_ISampler2D1_Float3_Float2_Float2_Int2;
constexpr const TSymbolUniqueId
    BuiltInId::textureProjGradOffset_USampler2D1_Float3_Float2_Float2_Int2;
constexpr const TSymbolUniqueId
    BuiltInId::textureProjGradOffset_Sampler2D1_Float4_Float2_Float2_Int2;
constexpr const TSymbolUniqueId
    BuiltInId::textureProjGradOffset_ISampler2D1_Float4_Float2_Float2_Int2;
constexpr const TSymbolUniqueId
    BuiltInId::textureProjGradOffset_USampler2D1_Float4_Float2_Float2_Int2;
constexpr const TSymbolUniqueId
    BuiltInId::textureProjGradOffset_Sampler3D1_Float4_Float3_Float3_Int3;
constexpr const TSymbolUniqueId
    BuiltInId::textureProjGradOffset_ISampler3D1_Float4_Float3_Float3_Int3;
constexpr const TSymbolUniqueId
    BuiltInId::textureProjGradOffset_USampler3D1_Float4_Float3_Float3_Int3;
constexpr const TSymbolUniqueId
    BuiltInId::textureProjGradOffset_Sampler2DShadow1_Float4_Float2_Float2_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureOffset_Sampler2D1_Float2_Int2_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureOffset_ISampler2D1_Float2_Int2_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureOffset_USampler2D1_Float2_Int2_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureOffset_Sampler3D1_Float3_Int3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureOffset_ISampler3D1_Float3_Int3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureOffset_USampler3D1_Float3_Int3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureOffset_Sampler2DShadow1_Float3_Int2_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureOffset_Sampler2DArray1_Float3_Int2_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureOffset_ISampler2DArray1_Float3_Int2_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureOffset_USampler2DArray1_Float3_Int2_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_Sampler2D1_Float3_Int2_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_ISampler2D1_Float3_Int2_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_USampler2D1_Float3_Int2_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_Sampler2D1_Float4_Int2_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_ISampler2D1_Float4_Int2_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_USampler2D1_Float4_Int2_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_Sampler3D1_Float4_Int3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_ISampler3D1_Float4_Int3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_USampler3D1_Float4_Int3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureProjOffset_Sampler2DShadow1_Float4_Int2_Float1;
constexpr const TSymbolUniqueId BuiltInId::texture_SamplerExternalOES1_Float2;
constexpr const TSymbolUniqueId BuiltInId::textureProj_SamplerExternalOES1_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureProj_SamplerExternalOES1_Float4;
constexpr const TSymbolUniqueId BuiltInId::textureSize_SamplerExternalOES1_Int1;
constexpr const TSymbolUniqueId BuiltInId::texelFetch_SamplerExternalOES1_Int2_Int1;
constexpr const TSymbolUniqueId BuiltInId::texture_SamplerExternal2DY2YEXT1_Float2;
constexpr const TSymbolUniqueId BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float4;
constexpr const TSymbolUniqueId BuiltInId::rgb_2_yuv_Float3_YuvCscStandardEXT1;
constexpr const TSymbolUniqueId BuiltInId::yuv_2_rgb_Float3_YuvCscStandardEXT1;
constexpr const TSymbolUniqueId BuiltInId::textureSize_SamplerExternal2DY2YEXT1_Int1;
constexpr const TSymbolUniqueId BuiltInId::texelFetch_SamplerExternal2DY2YEXT1_Int2_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGather_Sampler2D1_Float2;
constexpr const TSymbolUniqueId BuiltInId::textureGather_ISampler2D1_Float2;
constexpr const TSymbolUniqueId BuiltInId::textureGather_USampler2D1_Float2;
constexpr const TSymbolUniqueId BuiltInId::textureGather_Sampler2D1_Float2_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGather_ISampler2D1_Float2_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGather_USampler2D1_Float2_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGather_Sampler2DArray1_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureGather_ISampler2DArray1_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureGather_USampler2DArray1_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureGather_Sampler2DArray1_Float3_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGather_ISampler2DArray1_Float3_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGather_USampler2DArray1_Float3_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGather_SamplerCube1_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureGather_ISamplerCube1_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureGather_USamplerCube1_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureGather_SamplerCube1_Float3_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGather_ISamplerCube1_Float3_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGather_USamplerCube1_Float3_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGather_Sampler2DShadow1_Float2;
constexpr const TSymbolUniqueId BuiltInId::textureGather_Sampler2DShadow1_Float2_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureGather_Sampler2DArrayShadow1_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureGather_Sampler2DArrayShadow1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureGather_SamplerCubeShadow1_Float3;
constexpr const TSymbolUniqueId BuiltInId::textureGather_SamplerCubeShadow1_Float3_Float1;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsets_Sampler2D1_Float2_4xInt2_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsets_ISampler2D1_Float2_4xInt2_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsets_USampler2D1_Float2_4xInt2_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsets_Sampler2DArray1_Float3_4xInt2_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsets_ISampler2DArray1_Float3_4xInt2_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsets_USampler2DArray1_Float3_4xInt2_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsetsExt_Sampler2D1_Float2_4xInt2_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsetsExt_ISampler2D1_Float2_4xInt2_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsetsExt_USampler2D1_Float2_4xInt2_Int1;
constexpr const TSymbolUniqueId
    BuiltInId::textureGatherOffsetsExt_Sampler2DArray1_Float3_4xInt2_Int1;
constexpr const TSymbolUniqueId
    BuiltInId::textureGatherOffsetsExt_ISampler2DArray1_Float3_4xInt2_Int1;
constexpr const TSymbolUniqueId
    BuiltInId::textureGatherOffsetsExt_USampler2DArray1_Float3_4xInt2_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsets_Sampler2D1_Float2_4xInt2;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsets_ISampler2D1_Float2_4xInt2;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsets_USampler2D1_Float2_4xInt2;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsets_Sampler2DArray1_Float3_4xInt2;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsets_ISampler2DArray1_Float3_4xInt2;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsets_USampler2DArray1_Float3_4xInt2;
constexpr const TSymbolUniqueId
    BuiltInId::textureGatherOffsets_Sampler2DShadow1_Float2_Float1_4xInt2;
constexpr const TSymbolUniqueId
    BuiltInId::textureGatherOffsets_Sampler2DArrayShadow1_Float3_Float1_4xInt2;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsetsExt_Sampler2D1_Float2_4xInt2;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsetsExt_ISampler2D1_Float2_4xInt2;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsetsExt_USampler2D1_Float2_4xInt2;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsetsExt_Sampler2DArray1_Float3_4xInt2;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsetsExt_ISampler2DArray1_Float3_4xInt2;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffsetsExt_USampler2DArray1_Float3_4xInt2;
constexpr const TSymbolUniqueId
    BuiltInId::textureGatherOffsetsExt_Sampler2DShadow1_Float2_Float1_4xInt2;
constexpr const TSymbolUniqueId
    BuiltInId::textureGatherOffsetsExt_Sampler2DArrayShadow1_Float3_Float1_4xInt2;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_Sampler2D1_Float2_Int2_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_ISampler2D1_Float2_Int2_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_USampler2D1_Float2_Int2_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_Sampler2DArray1_Float3_Int2_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_ISampler2DArray1_Float3_Int2_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_USampler2DArray1_Float3_Int2_Int1;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_Sampler2D1_Float2_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_ISampler2D1_Float2_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_USampler2D1_Float2_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_Sampler2DArray1_Float3_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_ISampler2DArray1_Float3_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_USampler2DArray1_Float3_Int2;
constexpr const TSymbolUniqueId BuiltInId::textureGatherOffset_Sampler2DShadow1_Float2_Float1_Int2;
constexpr const TSymbolUniqueId
    BuiltInId::textureGatherOffset_Sampler2DArrayShadow1_Float3_Float1_Int2;
constexpr const TSymbolUniqueId BuiltInId::dFdx_Float1;
constexpr const TSymbolUniqueId BuiltInId::dFdx_Float2;
constexpr const TSymbolUniqueId BuiltInId::dFdx_Float3;
constexpr const TSymbolUniqueId BuiltInId::dFdx_Float4;
constexpr const TSymbolUniqueId BuiltInId::dFdy_Float1;
constexpr const TSymbolUniqueId BuiltInId::dFdy_Float2;
constexpr const TSymbolUniqueId BuiltInId::dFdy_Float3;
constexpr const TSymbolUniqueId BuiltInId::dFdy_Float4;
constexpr const TSymbolUniqueId BuiltInId::fwidth_Float1;
constexpr const TSymbolUniqueId BuiltInId::fwidth_Float2;
constexpr const TSymbolUniqueId BuiltInId::fwidth_Float3;
constexpr const TSymbolUniqueId BuiltInId::fwidth_Float4;
constexpr const TSymbolUniqueId BuiltInId::atomicCounter_AtomicCounter1;
constexpr const TSymbolUniqueId BuiltInId::atomicCounterIncrement_AtomicCounter1;
constexpr const TSymbolUniqueId BuiltInId::atomicCounterDecrement_AtomicCounter1;
constexpr const TSymbolUniqueId BuiltInId::atomicAdd_UInt1_UInt1;
constexpr const TSymbolUniqueId BuiltInId::atomicAdd_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::atomicMin_UInt1_UInt1;
constexpr const TSymbolUniqueId BuiltInId::atomicMin_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::atomicMax_UInt1_UInt1;
constexpr const TSymbolUniqueId BuiltInId::atomicMax_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::atomicAnd_UInt1_UInt1;
constexpr const TSymbolUniqueId BuiltInId::atomicAnd_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::atomicOr_UInt1_UInt1;
constexpr const TSymbolUniqueId BuiltInId::atomicOr_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::atomicXor_UInt1_UInt1;
constexpr const TSymbolUniqueId BuiltInId::atomicXor_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::atomicExchange_UInt1_UInt1;
constexpr const TSymbolUniqueId BuiltInId::atomicExchange_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::atomicCompSwap_UInt1_UInt1_UInt1;
constexpr const TSymbolUniqueId BuiltInId::atomicCompSwap_Int1_Int1_Int1;
constexpr const TSymbolUniqueId BuiltInId::imageSize_Image2D1;
constexpr const TSymbolUniqueId BuiltInId::imageSize_IImage2D1;
constexpr const TSymbolUniqueId BuiltInId::imageSize_UImage2D1;
constexpr const TSymbolUniqueId BuiltInId::imageSize_Image3D1;
constexpr const TSymbolUniqueId BuiltInId::imageSize_IImage3D1;
constexpr const TSymbolUniqueId BuiltInId::imageSize_UImage3D1;
constexpr const TSymbolUniqueId BuiltInId::imageSize_Image2DArray1;
constexpr const TSymbolUniqueId BuiltInId::imageSize_IImage2DArray1;
constexpr const TSymbolUniqueId BuiltInId::imageSize_UImage2DArray1;
constexpr const TSymbolUniqueId BuiltInId::imageSize_ImageCube1;
constexpr const TSymbolUniqueId BuiltInId::imageSize_IImageCube1;
constexpr const TSymbolUniqueId BuiltInId::imageSize_UImageCube1;
constexpr const TSymbolUniqueId BuiltInId::imageLoad_Image2D1_Int2;
constexpr const TSymbolUniqueId BuiltInId::imageLoad_IImage2D1_Int2;
constexpr const TSymbolUniqueId BuiltInId::imageLoad_UImage2D1_Int2;
constexpr const TSymbolUniqueId BuiltInId::imageLoad_Image3D1_Int3;
constexpr const TSymbolUniqueId BuiltInId::imageLoad_IImage3D1_Int3;
constexpr const TSymbolUniqueId BuiltInId::imageLoad_UImage3D1_Int3;
constexpr const TSymbolUniqueId BuiltInId::imageLoad_Image2DArray1_Int3;
constexpr const TSymbolUniqueId BuiltInId::imageLoad_IImage2DArray1_Int3;
constexpr const TSymbolUniqueId BuiltInId::imageLoad_UImage2DArray1_Int3;
constexpr const TSymbolUniqueId BuiltInId::imageLoad_ImageCube1_Int3;
constexpr const TSymbolUniqueId BuiltInId::imageLoad_IImageCube1_Int3;
constexpr const TSymbolUniqueId BuiltInId::imageLoad_UImageCube1_Int3;
constexpr const TSymbolUniqueId BuiltInId::imageStore_Image2D1_Int2_Float4;
constexpr const TSymbolUniqueId BuiltInId::imageStore_IImage2D1_Int2_Int4;
constexpr const TSymbolUniqueId BuiltInId::imageStore_UImage2D1_Int2_UInt4;
constexpr const TSymbolUniqueId BuiltInId::imageStore_Image3D1_Int3_Float4;
constexpr const TSymbolUniqueId BuiltInId::imageStore_IImage3D1_Int3_Int4;
constexpr const TSymbolUniqueId BuiltInId::imageStore_UImage3D1_Int3_UInt4;
constexpr const TSymbolUniqueId BuiltInId::imageStore_Image2DArray1_Int3_Float4;
constexpr const TSymbolUniqueId BuiltInId::imageStore_IImage2DArray1_Int3_Int4;
constexpr const TSymbolUniqueId BuiltInId::imageStore_UImage2DArray1_Int3_UInt4;
constexpr const TSymbolUniqueId BuiltInId::imageStore_ImageCube1_Int3_Float4;
constexpr const TSymbolUniqueId BuiltInId::imageStore_IImageCube1_Int3_Int4;
constexpr const TSymbolUniqueId BuiltInId::imageStore_UImageCube1_Int3_UInt4;
constexpr const TSymbolUniqueId BuiltInId::memoryBarrier;
constexpr const TSymbolUniqueId BuiltInId::memoryBarrierAtomicCounter;
constexpr const TSymbolUniqueId BuiltInId::memoryBarrierBuffer;
constexpr const TSymbolUniqueId BuiltInId::memoryBarrierImage;
constexpr const TSymbolUniqueId BuiltInId::barrier;
constexpr const TSymbolUniqueId BuiltInId::memoryBarrierShared;
constexpr const TSymbolUniqueId BuiltInId::groupMemoryBarrier;
constexpr const TSymbolUniqueId BuiltInId::EmitVertex;
constexpr const TSymbolUniqueId BuiltInId::EndPrimitive;
constexpr const TSymbolUniqueId BuiltInId::textureVideoWEBGL_SamplerVideoWEBGL1_Float2;
constexpr const TSymbolUniqueId BuiltInId::texture_SamplerVideoWEBGL1_Float2;
constexpr const TSymbolUniqueId BuiltInId::gl_DepthRangeParameters;
constexpr const TSymbolUniqueId BuiltInId::gl_DepthRange;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxVertexAttribs;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxVertexUniformVectors;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxVertexTextureImageUnits;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxCombinedTextureImageUnits;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxTextureImageUnits;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxFragmentUniformVectors;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxVaryingVectors;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxDrawBuffers;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxDualSourceDrawBuffersEXT;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxVertexOutputVectors;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxFragmentInputVectors;
constexpr const TSymbolUniqueId BuiltInId::gl_MinProgramTexelOffset;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxProgramTexelOffset;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxImageUnits;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxVertexImageUniforms;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxFragmentImageUniforms;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxComputeImageUniforms;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxCombinedImageUniforms;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxCombinedShaderOutputResources;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxComputeWorkGroupCount;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxComputeWorkGroupSize;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxComputeUniformComponents;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxComputeTextureImageUnits;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxComputeAtomicCounters;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxComputeAtomicCounterBuffers;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxVertexAtomicCounters;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxFragmentAtomicCounters;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxCombinedAtomicCounters;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxAtomicCounterBindings;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxVertexAtomicCounterBuffers;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxFragmentAtomicCounterBuffers;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxCombinedAtomicCounterBuffers;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxAtomicCounterBufferSize;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxGeometryInputComponents;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxGeometryOutputComponents;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxGeometryImageUniforms;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxGeometryTextureImageUnits;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxGeometryOutputVertices;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxGeometryTotalOutputComponents;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxGeometryUniformComponents;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxGeometryAtomicCounters;
constexpr const TSymbolUniqueId BuiltInId::gl_MaxGeometryAtomicCounterBuffers;
constexpr const TSymbolUniqueId BuiltInId::gl_FragCoord;
constexpr const TSymbolUniqueId BuiltInId::gl_FrontFacing;
constexpr const TSymbolUniqueId BuiltInId::gl_PointCoord;
constexpr const TSymbolUniqueId BuiltInId::gl_FragColor;
constexpr const TSymbolUniqueId BuiltInId::gl_FragData;
constexpr const TSymbolUniqueId BuiltInId::gl_FragDepth;
constexpr const TSymbolUniqueId BuiltInId::gl_HelperInvocation;
constexpr const TSymbolUniqueId BuiltInId::gl_SecondaryFragColorEXT;
constexpr const TSymbolUniqueId BuiltInId::gl_SecondaryFragDataEXT;
constexpr const TSymbolUniqueId BuiltInId::gl_FragDepthEXT;
constexpr const TSymbolUniqueId BuiltInId::gl_LastFragData;
constexpr const TSymbolUniqueId BuiltInId::gl_LastFragColor;
constexpr const TSymbolUniqueId BuiltInId::gl_LastFragDataNV;
constexpr const TSymbolUniqueId BuiltInId::gl_LastFragColorARM;
constexpr const TSymbolUniqueId BuiltInId::gl_PrimitiveID;
constexpr const TSymbolUniqueId BuiltInId::gl_Layer;
constexpr const TSymbolUniqueId BuiltInId::gl_Position;
constexpr const TSymbolUniqueId BuiltInId::gl_PointSize;
constexpr const TSymbolUniqueId BuiltInId::gl_InstanceID;
constexpr const TSymbolUniqueId BuiltInId::gl_InstanceIndex;
constexpr const TSymbolUniqueId BuiltInId::gl_VertexID;
constexpr const TSymbolUniqueId BuiltInId::gl_VertexIndex;
constexpr const TSymbolUniqueId BuiltInId::gl_ViewportIndex;
constexpr const TSymbolUniqueId BuiltInId::gl_LayerVS;
constexpr const TSymbolUniqueId BuiltInId::gl_DrawID;
constexpr const TSymbolUniqueId BuiltInId::gl_BaseVertex;
constexpr const TSymbolUniqueId BuiltInId::gl_BaseInstance;
constexpr const TSymbolUniqueId BuiltInId::angle_BaseVertex;
constexpr const TSymbolUniqueId BuiltInId::angle_BaseInstance;
constexpr const TSymbolUniqueId BuiltInId::gl_NumWorkGroups;
constexpr const TSymbolUniqueId BuiltInId::gl_WorkGroupSize;
constexpr const TSymbolUniqueId BuiltInId::gl_WorkGroupID;
constexpr const TSymbolUniqueId BuiltInId::gl_LocalInvocationID;
constexpr const TSymbolUniqueId BuiltInId::gl_GlobalInvocationID;
constexpr const TSymbolUniqueId BuiltInId::gl_LocalInvocationIndex;
constexpr const TSymbolUniqueId BuiltInId::gl_PrimitiveIDIn;
constexpr const TSymbolUniqueId BuiltInId::gl_InvocationID;
constexpr const TSymbolUniqueId BuiltInId::gl_PrimitiveIDGS;
constexpr const TSymbolUniqueId BuiltInId::gl_LayerGS;
constexpr const TSymbolUniqueId BuiltInId::gl_PerVertex;
constexpr const TSymbolUniqueId BuiltInId::gl_in;
constexpr const TSymbolUniqueId BuiltInId::gl_PerVertexOutBlock;
constexpr const TSymbolUniqueId BuiltInId::gl_PositionGS;
constexpr const TSymbolUniqueId BuiltInId::gl_ViewID_OVR;

const int TSymbolTable::kLastBuiltInId = 3409;

namespace BuiltInName
{

constexpr const ImmutableString _empty("");
constexpr const ImmutableString EmitVertex("EmitVertex");
constexpr const ImmutableString EndPrimitive("EndPrimitive");
constexpr const ImmutableString abs("abs");
constexpr const ImmutableString acos("acos");
constexpr const ImmutableString acosh("acosh");
constexpr const ImmutableString all("all");
constexpr const ImmutableString angle_BaseInstance("angle_BaseInstance");
constexpr const ImmutableString angle_BaseVertex("angle_BaseVertex");
constexpr const ImmutableString any("any");
constexpr const ImmutableString asin("asin");
constexpr const ImmutableString asinh("asinh");
constexpr const ImmutableString atan("atan");
constexpr const ImmutableString atanh("atanh");
constexpr const ImmutableString atomicAdd("atomicAdd");
constexpr const ImmutableString atomicAnd("atomicAnd");
constexpr const ImmutableString atomicCompSwap("atomicCompSwap");
constexpr const ImmutableString atomicCounter("atomicCounter");
constexpr const ImmutableString atomicCounterDecrement("atomicCounterDecrement");
constexpr const ImmutableString atomicCounterIncrement("atomicCounterIncrement");
constexpr const ImmutableString atomicExchange("atomicExchange");
constexpr const ImmutableString atomicMax("atomicMax");
constexpr const ImmutableString atomicMin("atomicMin");
constexpr const ImmutableString atomicOr("atomicOr");
constexpr const ImmutableString atomicXor("atomicXor");
constexpr const ImmutableString barrier("barrier");
constexpr const ImmutableString bitCount("bitCount");
constexpr const ImmutableString bitfieldExtract("bitfieldExtract");
constexpr const ImmutableString bitfieldInsert("bitfieldInsert");
constexpr const ImmutableString bitfieldReverse("bitfieldReverse");
constexpr const ImmutableString ceil("ceil");
constexpr const ImmutableString clamp("clamp");
constexpr const ImmutableString cos("cos");
constexpr const ImmutableString cosh("cosh");
constexpr const ImmutableString cross("cross");
constexpr const ImmutableString dFdx("dFdx");
constexpr const ImmutableString dFdxExt("dFdx");
constexpr const ImmutableString dFdy("dFdy");
constexpr const ImmutableString dFdyExt("dFdy");
constexpr const ImmutableString degrees("degrees");
constexpr const ImmutableString determinant("determinant");
constexpr const ImmutableString diff("diff");
constexpr const ImmutableString distance("distance");
constexpr const ImmutableString dot("dot");
constexpr const ImmutableString equal("equal");
constexpr const ImmutableString exp("exp");
constexpr const ImmutableString exp2("exp2");
constexpr const ImmutableString faceforward("faceforward");
constexpr const ImmutableString far("far");
constexpr const ImmutableString findLSB("findLSB");
constexpr const ImmutableString findMSB("findMSB");
constexpr const ImmutableString floatBitsToInt("floatBitsToInt");
constexpr const ImmutableString floatBitsToUint("floatBitsToUint");
constexpr const ImmutableString floor("floor");
constexpr const ImmutableString fma("fma");
constexpr const ImmutableString fmaExt("fma");
constexpr const ImmutableString fract("fract");
constexpr const ImmutableString frexp("frexp");
constexpr const ImmutableString fwidth("fwidth");
constexpr const ImmutableString fwidthExt("fwidth");
constexpr const ImmutableString gl_BaseInstance("gl_BaseInstance");
constexpr const ImmutableString gl_BaseVertex("gl_BaseVertex");
constexpr const ImmutableString gl_DepthRange("gl_DepthRange");
constexpr const ImmutableString gl_DepthRangeParameters("gl_DepthRangeParameters");
constexpr const ImmutableString gl_DrawID("gl_DrawID");
constexpr const ImmutableString gl_FragColor("gl_FragColor");
constexpr const ImmutableString gl_FragCoord("gl_FragCoord");
constexpr const ImmutableString gl_FragData("gl_FragData");
constexpr const ImmutableString gl_FragDepth("gl_FragDepth");
constexpr const ImmutableString gl_FragDepthEXT("gl_FragDepthEXT");
constexpr const ImmutableString gl_FrontFacing("gl_FrontFacing");
constexpr const ImmutableString gl_GlobalInvocationID("gl_GlobalInvocationID");
constexpr const ImmutableString gl_HelperInvocation("gl_HelperInvocation");
constexpr const ImmutableString gl_InstanceID("gl_InstanceID");
constexpr const ImmutableString gl_InstanceIndex("gl_InstanceIndex");
constexpr const ImmutableString gl_InvocationID("gl_InvocationID");
constexpr const ImmutableString gl_LastFragColor("gl_LastFragColor");
constexpr const ImmutableString gl_LastFragColorARM("gl_LastFragColorARM");
constexpr const ImmutableString gl_LastFragData("gl_LastFragData");
constexpr const ImmutableString gl_Layer("gl_Layer");
constexpr const ImmutableString gl_LocalInvocationID("gl_LocalInvocationID");
constexpr const ImmutableString gl_LocalInvocationIndex("gl_LocalInvocationIndex");
constexpr const ImmutableString gl_MaxAtomicCounterBindings("gl_MaxAtomicCounterBindings");
constexpr const ImmutableString gl_MaxAtomicCounterBufferSize("gl_MaxAtomicCounterBufferSize");
constexpr const ImmutableString gl_MaxCombinedAtomicCounterBuffers(
    "gl_MaxCombinedAtomicCounterBuffers");
constexpr const ImmutableString gl_MaxCombinedAtomicCounters("gl_MaxCombinedAtomicCounters");
constexpr const ImmutableString gl_MaxCombinedImageUniforms("gl_MaxCombinedImageUniforms");
constexpr const ImmutableString gl_MaxCombinedShaderOutputResources(
    "gl_MaxCombinedShaderOutputResources");
constexpr const ImmutableString gl_MaxCombinedTextureImageUnits("gl_MaxCombinedTextureImageUnits");
constexpr const ImmutableString gl_MaxComputeAtomicCounterBuffers(
    "gl_MaxComputeAtomicCounterBuffers");
constexpr const ImmutableString gl_MaxComputeAtomicCounters("gl_MaxComputeAtomicCounters");
constexpr const ImmutableString gl_MaxComputeImageUniforms("gl_MaxComputeImageUniforms");
constexpr const ImmutableString gl_MaxComputeTextureImageUnits("gl_MaxComputeTextureImageUnits");
constexpr const ImmutableString gl_MaxComputeUniformComponents("gl_MaxComputeUniformComponents");
constexpr const ImmutableString gl_MaxComputeWorkGroupCount("gl_MaxComputeWorkGroupCount");
constexpr const ImmutableString gl_MaxComputeWorkGroupSize("gl_MaxComputeWorkGroupSize");
constexpr const ImmutableString gl_MaxDrawBuffers("gl_MaxDrawBuffers");
constexpr const ImmutableString gl_MaxDualSourceDrawBuffersEXT("gl_MaxDualSourceDrawBuffersEXT");
constexpr const ImmutableString gl_MaxFragmentAtomicCounterBuffers(
    "gl_MaxFragmentAtomicCounterBuffers");
constexpr const ImmutableString gl_MaxFragmentAtomicCounters("gl_MaxFragmentAtomicCounters");
constexpr const ImmutableString gl_MaxFragmentImageUniforms("gl_MaxFragmentImageUniforms");
constexpr const ImmutableString gl_MaxFragmentInputVectors("gl_MaxFragmentInputVectors");
constexpr const ImmutableString gl_MaxFragmentUniformVectors("gl_MaxFragmentUniformVectors");
constexpr const ImmutableString gl_MaxGeometryAtomicCounterBuffers(
    "gl_MaxGeometryAtomicCounterBuffers");
constexpr const ImmutableString gl_MaxGeometryAtomicCounters("gl_MaxGeometryAtomicCounters");
constexpr const ImmutableString gl_MaxGeometryImageUniforms("gl_MaxGeometryImageUniforms");
constexpr const ImmutableString gl_MaxGeometryInputComponents("gl_MaxGeometryInputComponents");
constexpr const ImmutableString gl_MaxGeometryOutputComponents("gl_MaxGeometryOutputComponents");
constexpr const ImmutableString gl_MaxGeometryOutputVertices("gl_MaxGeometryOutputVertices");
constexpr const ImmutableString gl_MaxGeometryTextureImageUnits("gl_MaxGeometryTextureImageUnits");
constexpr const ImmutableString gl_MaxGeometryTotalOutputComponents(
    "gl_MaxGeometryTotalOutputComponents");
constexpr const ImmutableString gl_MaxGeometryUniformComponents("gl_MaxGeometryUniformComponents");
constexpr const ImmutableString gl_MaxImageUnits("gl_MaxImageUnits");
constexpr const ImmutableString gl_MaxProgramTexelOffset("gl_MaxProgramTexelOffset");
constexpr const ImmutableString gl_MaxTextureImageUnits("gl_MaxTextureImageUnits");
constexpr const ImmutableString gl_MaxVaryingVectors("gl_MaxVaryingVectors");
constexpr const ImmutableString gl_MaxVertexAtomicCounterBuffers(
    "gl_MaxVertexAtomicCounterBuffers");
constexpr const ImmutableString gl_MaxVertexAtomicCounters("gl_MaxVertexAtomicCounters");
constexpr const ImmutableString gl_MaxVertexAttribs("gl_MaxVertexAttribs");
constexpr const ImmutableString gl_MaxVertexImageUniforms("gl_MaxVertexImageUniforms");
constexpr const ImmutableString gl_MaxVertexOutputVectors("gl_MaxVertexOutputVectors");
constexpr const ImmutableString gl_MaxVertexTextureImageUnits("gl_MaxVertexTextureImageUnits");
constexpr const ImmutableString gl_MaxVertexUniformVectors("gl_MaxVertexUniformVectors");
constexpr const ImmutableString gl_MinProgramTexelOffset("gl_MinProgramTexelOffset");
constexpr const ImmutableString gl_NumWorkGroups("gl_NumWorkGroups");
constexpr const ImmutableString gl_PerVertex("gl_PerVertex");
constexpr const ImmutableString gl_PointCoord("gl_PointCoord");
constexpr const ImmutableString gl_PointSize("gl_PointSize");
constexpr const ImmutableString gl_Position("gl_Position");
constexpr const ImmutableString gl_PrimitiveID("gl_PrimitiveID");
constexpr const ImmutableString gl_PrimitiveIDIn("gl_PrimitiveIDIn");
constexpr const ImmutableString gl_SecondaryFragColorEXT("gl_SecondaryFragColorEXT");
constexpr const ImmutableString gl_SecondaryFragDataEXT("gl_SecondaryFragDataEXT");
constexpr const ImmutableString gl_VertexID("gl_VertexID");
constexpr const ImmutableString gl_VertexIndex("gl_VertexIndex");
constexpr const ImmutableString gl_ViewID_OVR("gl_ViewID_OVR");
constexpr const ImmutableString gl_ViewportIndex("gl_ViewportIndex");
constexpr const ImmutableString gl_WorkGroupID("gl_WorkGroupID");
constexpr const ImmutableString gl_WorkGroupSize("gl_WorkGroupSize");
constexpr const ImmutableString gl_in("gl_in");
constexpr const ImmutableString greaterThan("greaterThan");
constexpr const ImmutableString greaterThanEqual("greaterThanEqual");
constexpr const ImmutableString groupMemoryBarrier("groupMemoryBarrier");
constexpr const ImmutableString imageLoad("imageLoad");
constexpr const ImmutableString imageSize("imageSize");
constexpr const ImmutableString imageStore("imageStore");
constexpr const ImmutableString imulExtended("imulExtended");
constexpr const ImmutableString intBitsToFloat("intBitsToFloat");
constexpr const ImmutableString inverse("inverse");
constexpr const ImmutableString inversesqrt("inversesqrt");
constexpr const ImmutableString isinf("isinf");
constexpr const ImmutableString isnan("isnan");
constexpr const ImmutableString ldexp("ldexp");
constexpr const ImmutableString length("length");
constexpr const ImmutableString lessThan("lessThan");
constexpr const ImmutableString lessThanEqual("lessThanEqual");
constexpr const ImmutableString log("log");
constexpr const ImmutableString log2("log2");
constexpr const ImmutableString matrixCompMult("matrixCompMult");
constexpr const ImmutableString max("max");
constexpr const ImmutableString memoryBarrier("memoryBarrier");
constexpr const ImmutableString memoryBarrierAtomicCounter("memoryBarrierAtomicCounter");
constexpr const ImmutableString memoryBarrierBuffer("memoryBarrierBuffer");
constexpr const ImmutableString memoryBarrierImage("memoryBarrierImage");
constexpr const ImmutableString memoryBarrierShared("memoryBarrierShared");
constexpr const ImmutableString min("min");
constexpr const ImmutableString mix("mix");
constexpr const ImmutableString mod("mod");
constexpr const ImmutableString modf("modf");
constexpr const ImmutableString near("near");
constexpr const ImmutableString normalize("normalize");
constexpr const ImmutableString notEqual("notEqual");
constexpr const ImmutableString notFunc("not");
constexpr const ImmutableString outerProduct("outerProduct");
constexpr const ImmutableString packHalf2x16("packHalf2x16");
constexpr const ImmutableString packSnorm2x16("packSnorm2x16");
constexpr const ImmutableString packSnorm4x8("packSnorm4x8");
constexpr const ImmutableString packUnorm2x16("packUnorm2x16");
constexpr const ImmutableString packUnorm4x8("packUnorm4x8");
constexpr const ImmutableString pow("pow");
constexpr const ImmutableString radians("radians");
constexpr const ImmutableString reflect("reflect");
constexpr const ImmutableString refract("refract");
constexpr const ImmutableString rgb_2_yuv("rgb_2_yuv");
constexpr const ImmutableString round("round");
constexpr const ImmutableString roundEven("roundEven");
constexpr const ImmutableString sign("sign");
constexpr const ImmutableString sin("sin");
constexpr const ImmutableString sinh("sinh");
constexpr const ImmutableString smoothstep("smoothstep");
constexpr const ImmutableString sqrt("sqrt");
constexpr const ImmutableString step("step");
constexpr const ImmutableString tan("tan");
constexpr const ImmutableString tanh("tanh");
constexpr const ImmutableString texelFetch("texelFetch");
constexpr const ImmutableString texelFetchExt("texelFetch");
constexpr const ImmutableString texelFetchOffset("texelFetchOffset");
constexpr const ImmutableString texture("texture");
constexpr const ImmutableString texture2D("texture2D");
constexpr const ImmutableString texture2DGradEXT("texture2DGradEXT");
constexpr const ImmutableString texture2DLod("texture2DLod");
constexpr const ImmutableString texture2DLodEXT("texture2DLodEXT");
constexpr const ImmutableString texture2DProj("texture2DProj");
constexpr const ImmutableString texture2DProjGradEXT("texture2DProjGradEXT");
constexpr const ImmutableString texture2DProjLod("texture2DProjLod");
constexpr const ImmutableString texture2DProjLodEXT("texture2DProjLodEXT");
constexpr const ImmutableString texture2DRect("texture2DRect");
constexpr const ImmutableString texture2DRectProj("texture2DRectProj");
constexpr const ImmutableString texture3D("texture3D");
constexpr const ImmutableString texture3DLod("texture3DLod");
constexpr const ImmutableString texture3DProj("texture3DProj");
constexpr const ImmutableString texture3DProjLod("texture3DProjLod");
constexpr const ImmutableString textureCube("textureCube");
constexpr const ImmutableString textureCubeGradEXT("textureCubeGradEXT");
constexpr const ImmutableString textureCubeLod("textureCubeLod");
constexpr const ImmutableString textureCubeLodEXT("textureCubeLodEXT");
constexpr const ImmutableString textureGather("textureGather");
constexpr const ImmutableString textureGatherOffset("textureGatherOffset");
constexpr const ImmutableString textureGatherOffsets("textureGatherOffsets");
constexpr const ImmutableString textureGatherOffsetsExt("textureGatherOffsets");
constexpr const ImmutableString textureGrad("textureGrad");
constexpr const ImmutableString textureGradOffset("textureGradOffset");
constexpr const ImmutableString textureLod("textureLod");
constexpr const ImmutableString textureLodOffset("textureLodOffset");
constexpr const ImmutableString textureOffset("textureOffset");
constexpr const ImmutableString textureProj("textureProj");
constexpr const ImmutableString textureProjGrad("textureProjGrad");
constexpr const ImmutableString textureProjGradOffset("textureProjGradOffset");
constexpr const ImmutableString textureProjLod("textureProjLod");
constexpr const ImmutableString textureProjLodOffset("textureProjLodOffset");
constexpr const ImmutableString textureProjOffset("textureProjOffset");
constexpr const ImmutableString textureSize("textureSize");
constexpr const ImmutableString textureSizeExt("textureSize");
constexpr const ImmutableString textureVideoWEBGL("textureVideoWEBGL");
constexpr const ImmutableString transpose("transpose");
constexpr const ImmutableString trunc("trunc");
constexpr const ImmutableString uaddCarry("uaddCarry");
constexpr const ImmutableString uintBitsToFloat("uintBitsToFloat");
constexpr const ImmutableString umulExtended("umulExtended");
constexpr const ImmutableString unpackHalf2x16("unpackHalf2x16");
constexpr const ImmutableString unpackSnorm2x16("unpackSnorm2x16");
constexpr const ImmutableString unpackSnorm4x8("unpackSnorm4x8");
constexpr const ImmutableString unpackUnorm2x16("unpackUnorm2x16");
constexpr const ImmutableString unpackUnorm4x8("unpackUnorm4x8");
constexpr const ImmutableString usubBorrow("usubBorrow");
constexpr const ImmutableString yuv_2_rgb("yuv_2_rgb");

}  // namespace BuiltInName

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

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

constexpr const TVariable kangle_BaseInstance(
    BuiltInId::angle_BaseInstance,
    BuiltInName::angle_BaseInstance,
    SymbolType::BuiltIn,
    TExtension::ANGLE_base_vertex_base_instance,
    StaticType::Get<EbtInt, EbpHigh, EvqBaseInstance, 1, 1>());
constexpr const TVariable kangle_BaseVertex(
    BuiltInId::angle_BaseVertex,
    BuiltInName::angle_BaseVertex,
    SymbolType::BuiltIn,
    TExtension::ANGLE_base_vertex_base_instance,
    StaticType::Get<EbtInt, EbpHigh, EvqBaseVertex, 1, 1>());
constexpr const TVariable kgl_BaseInstance(
    BuiltInId::gl_BaseInstance,
    BuiltInName::gl_BaseInstance,
    SymbolType::BuiltIn,
    TExtension::ANGLE_base_vertex_base_instance,
    StaticType::Get<EbtInt, EbpHigh, EvqBaseInstance, 1, 1>());
constexpr const TVariable kgl_BaseVertex(BuiltInId::gl_BaseVertex,
                                         BuiltInName::gl_BaseVertex,
                                         SymbolType::BuiltIn,
                                         TExtension::ANGLE_base_vertex_base_instance,
                                         StaticType::Get<EbtInt, EbpHigh, EvqBaseVertex, 1, 1>());
constexpr const TVariable kgl_DrawID(BuiltInId::gl_DrawID,
                                     BuiltInName::gl_DrawID,
                                     SymbolType::BuiltIn,
                                     TExtension::ANGLE_multi_draw,
                                     StaticType::Get<EbtInt, EbpHigh, EvqDrawID, 1, 1>());
constexpr const TVariable kgl_FragColor(BuiltInId::gl_FragColor,
                                        BuiltInName::gl_FragColor,
                                        SymbolType::BuiltIn,
                                        TExtension::UNDEFINED,
                                        StaticType::Get<EbtFloat, EbpMedium, EvqFragColor, 4, 1>());
constexpr const TVariable kgl_FragCoord(BuiltInId::gl_FragCoord,
                                        BuiltInName::gl_FragCoord,
                                        SymbolType::BuiltIn,
                                        TExtension::UNDEFINED,
                                        StaticType::Get<EbtFloat, EbpMedium, EvqFragCoord, 4, 1>());
constexpr const TVariable kgl_FragDepth(BuiltInId::gl_FragDepth,
                                        BuiltInName::gl_FragDepth,
                                        SymbolType::BuiltIn,
                                        TExtension::UNDEFINED,
                                        StaticType::Get<EbtFloat, EbpHigh, EvqFragDepth, 1, 1>());
constexpr const TVariable kgl_FrontFacing(
    BuiltInId::gl_FrontFacing,
    BuiltInName::gl_FrontFacing,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtBool, EbpUndefined, EvqFrontFacing, 1, 1>());
constexpr const TVariable kgl_GlobalInvocationID(
    BuiltInId::gl_GlobalInvocationID,
    BuiltInName::gl_GlobalInvocationID,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobalInvocationID, 3, 1>());
constexpr const TVariable kgl_HelperInvocation(
    BuiltInId::gl_HelperInvocation,
    BuiltInName::gl_HelperInvocation,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtBool, EbpUndefined, EvqHelperInvocation, 1, 1>());
constexpr const TVariable kgl_InstanceID(BuiltInId::gl_InstanceID,
                                         BuiltInName::gl_InstanceID,
                                         SymbolType::BuiltIn,
                                         TExtension::UNDEFINED,
                                         StaticType::Get<EbtInt, EbpHigh, EvqInstanceID, 1, 1>());
constexpr const TVariable kgl_InstanceIndex(
    BuiltInId::gl_InstanceIndex,
    BuiltInName::gl_InstanceIndex,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtInt, EbpHigh, EvqInstanceID, 1, 1>());
constexpr const TVariable kgl_InvocationID(
    BuiltInId::gl_InvocationID,
    BuiltInName::gl_InvocationID,
    SymbolType::BuiltIn,
    TExtension::EXT_geometry_shader,
    StaticType::Get<EbtInt, EbpHigh, EvqInvocationID, 1, 1>());
constexpr const TVariable kgl_LastFragColor(
    BuiltInId::gl_LastFragColor,
    BuiltInName::gl_LastFragColor,
    SymbolType::BuiltIn,
    TExtension::NV_shader_framebuffer_fetch,
    StaticType::Get<EbtFloat, EbpMedium, EvqLastFragColor, 4, 1>());
constexpr const TVariable kgl_LastFragColorARM(
    BuiltInId::gl_LastFragColorARM,
    BuiltInName::gl_LastFragColorARM,
    SymbolType::BuiltIn,
    TExtension::ARM_shader_framebuffer_fetch,
    StaticType::Get<EbtFloat, EbpMedium, EvqLastFragColor, 4, 1>());
constexpr const TVariable kgl_Layer(BuiltInId::gl_Layer,
                                    BuiltInName::gl_Layer,
                                    SymbolType::BuiltIn,
                                    TExtension::EXT_geometry_shader,
                                    StaticType::Get<EbtInt, EbpHigh, EvqLayer, 1, 1>());
constexpr const TVariable kgl_LayerGS(BuiltInId::gl_LayerGS,
                                      BuiltInName::gl_Layer,
                                      SymbolType::BuiltIn,
                                      TExtension::EXT_geometry_shader,
                                      StaticType::Get<EbtInt, EbpHigh, EvqLayer, 1, 1>());
constexpr const TVariable kgl_LayerVS(BuiltInId::gl_LayerVS,
                                      BuiltInName::gl_Layer,
                                      SymbolType::BuiltIn,
                                      TExtension::UNDEFINED,
                                      StaticType::Get<EbtInt, EbpHigh, EvqLayer, 1, 1>());
constexpr const TVariable kgl_LocalInvocationID(
    BuiltInId::gl_LocalInvocationID,
    BuiltInName::gl_LocalInvocationID,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtUInt, EbpUndefined, EvqLocalInvocationID, 3, 1>());
constexpr const TVariable kgl_LocalInvocationIndex(
    BuiltInId::gl_LocalInvocationIndex,
    BuiltInName::gl_LocalInvocationIndex,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtUInt, EbpUndefined, EvqLocalInvocationIndex, 1, 1>());
constexpr const TVariable kgl_NumWorkGroups(
    BuiltInId::gl_NumWorkGroups,
    BuiltInName::gl_NumWorkGroups,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtUInt, EbpUndefined, EvqNumWorkGroups, 3, 1>());
constexpr const TVariable kgl_PointCoord(
    BuiltInId::gl_PointCoord,
    BuiltInName::gl_PointCoord,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtFloat, EbpMedium, EvqPointCoord, 2, 1>());
constexpr const TVariable kgl_PointSize(BuiltInId::gl_PointSize,
                                        BuiltInName::gl_PointSize,
                                        SymbolType::BuiltIn,
                                        TExtension::UNDEFINED,
                                        StaticType::Get<EbtFloat, EbpMedium, EvqPointSize, 1, 1>());
constexpr const TVariable kgl_Position(BuiltInId::gl_Position,
                                       BuiltInName::gl_Position,
                                       SymbolType::BuiltIn,
                                       TExtension::UNDEFINED,
                                       StaticType::Get<EbtFloat, EbpHigh, EvqPosition, 4, 1>());
constexpr const TVariable kgl_PrimitiveID(BuiltInId::gl_PrimitiveID,
                                          BuiltInName::gl_PrimitiveID,
                                          SymbolType::BuiltIn,
                                          TExtension::EXT_geometry_shader,
                                          StaticType::Get<EbtInt, EbpHigh, EvqPrimitiveID, 1, 1>());
constexpr const TVariable kgl_PrimitiveIDGS(
    BuiltInId::gl_PrimitiveIDGS,
    BuiltInName::gl_PrimitiveID,
    SymbolType::BuiltIn,
    TExtension::EXT_geometry_shader,
    StaticType::Get<EbtInt, EbpHigh, EvqPrimitiveID, 1, 1>());
constexpr const TVariable kgl_PrimitiveIDIn(
    BuiltInId::gl_PrimitiveIDIn,
    BuiltInName::gl_PrimitiveIDIn,
    SymbolType::BuiltIn,
    TExtension::EXT_geometry_shader,
    StaticType::Get<EbtInt, EbpHigh, EvqPrimitiveIDIn, 1, 1>());
constexpr const TVariable kgl_SecondaryFragColorEXT(
    BuiltInId::gl_SecondaryFragColorEXT,
    BuiltInName::gl_SecondaryFragColorEXT,
    SymbolType::BuiltIn,
    TExtension::EXT_blend_func_extended,
    StaticType::Get<EbtFloat, EbpMedium, EvqSecondaryFragColorEXT, 4, 1>());
constexpr const TVariable kgl_VertexID(BuiltInId::gl_VertexID,
                                       BuiltInName::gl_VertexID,
                                       SymbolType::BuiltIn,
                                       TExtension::UNDEFINED,
                                       StaticType::Get<EbtInt, EbpHigh, EvqVertexID, 1, 1>());
constexpr const TVariable kgl_VertexIndex(BuiltInId::gl_VertexIndex,
                                          BuiltInName::gl_VertexIndex,
                                          SymbolType::BuiltIn,
                                          TExtension::UNDEFINED,
                                          StaticType::Get<EbtInt, EbpHigh, EvqVertexID, 1, 1>());
constexpr const TVariable kgl_ViewID_OVR(BuiltInId::gl_ViewID_OVR,
                                         BuiltInName::gl_ViewID_OVR,
                                         SymbolType::BuiltIn,
                                         TExtension::OVR_multiview,
                                         StaticType::Get<EbtUInt, EbpHigh, EvqViewIDOVR, 1, 1>());
constexpr const TVariable kgl_ViewportIndex(
    BuiltInId::gl_ViewportIndex,
    BuiltInName::gl_ViewportIndex,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtInt, EbpHigh, EvqViewportIndex, 1, 1>());
constexpr const TVariable kgl_WorkGroupID(
    BuiltInId::gl_WorkGroupID,
    BuiltInName::gl_WorkGroupID,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtUInt, EbpUndefined, EvqWorkGroupID, 3, 1>());
constexpr const TVariable kgl_WorkGroupSize(
    BuiltInId::gl_WorkGroupSize,
    BuiltInName::gl_WorkGroupSize,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtUInt, EbpUndefined, EvqWorkGroupSize, 3, 1>());
constexpr const TVariable kpt00B(BuiltInId::pt00B,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00D(BuiltInId::pt00D,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00E(BuiltInId::pt00E,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00F(BuiltInId::pt00F,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00G(
    BuiltInId::pt00G,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtAtomicCounter, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00H(
    BuiltInId::pt00H,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtYuvCscStandardEXT, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00I(BuiltInId::pt00I,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtSampler2D, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00J(BuiltInId::pt00J,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtSampler3D, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00K(BuiltInId::pt00K,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtSamplerCube, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00L(
    BuiltInId::pt00L,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtSampler2DArray, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00M(
    BuiltInId::pt00M,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtSamplerExternalOES, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00N(
    BuiltInId::pt00N,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtSamplerExternal2DY2YEXT, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00O(
    BuiltInId::pt00O,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtSampler2DRect, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00P(BuiltInId::pt00P,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtSampler2DMS, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00Q(
    BuiltInId::pt00Q,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtSampler2DMSArray, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00R(BuiltInId::pt00R,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtISampler2D, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00S(BuiltInId::pt00S,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtISampler3D, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00T(BuiltInId::pt00T,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtISamplerCube, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00U(
    BuiltInId::pt00U,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtISampler2DArray, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00V(BuiltInId::pt00V,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtISampler2DMS, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00W(
    BuiltInId::pt00W,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtISampler2DMSArray, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00X(BuiltInId::pt00X,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtUSampler2D, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00Y(BuiltInId::pt00Y,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtUSampler3D, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00Z(BuiltInId::pt00Z,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtUSamplerCube, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00a(
    BuiltInId::pt00a,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtUSampler2DArray, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00b(BuiltInId::pt00b,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtUSampler2DMS, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00c(
    BuiltInId::pt00c,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtUSampler2DMSArray, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00d(
    BuiltInId::pt00d,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtSampler2DShadow, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00e(
    BuiltInId::pt00e,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtSamplerCubeShadow, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00f(
    BuiltInId::pt00f,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtSampler2DArrayShadow, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00y(
    BuiltInId::pt00y,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtSamplerVideoWEBGL, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt00z(BuiltInId::pt00z,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtImage2D, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01A(BuiltInId::pt01A,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtIImage2D, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01B(BuiltInId::pt01B,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtUImage2D, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01C(BuiltInId::pt01C,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtImage3D, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01D(BuiltInId::pt01D,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtIImage3D, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01E(BuiltInId::pt01E,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtUImage3D, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01F(BuiltInId::pt01F,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtImage2DArray, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01G(
    BuiltInId::pt01G,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtIImage2DArray, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01H(
    BuiltInId::pt01H,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::Get<EbtUImage2DArray, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01I(BuiltInId::pt01I,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtImageCube, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01J(BuiltInId::pt01J,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtIImageCube, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt01K(BuiltInId::pt01K,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtUImageCube, EbpUndefined, EvqGlobal, 1, 1>());
constexpr const TVariable kpt10B(BuiltInId::pt10B,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>());
constexpr const TVariable kpt10D(BuiltInId::pt10D,
                                 BuiltInName::_empty,
                                 SymbolType::BuiltIn,
                                 TExtension::UNDEFINED,
                                 StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>());
constexpr const TVariable kpt10Dx4(
    BuiltInId::pt10Dx4,
    BuiltInName::_empty,
    SymbolType::BuiltIn,
    TExtension::UNDEFINED,
    StaticType::GetArray<EbtInt, EbpUndefined, EvqGlobal, 2, 1, kArraySize4, 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_HelperInvocation()
{
    return &kgl_HelperInvocation;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

const TVariable *gl_ViewportIndex()
{
    return &kgl_ViewportIndex;
}

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

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

}  // namespace BuiltInVariable

namespace BuiltInParameters
{

constexpr const TVariable **empty        = nullptr;
constexpr const TVariable *p00B00B00B[3] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt00B,
                                            &BuiltInVariable::kpt00B};
constexpr const TVariable *p00B00B00F[3] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt00B,
                                            &BuiltInVariable::kpt00F};
constexpr const TVariable *p00B00B10B[3] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt00B,
                                            &BuiltInVariable::kpt10B};
constexpr const TVariable *p00B00B20B[3] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt00B,
                                            &BuiltInVariable::kpt20B};
constexpr const TVariable *p00B00B30B[3] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt00B,
                                            &BuiltInVariable::kpt30B};
constexpr const TVariable *p00B00D[2]    = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00B10B[2]    = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt10B};
constexpr const TVariable *p00B20B[2]    = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt20B};
constexpr const TVariable *p00B30B[2]    = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt30B};
constexpr const TVariable *p00B_o_00B[2] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt_o_00B};
constexpr const TVariable *p00B_o_00D[2] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt_o_00D};
constexpr const TVariable *p00D00D00D00D[4] = {&BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00D00D00F[3]    = {&BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D,
                                            &BuiltInVariable::kpt00F};
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 *p00E00E00F[3]    = {&BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E,
                                            &BuiltInVariable::kpt00F};
constexpr const TVariable *p00E00E_o_00E_o_00E[4] = {
    &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E, &BuiltInVariable::kpt_o_00E,
    &BuiltInVariable::kpt_o_00E};
constexpr const TVariable *p00F00F00F[3]    = {&BuiltInVariable::kpt00F, &BuiltInVariable::kpt00F,
                                            &BuiltInVariable::kpt00F};
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 *p00I10B10Dx400D[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt10B,
                                                 &BuiltInVariable::kpt10Dx4,
                                                 &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 *p00L20B10Dx400D[4] = {&BuiltInVariable::kpt00L, &BuiltInVariable::kpt20B,
                                                 &BuiltInVariable::kpt10Dx4,
                                                 &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 *p00R10B10Dx400D[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt10B,
                                                 &BuiltInVariable::kpt10Dx4,
                                                 &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 *p00U20B10Dx400D[4] = {&BuiltInVariable::kpt00U, &BuiltInVariable::kpt20B,
                                                 &BuiltInVariable::kpt10Dx4,
                                                 &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 *p00X10B10Dx400D[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt10B,
                                                 &BuiltInVariable::kpt10Dx4,
                                                 &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 *p00a20B10Dx400D[4] = {&BuiltInVariable::kpt00a, &BuiltInVariable::kpt20B,
                                                 &BuiltInVariable::kpt10Dx4,
                                                 &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 *p00d10B00B10Dx4[4] = {&BuiltInVariable::kpt00d, &BuiltInVariable::kpt10B,
                                                 &BuiltInVariable::kpt00B,
                                                 &BuiltInVariable::kpt10Dx4};
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 *p00f20B00B10Dx4[4] = {&BuiltInVariable::kpt00f, &BuiltInVariable::kpt20B,
                                                 &BuiltInVariable::kpt00B,
                                                 &BuiltInVariable::kpt10Dx4};
constexpr const TVariable *p00f30B10B10B10D[5] = {
    &BuiltInVariable::kpt00f, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00y10B[2]    = {&BuiltInVariable::kpt00y, &BuiltInVariable::kpt10B};
constexpr const TVariable *p00z10D30B[3] = {&BuiltInVariable::kpt00z, &BuiltInVariable::kpt10D,
                                            &BuiltInVariable::kpt30B};
constexpr const TVariable *p01A10D30D[3] = {&BuiltInVariable::kpt01A, &BuiltInVariable::kpt10D,
                                            &BuiltInVariable::kpt30D};
constexpr const TVariable *p01B10D30E[3] = {&BuiltInVariable::kpt01B, &BuiltInVariable::kpt10D,
                                            &BuiltInVariable::kpt30E};
constexpr const TVariable *p01C20D30B[3] = {&BuiltInVariable::kpt01C, &BuiltInVariable::kpt20D,
                                            &BuiltInVariable::kpt30B};
constexpr const TVariable *p01D20D30D[3] = {&BuiltInVariable::kpt01D, &BuiltInVariable::kpt20D,
                                            &BuiltInVariable::kpt30D};
constexpr const TVariable *p01E20D30E[3] = {&BuiltInVariable::kpt01E, &BuiltInVariable::kpt20D,
                                            &BuiltInVariable::kpt30E};
constexpr const TVariable *p01F20D30B[3] = {&BuiltInVariable::kpt01F, &BuiltInVariable::kpt20D,
                                            &BuiltInVariable::kpt30B};
constexpr const TVariable *p01G20D30D[3] = {&BuiltInVariable::kpt01G, &BuiltInVariable::kpt20D,
                                            &BuiltInVariable::kpt30D};
constexpr const TVariable *p01H20D30E[3] = {&BuiltInVariable::kpt01H, &BuiltInVariable::kpt20D,
                                            &BuiltInVariable::kpt30E};
constexpr const TVariable *p01I20D30B[3] = {&BuiltInVariable::kpt01I, &BuiltInVariable::kpt20D,
                                            &BuiltInVariable::kpt30B};
constexpr const TVariable *p01J20D30D[3] = {&BuiltInVariable::kpt01J, &BuiltInVariable::kpt20D,
                                            &BuiltInVariable::kpt30D};
constexpr const TVariable *p01K20D30E[3] = {&BuiltInVariable::kpt01K, &BuiltInVariable::kpt20D,
                                            &BuiltInVariable::kpt30E};
constexpr const TVariable *p10B00B00B[3] = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt00B,
                                            &BuiltInVariable::kpt00B};
constexpr const TVariable *p10B10B00B[3] = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt10B,
                                            &BuiltInVariable::kpt00B};
constexpr const TVariable *p10B10B10B[3] = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt10B,
                                            &BuiltInVariable::kpt10B};
constexpr const TVariable *p10B10B10F[3] = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt10B,
                                            &BuiltInVariable::kpt10F};
constexpr const TVariable *p10B10D[2]    = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p10B20B[2]    = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt20B};
constexpr const TVariable *p10B30B[2]    = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt30B};
constexpr const TVariable *p10B_o_10B[2] = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt_o_10B};
constexpr const TVariable *p10B_o_10D[2] = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt_o_10D};
constexpr const TVariable *p10D00D00D[3] = {&BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p10D10D00D00D[4] = {&BuiltInVariable::kpt10D, &BuiltInVariable::kpt10D,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p10D10D10D[3]    = {&BuiltInVariable::kpt10D, &BuiltInVariable::kpt10D,
                                            &BuiltInVariable::kpt10D};
constexpr const TVariable *p10D10D10F[3]    = {&BuiltInVariable::kpt10D, &BuiltInVariable::kpt10D,
                                            &BuiltInVariable::kpt10F};
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 *p10E10E10F[3]    = {&BuiltInVariable::kpt10E, &BuiltInVariable::kpt10E,
                                            &BuiltInVariable::kpt10F};
constexpr const TVariable *p10E10E_o_10E_o_10E[4] = {
    &BuiltInVariable::kpt10E, &BuiltInVariable::kpt10E, &BuiltInVariable::kpt_o_10E,
    &BuiltInVariable::kpt_o_10E};
constexpr const TVariable *p10F10F10F[3] = {&BuiltInVariable::kpt10F, &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 *p20D20D20F[3]    = {&BuiltInVariable::kpt20D, &BuiltInVariable::kpt20D,
                                            &BuiltInVariable::kpt20F};
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 *p20E20E20F[3]    = {&BuiltInVariable::kpt20E, &BuiltInVariable::kpt20E,
                                            &BuiltInVariable::kpt20F};
constexpr const TVariable *p20E20E_o_20E_o_20E[4] = {
    &BuiltInVariable::kpt20E, &BuiltInVariable::kpt20E, &BuiltInVariable::kpt_o_20E,
    &BuiltInVariable::kpt_o_20E};
constexpr const TVariable *p20F20F20F[3] = {&BuiltInVariable::kpt20F, &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 *p30D30D30F[3]    = {&BuiltInVariable::kpt30D, &BuiltInVariable::kpt30D,
                                            &BuiltInVariable::kpt30F};
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 *p30E30E30F[3]    = {&BuiltInVariable::kpt30E, &BuiltInVariable::kpt30E,
                                            &BuiltInVariable::kpt30F};
constexpr const TVariable *p30E30E_o_30E_o_30E[4] = {
    &BuiltInVariable::kpt30E, &BuiltInVariable::kpt30E, &BuiltInVariable::kpt_o_30E,
    &BuiltInVariable::kpt_o_30E};
constexpr const TVariable *p30F30F30F[3]     = {&BuiltInVariable::kpt30F, &BuiltInVariable::kpt30F,
                                            &BuiltInVariable::kpt30F};
constexpr const TVariable *p50B50B[2]        = {&BuiltInVariable::kpt50B, &BuiltInVariable::kpt50B};
constexpr const TVariable *p60B60B[2]        = {&BuiltInVariable::kpt60B, &BuiltInVariable::kpt60B};
constexpr const TVariable *p70B70B[2]        = {&BuiltInVariable::kpt70B, &BuiltInVariable::kpt70B};
constexpr const TVariable *p90B90B[2]        = {&BuiltInVariable::kpt90B, &BuiltInVariable::kpt90B};
constexpr const TVariable *pA0BA0B[2]        = {&BuiltInVariable::kptA0B, &BuiltInVariable::kptA0B};
constexpr const TVariable *pB0BB0B[2]        = {&BuiltInVariable::kptB0B, &BuiltInVariable::kptB0B};
constexpr const TVariable *pD0BD0B[2]        = {&BuiltInVariable::kptD0B, &BuiltInVariable::kptD0B};
constexpr const TVariable *pE0BE0B[2]        = {&BuiltInVariable::kptE0B, &BuiltInVariable::kptE0B};
constexpr const TVariable *pF0BF0B[2]        = {&BuiltInVariable::kptF0B, &BuiltInVariable::kptF0B};
constexpr const TVariable *p_io_00D00D00D[3] = {&BuiltInVariable::kpt_io_00D,
                                                &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p_io_00E00E00E[3] = {&BuiltInVariable::kpt_io_00E,
                                                &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E};

}  // namespace BuiltInParameters

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

constexpr const TFunction radians_00B(BuiltInId::radians_Float1,
                                      BuiltInName::radians,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p00B30B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                      EOpRadians,
                                      true);
constexpr const TFunction radians_10B(BuiltInId::radians_Float2,
                                      BuiltInName::radians,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p10B20B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                      EOpRadians,
                                      true);
constexpr const TFunction radians_20B(BuiltInId::radians_Float3,
                                      BuiltInName::radians,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p20B00H,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                      EOpRadians,
                                      true);
constexpr const TFunction radians_30B(BuiltInId::radians_Float4,
                                      BuiltInName::radians,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p30B00B00B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                      EOpRadians,
                                      true);
constexpr const TFunction degrees_00B(BuiltInId::degrees_Float1,
                                      BuiltInName::degrees,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p00B30B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                      EOpDegrees,
                                      true);
constexpr const TFunction degrees_10B(BuiltInId::degrees_Float2,
                                      BuiltInName::degrees,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p10B20B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                      EOpDegrees,
                                      true);
constexpr const TFunction degrees_20B(BuiltInId::degrees_Float3,
                                      BuiltInName::degrees,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p20B00H,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                      EOpDegrees,
                                      true);
constexpr const TFunction degrees_30B(BuiltInId::degrees_Float4,
                                      BuiltInName::degrees,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p30B00B00B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                      EOpDegrees,
                                      true);
constexpr const TFunction sin_00B(BuiltInId::sin_Float1,
                                  BuiltInName::sin,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p00B30B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                  EOpSin,
                                  true);
constexpr const TFunction sin_10B(BuiltInId::sin_Float2,
                                  BuiltInName::sin,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p10B20B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                  EOpSin,
                                  true);
constexpr const TFunction sin_20B(BuiltInId::sin_Float3,
                                  BuiltInName::sin,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p20B00H,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                  EOpSin,
                                  true);
constexpr const TFunction sin_30B(BuiltInId::sin_Float4,
                                  BuiltInName::sin,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p30B00B00B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                  EOpSin,
                                  true);
constexpr const TFunction cos_00B(BuiltInId::cos_Float1,
                                  BuiltInName::cos,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p00B30B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                  EOpCos,
                                  true);
constexpr const TFunction cos_10B(BuiltInId::cos_Float2,
                                  BuiltInName::cos,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p10B20B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                  EOpCos,
                                  true);
constexpr const TFunction cos_20B(BuiltInId::cos_Float3,
                                  BuiltInName::cos,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p20B00H,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                  EOpCos,
                                  true);
constexpr const TFunction cos_30B(BuiltInId::cos_Float4,
                                  BuiltInName::cos,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p30B00B00B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                  EOpCos,
                                  true);
constexpr const TFunction tan_00B(BuiltInId::tan_Float1,
                                  BuiltInName::tan,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p00B30B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                  EOpTan,
                                  true);
constexpr const TFunction tan_10B(BuiltInId::tan_Float2,
                                  BuiltInName::tan,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p10B20B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                  EOpTan,
                                  true);
constexpr const TFunction tan_20B(BuiltInId::tan_Float3,
                                  BuiltInName::tan,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p20B00H,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                  EOpTan,
                                  true);
constexpr const TFunction tan_30B(BuiltInId::tan_Float4,
                                  BuiltInName::tan,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p30B00B00B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                  EOpTan,
                                  true);
constexpr const TFunction asin_00B(BuiltInId::asin_Float1,
                                   BuiltInName::asin,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00B30B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpAsin,
                                   true);
constexpr const TFunction asin_10B(BuiltInId::asin_Float2,
                                   BuiltInName::asin,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p10B20B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpAsin,
                                   true);
constexpr const TFunction asin_20B(BuiltInId::asin_Float3,
                                   BuiltInName::asin,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p20B00H,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpAsin,
                                   true);
constexpr const TFunction asin_30B(BuiltInId::asin_Float4,
                                   BuiltInName::asin,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p30B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpAsin,
                                   true);
constexpr const TFunction acos_00B(BuiltInId::acos_Float1,
                                   BuiltInName::acos,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00B30B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpAcos,
                                   true);
constexpr const TFunction acos_10B(BuiltInId::acos_Float2,
                                   BuiltInName::acos,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p10B20B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpAcos,
                                   true);
constexpr const TFunction acos_20B(BuiltInId::acos_Float3,
                                   BuiltInName::acos,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p20B00H,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpAcos,
                                   true);
constexpr const TFunction acos_30B(BuiltInId::acos_Float4,
                                   BuiltInName::acos,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p30B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpAcos,
                                   true);
constexpr const TFunction atan_00B00B(BuiltInId::atan_Float1_Float1,
                                      BuiltInName::atan,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p00B00B20B,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                      EOpAtan,
                                      true);
constexpr const TFunction atan_10B10B(BuiltInId::atan_Float2_Float2,
                                      BuiltInName::atan,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p10B10B10F,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                      EOpAtan,
                                      true);
constexpr const TFunction atan_20B20B(BuiltInId::atan_Float3_Float3,
                                      BuiltInName::atan,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p20B20B20F,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                      EOpAtan,
                                      true);
constexpr const TFunction atan_30B30B(BuiltInId::atan_Float4_Float4,
                                      BuiltInName::atan,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p30B30B30F,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                      EOpAtan,
                                      true);
constexpr const TFunction atan_00B(BuiltInId::atan_Float1,
                                   BuiltInName::atan,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00B30B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpAtan,
                                   true);
constexpr const TFunction atan_10B(BuiltInId::atan_Float2,
                                   BuiltInName::atan,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p10B20B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpAtan,
                                   true);
constexpr const TFunction atan_20B(BuiltInId::atan_Float3,
                                   BuiltInName::atan,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p20B00H,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpAtan,
                                   true);
constexpr const TFunction atan_30B(BuiltInId::atan_Float4,
                                   BuiltInName::atan,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p30B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpAtan,
                                   true);
constexpr const TFunction sinh_00B(BuiltInId::sinh_Float1,
                                   BuiltInName::sinh,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00B30B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpSinh,
                                   true);
constexpr const TFunction sinh_10B(BuiltInId::sinh_Float2,
                                   BuiltInName::sinh,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p10B20B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpSinh,
                                   true);
constexpr const TFunction sinh_20B(BuiltInId::sinh_Float3,
                                   BuiltInName::sinh,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p20B00H,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpSinh,
                                   true);
constexpr const TFunction sinh_30B(BuiltInId::sinh_Float4,
                                   BuiltInName::sinh,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p30B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpSinh,
                                   true);
constexpr const TFunction cosh_00B(BuiltInId::cosh_Float1,
                                   BuiltInName::cosh,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00B30B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpCosh,
                                   true);
constexpr const TFunction cosh_10B(BuiltInId::cosh_Float2,
                                   BuiltInName::cosh,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p10B20B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpCosh,
                                   true);
constexpr const TFunction cosh_20B(BuiltInId::cosh_Float3,
                                   BuiltInName::cosh,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p20B00H,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpCosh,
                                   true);
constexpr const TFunction cosh_30B(BuiltInId::cosh_Float4,
                                   BuiltInName::cosh,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p30B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpCosh,
                                   true);
constexpr const TFunction tanh_00B(BuiltInId::tanh_Float1,
                                   BuiltInName::tanh,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00B30B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpTanh,
                                   true);
constexpr const TFunction tanh_10B(BuiltInId::tanh_Float2,
                                   BuiltInName::tanh,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p10B20B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpTanh,
                                   true);
constexpr const TFunction tanh_20B(BuiltInId::tanh_Float3,
                                   BuiltInName::tanh,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p20B00H,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpTanh,
                                   true);
constexpr const TFunction tanh_30B(BuiltInId::tanh_Float4,
                                   BuiltInName::tanh,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p30B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpTanh,
                                   true);
constexpr const TFunction asinh_00B(BuiltInId::asinh_Float1,
                                    BuiltInName::asinh,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p00B30B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                    EOpAsinh,
                                    true);
constexpr const TFunction asinh_10B(BuiltInId::asinh_Float2,
                                    BuiltInName::asinh,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p10B20B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                    EOpAsinh,
                                    true);
constexpr const TFunction asinh_20B(BuiltInId::asinh_Float3,
                                    BuiltInName::asinh,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p20B00H,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                    EOpAsinh,
                                    true);
constexpr const TFunction asinh_30B(BuiltInId::asinh_Float4,
                                    BuiltInName::asinh,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p30B00B00B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                    EOpAsinh,
                                    true);
constexpr const TFunction acosh_00B(BuiltInId::acosh_Float1,
                                    BuiltInName::acosh,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p00B30B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                    EOpAcosh,
                                    true);
constexpr const TFunction acosh_10B(BuiltInId::acosh_Float2,
                                    BuiltInName::acosh,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p10B20B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                    EOpAcosh,
                                    true);
constexpr const TFunction acosh_20B(BuiltInId::acosh_Float3,
                                    BuiltInName::acosh,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p20B00H,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                    EOpAcosh,
                                    true);
constexpr const TFunction acosh_30B(BuiltInId::acosh_Float4,
                                    BuiltInName::acosh,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p30B00B00B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                    EOpAcosh,
                                    true);
constexpr const TFunction atanh_00B(BuiltInId::atanh_Float1,
                                    BuiltInName::atanh,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p00B30B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                    EOpAtanh,
                                    true);
constexpr const TFunction atanh_10B(BuiltInId::atanh_Float2,
                                    BuiltInName::atanh,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p10B20B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                    EOpAtanh,
                                    true);
constexpr const TFunction atanh_20B(BuiltInId::atanh_Float3,
                                    BuiltInName::atanh,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p20B00H,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                    EOpAtanh,
                                    true);
constexpr const TFunction atanh_30B(BuiltInId::atanh_Float4,
                                    BuiltInName::atanh,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p30B00B00B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                    EOpAtanh,
                                    true);
constexpr const TFunction pow_00B00B(BuiltInId::pow_Float1_Float1,
                                     BuiltInName::pow,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p00B00B20B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpPow,
                                     true);
constexpr const TFunction pow_10B10B(BuiltInId::pow_Float2_Float2,
                                     BuiltInName::pow,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p10B10B10F,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                     EOpPow,
                                     true);
constexpr const TFunction pow_20B20B(BuiltInId::pow_Float3_Float3,
                                     BuiltInName::pow,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p20B20B20F,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                     EOpPow,
                                     true);
constexpr const TFunction pow_30B30B(BuiltInId::pow_Float4_Float4,
                                     BuiltInName::pow,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p30B30B30F,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpPow,
                                     true);
constexpr const TFunction exp_00B(BuiltInId::exp_Float1,
                                  BuiltInName::exp,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p00B30B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                  EOpExp,
                                  true);
constexpr const TFunction exp_10B(BuiltInId::exp_Float2,
                                  BuiltInName::exp,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p10B20B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                  EOpExp,
                                  true);
constexpr const TFunction exp_20B(BuiltInId::exp_Float3,
                                  BuiltInName::exp,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p20B00H,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                  EOpExp,
                                  true);
constexpr const TFunction exp_30B(BuiltInId::exp_Float4,
                                  BuiltInName::exp,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p30B00B00B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                  EOpExp,
                                  true);
constexpr const TFunction log_00B(BuiltInId::log_Float1,
                                  BuiltInName::log,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p00B30B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                  EOpLog,
                                  true);
constexpr const TFunction log_10B(BuiltInId::log_Float2,
                                  BuiltInName::log,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p10B20B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                  EOpLog,
                                  true);
constexpr const TFunction log_20B(BuiltInId::log_Float3,
                                  BuiltInName::log,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p20B00H,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                  EOpLog,
                                  true);
constexpr const TFunction log_30B(BuiltInId::log_Float4,
                                  BuiltInName::log,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p30B00B00B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                  EOpLog,
                                  true);
constexpr const TFunction exp2_00B(BuiltInId::exp2_Float1,
                                   BuiltInName::exp2,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00B30B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpExp2,
                                   true);
constexpr const TFunction exp2_10B(BuiltInId::exp2_Float2,
                                   BuiltInName::exp2,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p10B20B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpExp2,
                                   true);
constexpr const TFunction exp2_20B(BuiltInId::exp2_Float3,
                                   BuiltInName::exp2,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p20B00H,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpExp2,
                                   true);
constexpr const TFunction exp2_30B(BuiltInId::exp2_Float4,
                                   BuiltInName::exp2,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p30B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpExp2,
                                   true);
constexpr const TFunction log2_00B(BuiltInId::log2_Float1,
                                   BuiltInName::log2,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00B30B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpLog2,
                                   true);
constexpr const TFunction log2_10B(BuiltInId::log2_Float2,
                                   BuiltInName::log2,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p10B20B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpLog2,
                                   true);
constexpr const TFunction log2_20B(BuiltInId::log2_Float3,
                                   BuiltInName::log2,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p20B00H,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpLog2,
                                   true);
constexpr const TFunction log2_30B(BuiltInId::log2_Float4,
                                   BuiltInName::log2,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p30B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpLog2,
                                   true);
constexpr const TFunction sqrt_00B(BuiltInId::sqrt_Float1,
                                   BuiltInName::sqrt,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00B30B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpSqrt,
                                   true);
constexpr const TFunction sqrt_10B(BuiltInId::sqrt_Float2,
                                   BuiltInName::sqrt,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p10B20B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpSqrt,
                                   true);
constexpr const TFunction sqrt_20B(BuiltInId::sqrt_Float3,
                                   BuiltInName::sqrt,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p20B00H,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpSqrt,
                                   true);
constexpr const TFunction sqrt_30B(BuiltInId::sqrt_Float4,
                                   BuiltInName::sqrt,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p30B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpSqrt,
                                   true);
constexpr const TFunction inversesqrt_00B(
    BuiltInId::inversesqrt_Float1,
    BuiltInName::inversesqrt,
    TExtension::UNDEFINED,
    BuiltInParameters::p00B30B,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpInversesqrt,
    true);
constexpr const TFunction inversesqrt_10B(
    BuiltInId::inversesqrt_Float2,
    BuiltInName::inversesqrt,
    TExtension::UNDEFINED,
    BuiltInParameters::p10B20B,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpInversesqrt,
    true);
constexpr const TFunction inversesqrt_20B(
    BuiltInId::inversesqrt_Float3,
    BuiltInName::inversesqrt,
    TExtension::UNDEFINED,
    BuiltInParameters::p20B00H,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpInversesqrt,
    true);
constexpr const TFunction inversesqrt_30B(
    BuiltInId::inversesqrt_Float4,
    BuiltInName::inversesqrt,
    TExtension::UNDEFINED,
    BuiltInParameters::p30B00B00B,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpInversesqrt,
    true);
constexpr const TFunction abs_00B(BuiltInId::abs_Float1,
                                  BuiltInName::abs,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p00B30B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                  EOpAbs,
                                  true);
constexpr const TFunction abs_10B(BuiltInId::abs_Float2,
                                  BuiltInName::abs,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p10B20B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                  EOpAbs,
                                  true);
constexpr const TFunction abs_20B(BuiltInId::abs_Float3,
                                  BuiltInName::abs,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p20B00H,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                  EOpAbs,
                                  true);
constexpr const TFunction abs_30B(BuiltInId::abs_Float4,
                                  BuiltInName::abs,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p30B00B00B,
                                  1,
                                  StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                  EOpAbs,
                                  true);
constexpr const TFunction abs_00D(BuiltInId::abs_Int1,
                                  BuiltInName::abs,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p00D00D00F,
                                  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::p30D30D_o_30D_o_30D,
                                  1,
                                  StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                  EOpAbs,
                                  true);
constexpr const TFunction sign_00B(BuiltInId::sign_Float1,
                                   BuiltInName::sign,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00B30B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpSign,
                                   true);
constexpr const TFunction sign_10B(BuiltInId::sign_Float2,
                                   BuiltInName::sign,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p10B20B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpSign,
                                   true);
constexpr const TFunction sign_20B(BuiltInId::sign_Float3,
                                   BuiltInName::sign,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p20B00H,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpSign,
                                   true);
constexpr const TFunction sign_30B(BuiltInId::sign_Float4,
                                   BuiltInName::sign,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p30B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpSign,
                                   true);
constexpr const TFunction sign_00D(BuiltInId::sign_Int1,
                                   BuiltInName::sign,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00D00D00F,
                                   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::p30D30D_o_30D_o_30D,
                                   1,
                                   StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpSign,
                                   true);
constexpr const TFunction floor_00B(BuiltInId::floor_Float1,
                                    BuiltInName::floor,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p00B30B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                    EOpFloor,
                                    true);
constexpr const TFunction floor_10B(BuiltInId::floor_Float2,
                                    BuiltInName::floor,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p10B20B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                    EOpFloor,
                                    true);
constexpr const TFunction floor_20B(BuiltInId::floor_Float3,
                                    BuiltInName::floor,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p20B00H,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                    EOpFloor,
                                    true);
constexpr const TFunction floor_30B(BuiltInId::floor_Float4,
                                    BuiltInName::floor,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p30B00B00B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                    EOpFloor,
                                    true);
constexpr const TFunction trunc_00B(BuiltInId::trunc_Float1,
                                    BuiltInName::trunc,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p00B30B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                    EOpTrunc,
                                    true);
constexpr const TFunction trunc_10B(BuiltInId::trunc_Float2,
                                    BuiltInName::trunc,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p10B20B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                    EOpTrunc,
                                    true);
constexpr const TFunction trunc_20B(BuiltInId::trunc_Float3,
                                    BuiltInName::trunc,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p20B00H,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                    EOpTrunc,
                                    true);
constexpr const TFunction trunc_30B(BuiltInId::trunc_Float4,
                                    BuiltInName::trunc,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p30B00B00B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                    EOpTrunc,
                                    true);
constexpr const TFunction round_00B(BuiltInId::round_Float1,
                                    BuiltInName::round,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p00B30B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                    EOpRound,
                                    true);
constexpr const TFunction round_10B(BuiltInId::round_Float2,
                                    BuiltInName::round,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p10B20B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                    EOpRound,
                                    true);
constexpr const TFunction round_20B(BuiltInId::round_Float3,
                                    BuiltInName::round,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p20B00H,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                    EOpRound,
                                    true);
constexpr const TFunction round_30B(BuiltInId::round_Float4,
                                    BuiltInName::round,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p30B00B00B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                    EOpRound,
                                    true);
constexpr const TFunction roundEven_00B(BuiltInId::roundEven_Float1,
                                        BuiltInName::roundEven,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p00B30B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                        EOpRoundEven,
                                        true);
constexpr const TFunction roundEven_10B(BuiltInId::roundEven_Float2,
                                        BuiltInName::roundEven,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p10B20B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpRoundEven,
                                        true);
constexpr const TFunction roundEven_20B(BuiltInId::roundEven_Float3,
                                        BuiltInName::roundEven,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p20B00H,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpRoundEven,
                                        true);
constexpr const TFunction roundEven_30B(BuiltInId::roundEven_Float4,
                                        BuiltInName::roundEven,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p30B00B00B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                        EOpRoundEven,
                                        true);
constexpr const TFunction ceil_00B(BuiltInId::ceil_Float1,
                                   BuiltInName::ceil,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00B30B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpCeil,
                                   true);
constexpr const TFunction ceil_10B(BuiltInId::ceil_Float2,
                                   BuiltInName::ceil,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p10B20B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpCeil,
                                   true);
constexpr const TFunction ceil_20B(BuiltInId::ceil_Float3,
                                   BuiltInName::ceil,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p20B00H,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpCeil,
                                   true);
constexpr const TFunction ceil_30B(BuiltInId::ceil_Float4,
                                   BuiltInName::ceil,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p30B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpCeil,
                                   true);
constexpr const TFunction fract_00B(BuiltInId::fract_Float1,
                                    BuiltInName::fract,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p00B30B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                    EOpFract,
                                    true);
constexpr const TFunction fract_10B(BuiltInId::fract_Float2,
                                    BuiltInName::fract,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p10B20B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                    EOpFract,
                                    true);
constexpr const TFunction fract_20B(BuiltInId::fract_Float3,
                                    BuiltInName::fract,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p20B00H,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                    EOpFract,
                                    true);
constexpr const TFunction fract_30B(BuiltInId::fract_Float4,
                                    BuiltInName::fract,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p30B00B00B,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                    EOpFract,
                                    true);
constexpr const TFunction mod_00B00B(BuiltInId::mod_Float1_Float1,
                                     BuiltInName::mod,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p00B00B20B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpMod,
                                     true);
constexpr const TFunction mod_10B00B(BuiltInId::mod_Float2_Float1,
                                     BuiltInName::mod,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p10B00B00B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                     EOpMod,
                                     true);
constexpr const TFunction mod_20B00B(BuiltInId::mod_Float3_Float1,
                                     BuiltInName::mod,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p20B00B00B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                     EOpMod,
                                     true);
constexpr const TFunction mod_30B00B(BuiltInId::mod_Float4_Float1,
                                     BuiltInName::mod,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p30B00B00B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpMod,
                                     true);
constexpr const TFunction mod_10B10B(BuiltInId::mod_Float2_Float2,
                                     BuiltInName::mod,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p10B10B10F,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                     EOpMod,
                                     true);
constexpr const TFunction mod_20B20B(BuiltInId::mod_Float3_Float3,
                                     BuiltInName::mod,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p20B20B20F,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                     EOpMod,
                                     true);
constexpr const TFunction mod_30B30B(BuiltInId::mod_Float4_Float4,
                                     BuiltInName::mod,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p30B30B30F,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpMod,
                                     true);
constexpr const TFunction min_00B00B(BuiltInId::min_Float1_Float1,
                                     BuiltInName::min,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p00B00B20B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_10B00B(BuiltInId::min_Float2_Float1,
                                     BuiltInName::min,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p10B00B00B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_20B00B(BuiltInId::min_Float3_Float1,
                                     BuiltInName::min,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p20B00B00B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_30B00B(BuiltInId::min_Float4_Float1,
                                     BuiltInName::min,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p30B00B00B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_10B10B(BuiltInId::min_Float2_Float2,
                                     BuiltInName::min,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p10B10B10F,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_20B20B(BuiltInId::min_Float3_Float3,
                                     BuiltInName::min,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p20B20B20F,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_30B30B(BuiltInId::min_Float4_Float4,
                                     BuiltInName::min,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p30B30B30F,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_00D00D(BuiltInId::min_Int1_Int1,
                                     BuiltInName::min,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p00D00D00F,
                                     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::p30D30D_o_30D_o_30D,
                                     2,
                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_10D00D(BuiltInId::min_Int2_Int1,
                                     BuiltInName::min,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p10D00D00D,
                                     2,
                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_20D00D(BuiltInId::min_Int3_Int1,
                                     BuiltInName::min,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p20D00D00D,
                                     2,
                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_30D00D(BuiltInId::min_Int4_Int1,
                                     BuiltInName::min,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p30D00D00D,
                                     2,
                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_00E00E(BuiltInId::min_UInt1_UInt1,
                                     BuiltInName::min,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p00E00E00E,
                                     2,
                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_10E10E(BuiltInId::min_UInt2_UInt2,
                                     BuiltInName::min,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p10E10E10E,
                                     2,
                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_20E20E(BuiltInId::min_UInt3_UInt3,
                                     BuiltInName::min,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p20E20E00D00D,
                                     2,
                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_30E30E(BuiltInId::min_UInt4_UInt4,
                                     BuiltInName::min,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p30E30E00D00D,
                                     2,
                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_10E00E(BuiltInId::min_UInt2_UInt1,
                                     BuiltInName::min,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p10E00E00E,
                                     2,
                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_20E00E(BuiltInId::min_UInt3_UInt1,
                                     BuiltInName::min,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p20E00E00E,
                                     2,
                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction min_30E00E(BuiltInId::min_UInt4_UInt1,
                                     BuiltInName::min,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p30E00E00E,
                                     2,
                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpMin,
                                     true);
constexpr const TFunction max_00B00B(BuiltInId::max_Float1_Float1,
                                     BuiltInName::max,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p00B00B20B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpMax,
                                     true);
constexpr const TFunction max_10B00B(BuiltInId::max_Float2_Float1,
                                     BuiltInName::max,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p10B00B00B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                     EOpMax,
                                     true);
constexpr const TFunction max_20B00B(BuiltInId::max_Float3_Float1,
                                     BuiltInName::max,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p20B00B00B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                     EOpMax,
                                     true);
constexpr const TFunction max_30B00B(BuiltInId::max_Float4_Float1,
                                     BuiltInName::max,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p30B00B00B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpMax,
                                     true);
constexpr const TFunction max_10B10B(BuiltInId::max_Float2_Float2,
                                     BuiltInName::max,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p10B10B10F,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                     EOpMax,
                                     true);
constexpr const TFunction max_20B20B(BuiltInId::max_Float3_Float3,
                                     BuiltInName::max,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p20B20B20F,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                     EOpMax,
                                     true);
constexpr const TFunction max_30B30B(BuiltInId::max_Float4_Float4,
                                     BuiltInName::max,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p30B30B30F,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpMax,
                                     true);
constexpr const TFunction max_00D00D(BuiltInId::max_Int1_Int1,
                                     BuiltInName::max,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p00D00D00F,
                                     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::p30D30D_o_30D_o_30D,
                                     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 mix_00D00D00F(BuiltInId::mix_Int1_Int1_Bool1,
                                        BuiltInName::mix,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p00D00D00F,
                                        3,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                        EOpMix,
                                        true);
constexpr const TFunction mix_10D10D10F(BuiltInId::mix_Int2_Int2_Bool2,
                                        BuiltInName::mix,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p10D10D10F,
                                        3,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpMix,
                                        true);
constexpr const TFunction mix_20D20D20F(BuiltInId::mix_Int3_Int3_Bool3,
                                        BuiltInName::mix,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p20D20D20F,
                                        3,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpMix,
                                        true);
constexpr const TFunction mix_30D30D30F(BuiltInId::mix_Int4_Int4_Bool4,
                                        BuiltInName::mix,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p30D30D30F,
                                        3,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                        EOpMix,
                                        true);
constexpr const TFunction mix_00E00E00F(BuiltInId::mix_UInt1_UInt1_Bool1,
                                        BuiltInName::mix,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p00E00E00F,
                                        3,
                                        StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                        EOpMix,
                                        true);
constexpr const TFunction mix_10E10E10F(BuiltInId::mix_UInt2_UInt2_Bool2,
                                        BuiltInName::mix,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p10E10E10F,
                                        3,
                                        StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpMix,
                                        true);
constexpr const TFunction mix_20E20E20F(BuiltInId::mix_UInt3_UInt3_Bool3,
                                        BuiltInName::mix,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p20E20E20F,
                                        3,
                                        StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpMix,
                                        true);
constexpr const TFunction mix_30E30E30F(BuiltInId::mix_UInt4_UInt4_Bool4,
                                        BuiltInName::mix,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p30E30E30F,
                                        3,
                                        StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                        EOpMix,
                                        true);
constexpr const TFunction mix_00F00F00F(BuiltInId::mix_Bool1_Bool1_Bool1,
                                        BuiltInName::mix,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p00F00F00F,
                                        3,
                                        StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
                                        EOpMix,
                                        true);
constexpr const TFunction mix_10F10F10F(BuiltInId::mix_Bool2_Bool2_Bool2,
                                        BuiltInName::mix,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p10F10F10F,
                                        3,
                                        StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpMix,
                                        true);
constexpr const TFunction mix_20F20F20F(BuiltInId::mix_Bool3_Bool3_Bool3,
                                        BuiltInName::mix,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p20F20F20F,
                                        3,
                                        StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpMix,
                                        true);
constexpr const TFunction mix_30F30F30F(BuiltInId::mix_Bool4_Bool4_Bool4,
                                        BuiltInName::mix,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p30F30F30F,
                                        3,
                                        StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                        EOpMix,
                                        true);
constexpr const TFunction step_00B00B(BuiltInId::step_Float1_Float1,
                                      BuiltInName::step,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p00B00B20B,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                      EOpStep,
                                      true);
constexpr const TFunction step_10B10B(BuiltInId::step_Float2_Float2,
                                      BuiltInName::step,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p10B10B10F,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                      EOpStep,
                                      true);
constexpr const TFunction step_20B20B(BuiltInId::step_Float3_Float3,
                                      BuiltInName::step,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p20B20B20F,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                      EOpStep,
                                      true);
constexpr const TFunction step_30B30B(BuiltInId::step_Float4_Float4,
                                      BuiltInName::step,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p30B30B30F,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                      EOpStep,
                                      true);
constexpr const TFunction step_00B10B(BuiltInId::step_Float1_Float2,
                                      BuiltInName::step,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p00B10B,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                      EOpStep,
                                      true);
constexpr const TFunction step_00B20B(BuiltInId::step_Float1_Float3,
                                      BuiltInName::step,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p00B20B,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                      EOpStep,
                                      true);
constexpr const TFunction step_00B30B(BuiltInId::step_Float1_Float4,
                                      BuiltInName::step,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p00B30B,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                      EOpStep,
                                      true);
constexpr const TFunction smoothstep_00B00B00B(
    BuiltInId::smoothstep_Float1_Float1_Float1,
    BuiltInName::smoothstep,
    TExtension::UNDEFINED,
    BuiltInParameters::p00B00B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpSmoothstep,
    true);
constexpr const TFunction smoothstep_10B10B10B(
    BuiltInId::smoothstep_Float2_Float2_Float2,
    BuiltInName::smoothstep,
    TExtension::UNDEFINED,
    BuiltInParameters::p10B10B10B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpSmoothstep,
    true);
constexpr const TFunction smoothstep_20B20B20B(
    BuiltInId::smoothstep_Float3_Float3_Float3,
    BuiltInName::smoothstep,
    TExtension::UNDEFINED,
    BuiltInParameters::p20B20B20B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpSmoothstep,
    true);
constexpr const TFunction smoothstep_30B30B30B(
    BuiltInId::smoothstep_Float4_Float4_Float4,
    BuiltInName::smoothstep,
    TExtension::UNDEFINED,
    BuiltInParameters::p30B30B30B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpSmoothstep,
    true);
constexpr const TFunction smoothstep_00B00B10B(
    BuiltInId::smoothstep_Float1_Float1_Float2,
    BuiltInName::smoothstep,
    TExtension::UNDEFINED,
    BuiltInParameters::p00B00B10B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpSmoothstep,
    true);
constexpr const TFunction smoothstep_00B00B20B(
    BuiltInId::smoothstep_Float1_Float1_Float3,
    BuiltInName::smoothstep,
    TExtension::UNDEFINED,
    BuiltInParameters::p00B00B20B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpSmoothstep,
    true);
constexpr const TFunction smoothstep_00B00B30B(
    BuiltInId::smoothstep_Float1_Float1_Float4,
    BuiltInName::smoothstep,
    TExtension::UNDEFINED,
    BuiltInParameters::p00B00B30B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpSmoothstep,
    true);
constexpr const TFunction modf_00B00B(BuiltInId::modf_Float1_Float1,
                                      BuiltInName::modf,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p00B_o_00B,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                      EOpModf,
                                      false);
constexpr const TFunction modf_10B10B(BuiltInId::modf_Float2_Float2,
                                      BuiltInName::modf,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p10B_o_10B,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                      EOpModf,
                                      false);
constexpr const TFunction modf_20B20B(BuiltInId::modf_Float3_Float3,
                                      BuiltInName::modf,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p20B_o_20B,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                      EOpModf,
                                      false);
constexpr const TFunction modf_30B30B(BuiltInId::modf_Float4_Float4,
                                      BuiltInName::modf,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p30B_o_30B,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                      EOpModf,
                                      false);
constexpr const TFunction isnan_00B(BuiltInId::isnan_Float1,
                                    BuiltInName::isnan,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p00B30B,
                                    1,
                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
                                    EOpIsnan,
                                    true);
constexpr const TFunction isnan_10B(BuiltInId::isnan_Float2,
                                    BuiltInName::isnan,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p10B20B,
                                    1,
                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                    EOpIsnan,
                                    true);
constexpr const TFunction isnan_20B(BuiltInId::isnan_Float3,
                                    BuiltInName::isnan,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p20B00H,
                                    1,
                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                    EOpIsnan,
                                    true);
constexpr const TFunction isnan_30B(BuiltInId::isnan_Float4,
                                    BuiltInName::isnan,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p30B00B00B,
                                    1,
                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                    EOpIsnan,
                                    true);
constexpr const TFunction isinf_00B(BuiltInId::isinf_Float1,
                                    BuiltInName::isinf,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p00B30B,
                                    1,
                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
                                    EOpIsinf,
                                    true);
constexpr const TFunction isinf_10B(BuiltInId::isinf_Float2,
                                    BuiltInName::isinf,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p10B20B,
                                    1,
                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                    EOpIsinf,
                                    true);
constexpr const TFunction isinf_20B(BuiltInId::isinf_Float3,
                                    BuiltInName::isinf,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p20B00H,
                                    1,
                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                    EOpIsinf,
                                    true);
constexpr const TFunction isinf_30B(BuiltInId::isinf_Float4,
                                    BuiltInName::isinf,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p30B00B00B,
                                    1,
                                    StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                    EOpIsinf,
                                    true);
constexpr const TFunction floatBitsToInt_00B(
    BuiltInId::floatBitsToInt_Float1,
    BuiltInName::floatBitsToInt,
    TExtension::UNDEFINED,
    BuiltInParameters::p00B30B,
    1,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpFloatBitsToInt,
    true);
constexpr const TFunction floatBitsToInt_10B(
    BuiltInId::floatBitsToInt_Float2,
    BuiltInName::floatBitsToInt,
    TExtension::UNDEFINED,
    BuiltInParameters::p10B20B,
    1,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpFloatBitsToInt,
    true);
constexpr const TFunction floatBitsToInt_20B(
    BuiltInId::floatBitsToInt_Float3,
    BuiltInName::floatBitsToInt,
    TExtension::UNDEFINED,
    BuiltInParameters::p20B00H,
    1,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpFloatBitsToInt,
    true);
constexpr const TFunction floatBitsToInt_30B(
    BuiltInId::floatBitsToInt_Float4,
    BuiltInName::floatBitsToInt,
    TExtension::UNDEFINED,
    BuiltInParameters::p30B00B00B,
    1,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpFloatBitsToInt,
    true);
constexpr const TFunction floatBitsToUint_00B(
    BuiltInId::floatBitsToUint_Float1,
    BuiltInName::floatBitsToUint,
    TExtension::UNDEFINED,
    BuiltInParameters::p00B30B,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpFloatBitsToUint,
    true);
constexpr const TFunction floatBitsToUint_10B(
    BuiltInId::floatBitsToUint_Float2,
    BuiltInName::floatBitsToUint,
    TExtension::UNDEFINED,
    BuiltInParameters::p10B20B,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpFloatBitsToUint,
    true);
constexpr const TFunction floatBitsToUint_20B(
    BuiltInId::floatBitsToUint_Float3,
    BuiltInName::floatBitsToUint,
    TExtension::UNDEFINED,
    BuiltInParameters::p20B00H,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpFloatBitsToUint,
    true);
constexpr const TFunction floatBitsToUint_30B(
    BuiltInId::floatBitsToUint_Float4,
    BuiltInName::floatBitsToUint,
    TExtension::UNDEFINED,
    BuiltInParameters::p30B00B00B,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpFloatBitsToUint,
    true);
constexpr const TFunction intBitsToFloat_00D(
    BuiltInId::intBitsToFloat_Int1,
    BuiltInName::intBitsToFloat,
    TExtension::UNDEFINED,
    BuiltInParameters::p00D00D00F,
    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::p30D30D_o_30D_o_30D,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpIntBitsToFloat,
    true);
constexpr const TFunction uintBitsToFloat_00E(
    BuiltInId::uintBitsToFloat_UInt1,
    BuiltInName::uintBitsToFloat,
    TExtension::UNDEFINED,
    BuiltInParameters::p00E00E00E,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpUintBitsToFloat,
    true);
constexpr const TFunction uintBitsToFloat_10E(
    BuiltInId::uintBitsToFloat_UInt2,
    BuiltInName::uintBitsToFloat,
    TExtension::UNDEFINED,
    BuiltInParameters::p10E00D00D,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpUintBitsToFloat,
    true);
constexpr const TFunction uintBitsToFloat_20E(
    BuiltInId::uintBitsToFloat_UInt3,
    BuiltInName::uintBitsToFloat,
    TExtension::UNDEFINED,
    BuiltInParameters::p20E20E00D00D,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpUintBitsToFloat,
    true);
constexpr const TFunction uintBitsToFloat_30E(
    BuiltInId::uintBitsToFloat_UInt4,
    BuiltInName::uintBitsToFloat,
    TExtension::UNDEFINED,
    BuiltInParameters::p30E30E00D00D,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpUintBitsToFloat,
    true);
constexpr const TFunction fma_00B00B00B(BuiltInId::fma_Float1_Float1_Float1,
                                        BuiltInName::fma,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p00B00B00B,
                                        3,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                        EOpFma,
                                        true);
constexpr const TFunction fma_10B10B10B(BuiltInId::fma_Float2_Float2_Float2,
                                        BuiltInName::fma,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p10B10B10B,
                                        3,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpFma,
                                        true);
constexpr const TFunction fma_20B20B20B(BuiltInId::fma_Float3_Float3_Float3,
                                        BuiltInName::fma,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p20B20B20B,
                                        3,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpFma,
                                        true);
constexpr const TFunction fma_30B30B30B(BuiltInId::fma_Float4_Float4_Float4,
                                        BuiltInName::fma,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p30B30B30B,
                                        3,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                        EOpFma,
                                        true);
constexpr const TFunction fmaExt_00B00B00B(
    BuiltInId::fmaExt_Float1_Float1_Float1,
    BuiltInName::fmaExt,
    TExtension::EXT_gpu_shader5,
    BuiltInParameters::p00B00B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpFma,
    true);
constexpr const TFunction fmaExt_10B10B10B(
    BuiltInId::fmaExt_Float2_Float2_Float2,
    BuiltInName::fmaExt,
    TExtension::EXT_gpu_shader5,
    BuiltInParameters::p10B10B10B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpFma,
    true);
constexpr const TFunction fmaExt_20B20B20B(
    BuiltInId::fmaExt_Float3_Float3_Float3,
    BuiltInName::fmaExt,
    TExtension::EXT_gpu_shader5,
    BuiltInParameters::p20B20B20B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpFma,
    true);
constexpr const TFunction fmaExt_30B30B30B(
    BuiltInId::fmaExt_Float4_Float4_Float4,
    BuiltInName::fmaExt,
    TExtension::EXT_gpu_shader5,
    BuiltInParameters::p30B30B30B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpFma,
    true);
constexpr const TFunction frexp_00B00D(BuiltInId::frexp_Float1_Int1,
                                       BuiltInName::frexp,
                                       TExtension::UNDEFINED,
                                       BuiltInParameters::p00B_o_00D,
                                       2,
                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                       EOpFrexp,
                                       false);
constexpr const TFunction frexp_10B10D(BuiltInId::frexp_Float2_Int2,
                                       BuiltInName::frexp,
                                       TExtension::UNDEFINED,
                                       BuiltInParameters::p10B_o_10D,
                                       2,
                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                       EOpFrexp,
                                       false);
constexpr const TFunction frexp_20B20D(BuiltInId::frexp_Float3_Int3,
                                       BuiltInName::frexp,
                                       TExtension::UNDEFINED,
                                       BuiltInParameters::p20B_o_20D,
                                       2,
                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                       EOpFrexp,
                                       false);
constexpr const TFunction frexp_30B30D(BuiltInId::frexp_Float4_Int4,
                                       BuiltInName::frexp,
                                       TExtension::UNDEFINED,
                                       BuiltInParameters::p30B_o_30D,
                                       2,
                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                       EOpFrexp,
                                       false);
constexpr const TFunction ldexp_00B00D(BuiltInId::ldexp_Float1_Int1,
                                       BuiltInName::ldexp,
                                       TExtension::UNDEFINED,
                                       BuiltInParameters::p00B00D,
                                       2,
                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                       EOpLdexp,
                                       true);
constexpr const TFunction ldexp_10B10D(BuiltInId::ldexp_Float2_Int2,
                                       BuiltInName::ldexp,
                                       TExtension::UNDEFINED,
                                       BuiltInParameters::p10B10D,
                                       2,
                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                       EOpLdexp,
                                       true);
constexpr const TFunction ldexp_20B20D(BuiltInId::ldexp_Float3_Int3,
                                       BuiltInName::ldexp,
                                       TExtension::UNDEFINED,
                                       BuiltInParameters::p20B20D,
                                       2,
                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                       EOpLdexp,
                                       true);
constexpr const TFunction ldexp_30B30D(BuiltInId::ldexp_Float4_Int4,
                                       BuiltInName::ldexp,
                                       TExtension::UNDEFINED,
                                       BuiltInParameters::p30B30D,
                                       2,
                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                       EOpLdexp,
                                       true);
constexpr const TFunction packSnorm2x16_10B(
    BuiltInId::packSnorm2x16_Float2,
    BuiltInName::packSnorm2x16,
    TExtension::UNDEFINED,
    BuiltInParameters::p10B20B,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpPackSnorm2x16,
    true);
constexpr const TFunction packHalf2x16_10B(
    BuiltInId::packHalf2x16_Float2,
    BuiltInName::packHalf2x16,
    TExtension::UNDEFINED,
    BuiltInParameters::p10B20B,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpPackHalf2x16,
    true);
constexpr const TFunction unpackSnorm2x16_00E(
    BuiltInId::unpackSnorm2x16_UInt1,
    BuiltInName::unpackSnorm2x16,
    TExtension::UNDEFINED,
    BuiltInParameters::p00E00E00E,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpUnpackSnorm2x16,
    true);
constexpr const TFunction unpackHalf2x16_00E(
    BuiltInId::unpackHalf2x16_UInt1,
    BuiltInName::unpackHalf2x16,
    TExtension::UNDEFINED,
    BuiltInParameters::p00E00E00E,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpUnpackHalf2x16,
    true);
constexpr const TFunction packUnorm2x16_10B(
    BuiltInId::packUnorm2x16_Float2,
    BuiltInName::packUnorm2x16,
    TExtension::UNDEFINED,
    BuiltInParameters::p10B20B,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpPackUnorm2x16,
    true);
constexpr const TFunction unpackUnorm2x16_00E(
    BuiltInId::unpackUnorm2x16_UInt1,
    BuiltInName::unpackUnorm2x16,
    TExtension::UNDEFINED,
    BuiltInParameters::p00E00E00E,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpUnpackUnorm2x16,
    true);
constexpr const TFunction packUnorm4x8_30B(
    BuiltInId::packUnorm4x8_Float4,
    BuiltInName::packUnorm4x8,
    TExtension::UNDEFINED,
    BuiltInParameters::p30B00B00B,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpPackUnorm4x8,
    true);
constexpr const TFunction packSnorm4x8_30B(
    BuiltInId::packSnorm4x8_Float4,
    BuiltInName::packSnorm4x8,
    TExtension::UNDEFINED,
    BuiltInParameters::p30B00B00B,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpPackSnorm4x8,
    true);
constexpr const TFunction unpackUnorm4x8_00E(
    BuiltInId::unpackUnorm4x8_UInt1,
    BuiltInName::unpackUnorm4x8,
    TExtension::UNDEFINED,
    BuiltInParameters::p00E00E00E,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpUnpackUnorm4x8,
    true);
constexpr const TFunction unpackSnorm4x8_00E(
    BuiltInId::unpackSnorm4x8_UInt1,
    BuiltInName::unpackSnorm4x8,
    TExtension::UNDEFINED,
    BuiltInParameters::p00E00E00E,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpUnpackSnorm4x8,
    true);
constexpr const TFunction length_00B(BuiltInId::length_Float1,
                                     BuiltInName::length,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p00B30B,
                                     1,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpLength,
                                     true);
constexpr const TFunction length_10B(BuiltInId::length_Float2,
                                     BuiltInName::length,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p10B20B,
                                     1,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpLength,
                                     true);
constexpr const TFunction length_20B(BuiltInId::length_Float3,
                                     BuiltInName::length,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p20B00H,
                                     1,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpLength,
                                     true);
constexpr const TFunction length_30B(BuiltInId::length_Float4,
                                     BuiltInName::length,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p30B00B00B,
                                     1,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpLength,
                                     true);
constexpr const TFunction distance_00B00B(
    BuiltInId::distance_Float1_Float1,
    BuiltInName::distance,
    TExtension::UNDEFINED,
    BuiltInParameters::p00B00B20B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpDistance,
    true);
constexpr const TFunction distance_10B10B(
    BuiltInId::distance_Float2_Float2,
    BuiltInName::distance,
    TExtension::UNDEFINED,
    BuiltInParameters::p10B10B10F,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpDistance,
    true);
constexpr const TFunction distance_20B20B(
    BuiltInId::distance_Float3_Float3,
    BuiltInName::distance,
    TExtension::UNDEFINED,
    BuiltInParameters::p20B20B20F,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpDistance,
    true);
constexpr const TFunction distance_30B30B(
    BuiltInId::distance_Float4_Float4,
    BuiltInName::distance,
    TExtension::UNDEFINED,
    BuiltInParameters::p30B30B30F,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpDistance,
    true);
constexpr const TFunction dot_00B00B(BuiltInId::dot_Float1_Float1,
                                     BuiltInName::dot,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p00B00B20B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpDot,
                                     true);
constexpr const TFunction dot_10B10B(BuiltInId::dot_Float2_Float2,
                                     BuiltInName::dot,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p10B10B10F,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpDot,
                                     true);
constexpr const TFunction dot_20B20B(BuiltInId::dot_Float3_Float3,
                                     BuiltInName::dot,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p20B20B20F,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpDot,
                                     true);
constexpr const TFunction dot_30B30B(BuiltInId::dot_Float4_Float4,
                                     BuiltInName::dot,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p30B30B30F,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpDot,
                                     true);
constexpr const TFunction cross_20B20B(BuiltInId::cross_Float3_Float3,
                                       BuiltInName::cross,
                                       TExtension::UNDEFINED,
                                       BuiltInParameters::p20B20B20F,
                                       2,
                                       StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                       EOpCross,
                                       true);
constexpr const TFunction normalize_00B(BuiltInId::normalize_Float1,
                                        BuiltInName::normalize,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p00B30B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                        EOpNormalize,
                                        true);
constexpr const TFunction normalize_10B(BuiltInId::normalize_Float2,
                                        BuiltInName::normalize,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p10B20B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpNormalize,
                                        true);
constexpr const TFunction normalize_20B(BuiltInId::normalize_Float3,
                                        BuiltInName::normalize,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p20B00H,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpNormalize,
                                        true);
constexpr const TFunction normalize_30B(BuiltInId::normalize_Float4,
                                        BuiltInName::normalize,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p30B00B00B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                        EOpNormalize,
                                        true);
constexpr const TFunction faceforward_00B00B00B(
    BuiltInId::faceforward_Float1_Float1_Float1,
    BuiltInName::faceforward,
    TExtension::UNDEFINED,
    BuiltInParameters::p00B00B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpFaceforward,
    true);
constexpr const TFunction faceforward_10B10B10B(
    BuiltInId::faceforward_Float2_Float2_Float2,
    BuiltInName::faceforward,
    TExtension::UNDEFINED,
    BuiltInParameters::p10B10B10B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpFaceforward,
    true);
constexpr const TFunction faceforward_20B20B20B(
    BuiltInId::faceforward_Float3_Float3_Float3,
    BuiltInName::faceforward,
    TExtension::UNDEFINED,
    BuiltInParameters::p20B20B20B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpFaceforward,
    true);
constexpr const TFunction faceforward_30B30B30B(
    BuiltInId::faceforward_Float4_Float4_Float4,
    BuiltInName::faceforward,
    TExtension::UNDEFINED,
    BuiltInParameters::p30B30B30B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpFaceforward,
    true);
constexpr const TFunction reflect_00B00B(BuiltInId::reflect_Float1_Float1,
                                         BuiltInName::reflect,
                                         TExtension::UNDEFINED,
                                         BuiltInParameters::p00B00B20B,
                                         2,
                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                         EOpReflect,
                                         true);
constexpr const TFunction reflect_10B10B(BuiltInId::reflect_Float2_Float2,
                                         BuiltInName::reflect,
                                         TExtension::UNDEFINED,
                                         BuiltInParameters::p10B10B10F,
                                         2,
                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                         EOpReflect,
                                         true);
constexpr const TFunction reflect_20B20B(BuiltInId::reflect_Float3_Float3,
                                         BuiltInName::reflect,
                                         TExtension::UNDEFINED,
                                         BuiltInParameters::p20B20B20F,
                                         2,
                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                         EOpReflect,
                                         true);
constexpr const TFunction reflect_30B30B(BuiltInId::reflect_Float4_Float4,
                                         BuiltInName::reflect,
                                         TExtension::UNDEFINED,
                                         BuiltInParameters::p30B30B30F,
                                         2,
                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                         EOpReflect,
                                         true);
constexpr const TFunction refract_00B00B00B(
    BuiltInId::refract_Float1_Float1_Float1,
    BuiltInName::refract,
    TExtension::UNDEFINED,
    BuiltInParameters::p00B00B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpRefract,
    true);
constexpr const TFunction refract_10B10B00B(
    BuiltInId::refract_Float2_Float2_Float1,
    BuiltInName::refract,
    TExtension::UNDEFINED,
    BuiltInParameters::p10B10B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpRefract,
    true);
constexpr const TFunction refract_20B20B00B(
    BuiltInId::refract_Float3_Float3_Float1,
    BuiltInName::refract,
    TExtension::UNDEFINED,
    BuiltInParameters::p20B20B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpRefract,
    true);
constexpr const TFunction refract_30B30B00B(
    BuiltInId::refract_Float4_Float4_Float1,
    BuiltInName::refract,
    TExtension::UNDEFINED,
    BuiltInParameters::p30B30B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpRefract,
    true);
constexpr const TFunction matrixCompMult_50B50B(
    BuiltInId::matrixCompMult_Float2x2_Float2x2,
    BuiltInName::matrixCompMult,
    TExtension::UNDEFINED,
    BuiltInParameters::p50B50B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 2>(),
    EOpMulMatrixComponentWise,
    true);
constexpr const TFunction matrixCompMult_A0BA0B(
    BuiltInId::matrixCompMult_Float3x3_Float3x3,
    BuiltInName::matrixCompMult,
    TExtension::UNDEFINED,
    BuiltInParameters::pA0BA0B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 3>(),
    EOpMulMatrixComponentWise,
    true);
constexpr const TFunction matrixCompMult_F0BF0B(
    BuiltInId::matrixCompMult_Float4x4_Float4x4,
    BuiltInName::matrixCompMult,
    TExtension::UNDEFINED,
    BuiltInParameters::pF0BF0B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 4>(),
    EOpMulMatrixComponentWise,
    true);
constexpr const TFunction matrixCompMult_90B90B(
    BuiltInId::matrixCompMult_Float2x3_Float2x3,
    BuiltInName::matrixCompMult,
    TExtension::UNDEFINED,
    BuiltInParameters::p90B90B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 3>(),
    EOpMulMatrixComponentWise,
    true);
constexpr const TFunction matrixCompMult_60B60B(
    BuiltInId::matrixCompMult_Float3x2_Float3x2,
    BuiltInName::matrixCompMult,
    TExtension::UNDEFINED,
    BuiltInParameters::p60B60B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 2>(),
    EOpMulMatrixComponentWise,
    true);
constexpr const TFunction matrixCompMult_D0BD0B(
    BuiltInId::matrixCompMult_Float2x4_Float2x4,
    BuiltInName::matrixCompMult,
    TExtension::UNDEFINED,
    BuiltInParameters::pD0BD0B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 4>(),
    EOpMulMatrixComponentWise,
    true);
constexpr const TFunction matrixCompMult_70B70B(
    BuiltInId::matrixCompMult_Float4x2_Float4x2,
    BuiltInName::matrixCompMult,
    TExtension::UNDEFINED,
    BuiltInParameters::p70B70B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 2>(),
    EOpMulMatrixComponentWise,
    true);
constexpr const TFunction matrixCompMult_E0BE0B(
    BuiltInId::matrixCompMult_Float3x4_Float3x4,
    BuiltInName::matrixCompMult,
    TExtension::UNDEFINED,
    BuiltInParameters::pE0BE0B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 4>(),
    EOpMulMatrixComponentWise,
    true);
constexpr const TFunction matrixCompMult_B0BB0B(
    BuiltInId::matrixCompMult_Float4x3_Float4x3,
    BuiltInName::matrixCompMult,
    TExtension::UNDEFINED,
    BuiltInParameters::pB0BB0B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 3>(),
    EOpMulMatrixComponentWise,
    true);
constexpr const TFunction outerProduct_10B10B(
    BuiltInId::outerProduct_Float2_Float2,
    BuiltInName::outerProduct,
    TExtension::UNDEFINED,
    BuiltInParameters::p10B10B10F,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 2>(),
    EOpOuterProduct,
    true);
constexpr const TFunction outerProduct_20B20B(
    BuiltInId::outerProduct_Float3_Float3,
    BuiltInName::outerProduct,
    TExtension::UNDEFINED,
    BuiltInParameters::p20B20B20F,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 3>(),
    EOpOuterProduct,
    true);
constexpr const TFunction outerProduct_30B30B(
    BuiltInId::outerProduct_Float4_Float4,
    BuiltInName::outerProduct,
    TExtension::UNDEFINED,
    BuiltInParameters::p30B30B30F,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 4>(),
    EOpOuterProduct,
    true);
constexpr const TFunction outerProduct_20B10B(
    BuiltInId::outerProduct_Float3_Float2,
    BuiltInName::outerProduct,
    TExtension::UNDEFINED,
    BuiltInParameters::p20B10B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 3>(),
    EOpOuterProduct,
    true);
constexpr const TFunction outerProduct_10B20B(
    BuiltInId::outerProduct_Float2_Float3,
    BuiltInName::outerProduct,
    TExtension::UNDEFINED,
    BuiltInParameters::p10B20B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 2>(),
    EOpOuterProduct,
    true);
constexpr const TFunction outerProduct_30B10B(
    BuiltInId::outerProduct_Float4_Float2,
    BuiltInName::outerProduct,
    TExtension::UNDEFINED,
    BuiltInParameters::p30B10B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 4>(),
    EOpOuterProduct,
    true);
constexpr const TFunction outerProduct_10B30B(
    BuiltInId::outerProduct_Float2_Float4,
    BuiltInName::outerProduct,
    TExtension::UNDEFINED,
    BuiltInParameters::p10B30B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 2>(),
    EOpOuterProduct,
    true);
constexpr const TFunction outerProduct_30B20B(
    BuiltInId::outerProduct_Float4_Float3,
    BuiltInName::outerProduct,
    TExtension::UNDEFINED,
    BuiltInParameters::p30B20B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 4>(),
    EOpOuterProduct,
    true);
constexpr const TFunction outerProduct_20B30B(
    BuiltInId::outerProduct_Float3_Float4,
    BuiltInName::outerProduct,
    TExtension::UNDEFINED,
    BuiltInParameters::p20B30B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 3>(),
    EOpOuterProduct,
    true);
constexpr const TFunction transpose_50B(BuiltInId::transpose_Float2x2,
                                        BuiltInName::transpose,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p50B50B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 2>(),
                                        EOpTranspose,
                                        true);
constexpr const TFunction transpose_A0B(BuiltInId::transpose_Float3x3,
                                        BuiltInName::transpose,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::pA0BA0B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 3>(),
                                        EOpTranspose,
                                        true);
constexpr const TFunction transpose_F0B(BuiltInId::transpose_Float4x4,
                                        BuiltInName::transpose,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::pF0BF0B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 4>(),
                                        EOpTranspose,
                                        true);
constexpr const TFunction transpose_60B(BuiltInId::transpose_Float3x2,
                                        BuiltInName::transpose,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p60B60B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 3>(),
                                        EOpTranspose,
                                        true);
constexpr const TFunction transpose_90B(BuiltInId::transpose_Float2x3,
                                        BuiltInName::transpose,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p90B90B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 2>(),
                                        EOpTranspose,
                                        true);
constexpr const TFunction transpose_70B(BuiltInId::transpose_Float4x2,
                                        BuiltInName::transpose,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p70B70B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 4>(),
                                        EOpTranspose,
                                        true);
constexpr const TFunction transpose_D0B(BuiltInId::transpose_Float2x4,
                                        BuiltInName::transpose,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::pD0BD0B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 2>(),
                                        EOpTranspose,
                                        true);
constexpr const TFunction transpose_B0B(BuiltInId::transpose_Float4x3,
                                        BuiltInName::transpose,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::pB0BB0B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 4>(),
                                        EOpTranspose,
                                        true);
constexpr const TFunction transpose_E0B(BuiltInId::transpose_Float3x4,
                                        BuiltInName::transpose,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::pE0BE0B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 3>(),
                                        EOpTranspose,
                                        true);
constexpr const TFunction determinant_50B(
    BuiltInId::determinant_Float2x2,
    BuiltInName::determinant,
    TExtension::UNDEFINED,
    BuiltInParameters::p50B50B,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpDeterminant,
    true);
constexpr const TFunction determinant_A0B(
    BuiltInId::determinant_Float3x3,
    BuiltInName::determinant,
    TExtension::UNDEFINED,
    BuiltInParameters::pA0BA0B,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpDeterminant,
    true);
constexpr const TFunction determinant_F0B(
    BuiltInId::determinant_Float4x4,
    BuiltInName::determinant,
    TExtension::UNDEFINED,
    BuiltInParameters::pF0BF0B,
    1,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpDeterminant,
    true);
constexpr const TFunction inverse_50B(BuiltInId::inverse_Float2x2,
                                      BuiltInName::inverse,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p50B50B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 2>(),
                                      EOpInverse,
                                      true);
constexpr const TFunction inverse_A0B(BuiltInId::inverse_Float3x3,
                                      BuiltInName::inverse,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::pA0BA0B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 3>(),
                                      EOpInverse,
                                      true);
constexpr const TFunction inverse_F0B(BuiltInId::inverse_Float4x4,
                                      BuiltInName::inverse,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::pF0BF0B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 4>(),
                                      EOpInverse,
                                      true);
constexpr const TFunction lessThan_10B10B(BuiltInId::lessThan_Float2_Float2,
                                          BuiltInName::lessThan,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p10B10B10F,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                          EOpLessThanComponentWise,
                                          true);
constexpr const TFunction lessThan_20B20B(BuiltInId::lessThan_Float3_Float3,
                                          BuiltInName::lessThan,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p20B20B20F,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                          EOpLessThanComponentWise,
                                          true);
constexpr const TFunction lessThan_30B30B(BuiltInId::lessThan_Float4_Float4,
                                          BuiltInName::lessThan,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p30B30B30F,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                          EOpLessThanComponentWise,
                                          true);
constexpr const TFunction lessThan_10D10D(BuiltInId::lessThan_Int2_Int2,
                                          BuiltInName::lessThan,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p10D10D10D,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                          EOpLessThanComponentWise,
                                          true);
constexpr const TFunction lessThan_20D20D(BuiltInId::lessThan_Int3_Int3,
                                          BuiltInName::lessThan,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p20D20D00D00D,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                          EOpLessThanComponentWise,
                                          true);
constexpr const TFunction lessThan_30D30D(BuiltInId::lessThan_Int4_Int4,
                                          BuiltInName::lessThan,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p30D30D_o_30D_o_30D,
                                          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::p30D30D_o_30D_o_30D,
    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::p30D30D_o_30D_o_30D,
    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::p30D30D_o_30D_o_30D,
    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::p30D30D_o_30D_o_30D,
                                       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::p10F10F10F,
                                       2,
                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                       EOpEqualComponentWise,
                                       true);
constexpr const TFunction equal_20F20F(BuiltInId::equal_Bool3_Bool3,
                                       BuiltInName::equal,
                                       TExtension::UNDEFINED,
                                       BuiltInParameters::p20F20F20F,
                                       2,
                                       StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                       EOpEqualComponentWise,
                                       true);
constexpr const TFunction equal_30F30F(BuiltInId::equal_Bool4_Bool4,
                                       BuiltInName::equal,
                                       TExtension::UNDEFINED,
                                       BuiltInParameters::p30F30F30F,
                                       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::p30D30D_o_30D_o_30D,
                                          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::p10F10F10F,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                          EOpNotEqualComponentWise,
                                          true);
constexpr const TFunction notEqual_20F20F(BuiltInId::notEqual_Bool3_Bool3,
                                          BuiltInName::notEqual,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p20F20F20F,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                          EOpNotEqualComponentWise,
                                          true);
constexpr const TFunction notEqual_30F30F(BuiltInId::notEqual_Bool4_Bool4,
                                          BuiltInName::notEqual,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p30F30F30F,
                                          2,
                                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                          EOpNotEqualComponentWise,
                                          true);
constexpr const TFunction any_10F(BuiltInId::any_Bool2,
                                  BuiltInName::any,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p10F10F10F,
                                  1,
                                  StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
                                  EOpAny,
                                  true);
constexpr const TFunction any_20F(BuiltInId::any_Bool3,
                                  BuiltInName::any,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p20F20F20F,
                                  1,
                                  StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
                                  EOpAny,
                                  true);
constexpr const TFunction any_30F(BuiltInId::any_Bool4,
                                  BuiltInName::any,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p30F30F30F,
                                  1,
                                  StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
                                  EOpAny,
                                  true);
constexpr const TFunction all_10F(BuiltInId::all_Bool2,
                                  BuiltInName::all,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p10F10F10F,
                                  1,
                                  StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
                                  EOpAll,
                                  true);
constexpr const TFunction all_20F(BuiltInId::all_Bool3,
                                  BuiltInName::all,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p20F20F20F,
                                  1,
                                  StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
                                  EOpAll,
                                  true);
constexpr const TFunction all_30F(BuiltInId::all_Bool4,
                                  BuiltInName::all,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p30F30F30F,
                                  1,
                                  StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
                                  EOpAll,
                                  true);
constexpr const TFunction notFunc_10F(BuiltInId::notFunc_Bool2,
                                      BuiltInName::notFunc,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p10F10F10F,
                                      1,
                                      StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                      EOpLogicalNotComponentWise,
                                      true);
constexpr const TFunction notFunc_20F(BuiltInId::notFunc_Bool3,
                                      BuiltInName::notFunc,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p20F20F20F,
                                      1,
                                      StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                      EOpLogicalNotComponentWise,
                                      true);
constexpr const TFunction notFunc_30F(BuiltInId::notFunc_Bool4,
                                      BuiltInName::notFunc,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p30F30F30F,
                                      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::p00D00D00F,
    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::p30D30D_o_30D_o_30D,
    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::p00D00D00F,
                                       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::p30D30D_o_30D_o_30D,
                                       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::p00D00D00F,
                                      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::p30D30D_o_30D_o_30D,
                                      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::p00D00D00F,
                                      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::p30D30D_o_30D_o_30D,
                                      1,
                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                      EOpFindMSB,
                                      true);
constexpr const TFunction findMSB_00E(BuiltInId::findMSB_UInt1,
                                      BuiltInName::findMSB,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p00E00E00E,
                                      1,
                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                      EOpFindMSB,
                                      true);
constexpr const TFunction findMSB_10E(BuiltInId::findMSB_UInt2,
                                      BuiltInName::findMSB,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p10E00D00D,
                                      1,
                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                      EOpFindMSB,
                                      true);
constexpr const TFunction findMSB_20E(BuiltInId::findMSB_UInt3,
                                      BuiltInName::findMSB,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p20E20E00D00D,
                                      1,
                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                      EOpFindMSB,
                                      true);
constexpr const TFunction findMSB_30E(BuiltInId::findMSB_UInt4,
                                      BuiltInName::findMSB,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p30E30E00D00D,
                                      1,
                                      StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                      EOpFindMSB,
                                      true);
constexpr const TFunction uaddCarry_00E00E00E(
    BuiltInId::uaddCarry_UInt1_UInt1_UInt1,
    BuiltInName::uaddCarry,
    TExtension::UNDEFINED,
    BuiltInParameters::p00E00E_o_00E_o_00E,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpUaddCarry,
    false);
constexpr const TFunction uaddCarry_10E10E10E(
    BuiltInId::uaddCarry_UInt2_UInt2_UInt2,
    BuiltInName::uaddCarry,
    TExtension::UNDEFINED,
    BuiltInParameters::p10E10E_o_10E_o_10E,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpUaddCarry,
    false);
constexpr const TFunction uaddCarry_20E20E20E(
    BuiltInId::uaddCarry_UInt3_UInt3_UInt3,
    BuiltInName::uaddCarry,
    TExtension::UNDEFINED,
    BuiltInParameters::p20E20E_o_20E_o_20E,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpUaddCarry,
    false);
constexpr const TFunction uaddCarry_30E30E30E(
    BuiltInId::uaddCarry_UInt4_UInt4_UInt4,
    BuiltInName::uaddCarry,
    TExtension::UNDEFINED,
    BuiltInParameters::p30E30E_o_30E_o_30E,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpUaddCarry,
    false);
constexpr const TFunction usubBorrow_00E00E00E(
    BuiltInId::usubBorrow_UInt1_UInt1_UInt1,
    BuiltInName::usubBorrow,
    TExtension::UNDEFINED,
    BuiltInParameters::p00E00E_o_00E_o_00E,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpUsubBorrow,
    false);
constexpr const TFunction usubBorrow_10E10E10E(
    BuiltInId::usubBorrow_UInt2_UInt2_UInt2,
    BuiltInName::usubBorrow,
    TExtension::UNDEFINED,
    BuiltInParameters::p10E10E_o_10E_o_10E,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
    EOpUsubBorrow,
    false);
constexpr const TFunction usubBorrow_20E20E20E(
    BuiltInId::usubBorrow_UInt3_UInt3_UInt3,
    BuiltInName::usubBorrow,
    TExtension::UNDEFINED,
    BuiltInParameters::p20E20E_o_20E_o_20E,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
    EOpUsubBorrow,
    false);
constexpr const TFunction usubBorrow_30E30E30E(
    BuiltInId::usubBorrow_UInt4_UInt4_UInt4,
    BuiltInName::usubBorrow,
    TExtension::UNDEFINED,
    BuiltInParameters::p30E30E_o_30E_o_30E,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpUsubBorrow,
    false);
constexpr const TFunction umulExtended_00E00E00E00E(
    BuiltInId::umulExtended_UInt1_UInt1_UInt1_UInt1,
    BuiltInName::umulExtended,
    TExtension::UNDEFINED,
    BuiltInParameters::p00E00E_o_00E_o_00E,
    4,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpUmulExtended,
    false);
constexpr const TFunction umulExtended_10E10E10E10E(
    BuiltInId::umulExtended_UInt2_UInt2_UInt2_UInt2,
    BuiltInName::umulExtended,
    TExtension::UNDEFINED,
    BuiltInParameters::p10E10E_o_10E_o_10E,
    4,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpUmulExtended,
    false);
constexpr const TFunction umulExtended_20E20E20E20E(
    BuiltInId::umulExtended_UInt3_UInt3_UInt3_UInt3,
    BuiltInName::umulExtended,
    TExtension::UNDEFINED,
    BuiltInParameters::p20E20E_o_20E_o_20E,
    4,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpUmulExtended,
    false);
constexpr const TFunction umulExtended_30E30E30E30E(
    BuiltInId::umulExtended_UInt4_UInt4_UInt4_UInt4,
    BuiltInName::umulExtended,
    TExtension::UNDEFINED,
    BuiltInParameters::p30E30E_o_30E_o_30E,
    4,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpUmulExtended,
    false);
constexpr const TFunction imulExtended_00D00D00D00D(
    BuiltInId::imulExtended_Int1_Int1_Int1_Int1,
    BuiltInName::imulExtended,
    TExtension::UNDEFINED,
    BuiltInParameters::p00D00D_o_00D_o_00D,
    4,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImulExtended,
    false);
constexpr const TFunction imulExtended_10D10D10D10D(
    BuiltInId::imulExtended_Int2_Int2_Int2_Int2,
    BuiltInName::imulExtended,
    TExtension::UNDEFINED,
    BuiltInParameters::p10D10D_o_10D_o_10D,
    4,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImulExtended,
    false);
constexpr const TFunction imulExtended_20D20D20D20D(
    BuiltInId::imulExtended_Int3_Int3_Int3_Int3,
    BuiltInName::imulExtended,
    TExtension::UNDEFINED,
    BuiltInParameters::p20D20D_o_20D_o_20D,
    4,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImulExtended,
    false);
constexpr const TFunction imulExtended_30D30D30D30D(
    BuiltInId::imulExtended_Int4_Int4_Int4_Int4,
    BuiltInName::imulExtended,
    TExtension::UNDEFINED,
    BuiltInParameters::p30D30D_o_30D_o_30D,
    4,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpImulExtended,
    false);
constexpr const TFunction texture2D_00I10B(
    BuiltInId::texture2D_Sampler2D1_Float2,
    BuiltInName::texture2D,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I10B00D,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture2DProj_00I20B(
    BuiltInId::texture2DProj_Sampler2D1_Float3,
    BuiltInName::texture2DProj,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I20B10B10B10D,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture2DProj_00I30B(
    BuiltInId::texture2DProj_Sampler2D1_Float4,
    BuiltInName::texture2DProj,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I30B10D00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureCube_00K20B(
    BuiltInId::textureCube_SamplerCube1_Float3,
    BuiltInName::textureCube,
    TExtension::UNDEFINED,
    BuiltInParameters::p00K20B20B20B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture2D_00M10B(
    BuiltInId::texture2D_SamplerExternalOES1_Float2,
    BuiltInName::texture2D,
    TExtension::UNDEFINED,
    BuiltInParameters::p00M10B00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture2DProj_00M20B(
    BuiltInId::texture2DProj_SamplerExternalOES1_Float3,
    BuiltInName::texture2DProj,
    TExtension::UNDEFINED,
    BuiltInParameters::p00M20B00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture2DProj_00M30B(
    BuiltInId::texture2DProj_SamplerExternalOES1_Float4,
    BuiltInName::texture2DProj,
    TExtension::UNDEFINED,
    BuiltInParameters::p00M30B00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture2DRect_00O10B(
    BuiltInId::texture2DRect_Sampler2DRect1_Float2,
    BuiltInName::texture2DRect,
    TExtension::ARB_texture_rectangle,
    BuiltInParameters::p00O10B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture2DRectProj_00O20B(
    BuiltInId::texture2DRectProj_Sampler2DRect1_Float3,
    BuiltInName::texture2DRectProj,
    TExtension::ARB_texture_rectangle,
    BuiltInParameters::p00O20B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture2DRectProj_00O30B(
    BuiltInId::texture2DRectProj_Sampler2DRect1_Float4,
    BuiltInName::texture2DRectProj,
    TExtension::ARB_texture_rectangle,
    BuiltInParameters::p00O30B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture_00O10B(BuiltInId::texture_Sampler2DRect1_Float2,
                                         BuiltInName::texture,
                                         TExtension::ARB_texture_rectangle,
                                         BuiltInParameters::p00O10B,
                                         2,
                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                         EOpCallBuiltInFunction,
                                         false);
constexpr const TFunction textureProj_00O20B(
    BuiltInId::textureProj_Sampler2DRect1_Float3,
    BuiltInName::textureProj,
    TExtension::ARB_texture_rectangle,
    BuiltInParameters::p00O20B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureProj_00O30B(
    BuiltInId::textureProj_Sampler2DRect1_Float4,
    BuiltInName::textureProj,
    TExtension::ARB_texture_rectangle,
    BuiltInParameters::p00O30B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture2DGradEXT_00I10B10B10B(
    BuiltInId::texture2DGradEXT_Sampler2D1_Float2_Float2_Float2,
    BuiltInName::texture2DGradEXT,
    TExtension::EXT_shader_texture_lod,
    BuiltInParameters::p00I10B10B10B10D,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture2DProjGradEXT_00I20B10B10B(
    BuiltInId::texture2DProjGradEXT_Sampler2D1_Float3_Float2_Float2,
    BuiltInName::texture2DProjGradEXT,
    TExtension::EXT_shader_texture_lod,
    BuiltInParameters::p00I20B10B10B10D,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture2DProjGradEXT_00I30B10B10B(
    BuiltInId::texture2DProjGradEXT_Sampler2D1_Float4_Float2_Float2,
    BuiltInName::texture2DProjGradEXT,
    TExtension::EXT_shader_texture_lod,
    BuiltInParameters::p00I30B10B10B10D,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureCubeGradEXT_00K20B20B20B(
    BuiltInId::textureCubeGradEXT_SamplerCube1_Float3_Float3_Float3,
    BuiltInName::textureCubeGradEXT,
    TExtension::EXT_shader_texture_lod,
    BuiltInParameters::p00K20B20B20B,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture2D_00I10B00B(
    BuiltInId::texture2D_Sampler2D1_Float2_Float1,
    BuiltInName::texture2D,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I10B00B10D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture2DProj_00I20B00B(
    BuiltInId::texture2DProj_Sampler2D1_Float3_Float1,
    BuiltInName::texture2DProj,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I20B00B10D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture2DProj_00I30B00B(
    BuiltInId::texture2DProj_Sampler2D1_Float4_Float1,
    BuiltInName::texture2DProj,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I30B00B10D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureCube_00K20B00B(
    BuiltInId::textureCube_SamplerCube1_Float3_Float1,
    BuiltInName::textureCube,
    TExtension::UNDEFINED,
    BuiltInParameters::p00K20B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction dFdxExt_00B(BuiltInId::dFdxExt_Float1,
                                      BuiltInName::dFdxExt,
                                      TExtension::OES_standard_derivatives,
                                      BuiltInParameters::p00B30B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                      EOpDFdx,
                                      false);
constexpr const TFunction dFdxExt_10B(BuiltInId::dFdxExt_Float2,
                                      BuiltInName::dFdxExt,
                                      TExtension::OES_standard_derivatives,
                                      BuiltInParameters::p10B20B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                      EOpDFdx,
                                      false);
constexpr const TFunction dFdxExt_20B(BuiltInId::dFdxExt_Float3,
                                      BuiltInName::dFdxExt,
                                      TExtension::OES_standard_derivatives,
                                      BuiltInParameters::p20B00H,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                      EOpDFdx,
                                      false);
constexpr const TFunction dFdxExt_30B(BuiltInId::dFdxExt_Float4,
                                      BuiltInName::dFdxExt,
                                      TExtension::OES_standard_derivatives,
                                      BuiltInParameters::p30B00B00B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                      EOpDFdx,
                                      false);
constexpr const TFunction dFdyExt_00B(BuiltInId::dFdyExt_Float1,
                                      BuiltInName::dFdyExt,
                                      TExtension::OES_standard_derivatives,
                                      BuiltInParameters::p00B30B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                      EOpDFdy,
                                      false);
constexpr const TFunction dFdyExt_10B(BuiltInId::dFdyExt_Float2,
                                      BuiltInName::dFdyExt,
                                      TExtension::OES_standard_derivatives,
                                      BuiltInParameters::p10B20B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                      EOpDFdy,
                                      false);
constexpr const TFunction dFdyExt_20B(BuiltInId::dFdyExt_Float3,
                                      BuiltInName::dFdyExt,
                                      TExtension::OES_standard_derivatives,
                                      BuiltInParameters::p20B00H,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                      EOpDFdy,
                                      false);
constexpr const TFunction dFdyExt_30B(BuiltInId::dFdyExt_Float4,
                                      BuiltInName::dFdyExt,
                                      TExtension::OES_standard_derivatives,
                                      BuiltInParameters::p30B00B00B,
                                      1,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                      EOpDFdy,
                                      false);
constexpr const TFunction fwidthExt_00B(BuiltInId::fwidthExt_Float1,
                                        BuiltInName::fwidthExt,
                                        TExtension::OES_standard_derivatives,
                                        BuiltInParameters::p00B30B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                        EOpFwidth,
                                        false);
constexpr const TFunction fwidthExt_10B(BuiltInId::fwidthExt_Float2,
                                        BuiltInName::fwidthExt,
                                        TExtension::OES_standard_derivatives,
                                        BuiltInParameters::p10B20B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpFwidth,
                                        false);
constexpr const TFunction fwidthExt_20B(BuiltInId::fwidthExt_Float3,
                                        BuiltInName::fwidthExt,
                                        TExtension::OES_standard_derivatives,
                                        BuiltInParameters::p20B00H,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpFwidth,
                                        false);
constexpr const TFunction fwidthExt_30B(BuiltInId::fwidthExt_Float4,
                                        BuiltInName::fwidthExt,
                                        TExtension::OES_standard_derivatives,
                                        BuiltInParameters::p30B00B00B,
                                        1,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                        EOpFwidth,
                                        false);
constexpr const TFunction texture2DLodEXT_00I10B00B(
    BuiltInId::texture2DLodEXT_Sampler2D1_Float2_Float1,
    BuiltInName::texture2DLodEXT,
    TExtension::EXT_shader_texture_lod,
    BuiltInParameters::p00I10B00B10D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture2DProjLodEXT_00I20B00B(
    BuiltInId::texture2DProjLodEXT_Sampler2D1_Float3_Float1,
    BuiltInName::texture2DProjLodEXT,
    TExtension::EXT_shader_texture_lod,
    BuiltInParameters::p00I20B00B10D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture2DProjLodEXT_00I30B00B(
    BuiltInId::texture2DProjLodEXT_Sampler2D1_Float4_Float1,
    BuiltInName::texture2DProjLodEXT,
    TExtension::EXT_shader_texture_lod,
    BuiltInParameters::p00I30B00B10D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureCubeLodEXT_00K20B00B(
    BuiltInId::textureCubeLodEXT_SamplerCube1_Float3_Float1,
    BuiltInName::textureCubeLodEXT,
    TExtension::EXT_shader_texture_lod,
    BuiltInParameters::p00K20B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture3D_00J20B(
    BuiltInId::texture3D_Sampler3D1_Float3,
    BuiltInName::texture3D,
    TExtension::OES_texture_3D,
    BuiltInParameters::p00J20B20D00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture3DProj_00J30B(
    BuiltInId::texture3DProj_Sampler3D1_Float4,
    BuiltInName::texture3DProj,
    TExtension::OES_texture_3D,
    BuiltInParameters::p00J30B20B20B20D,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture3D_00J20B00B(
    BuiltInId::texture3D_Sampler3D1_Float3_Float1,
    BuiltInName::texture3D,
    TExtension::OES_texture_3D,
    BuiltInParameters::p00J20B00B20D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture3DProj_00J30B00B(
    BuiltInId::texture3DProj_Sampler3D1_Float4_Float1,
    BuiltInName::texture3DProj,
    TExtension::OES_texture_3D,
    BuiltInParameters::p00J30B00B20D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture3DLod_00J20B00B(
    BuiltInId::texture3DLod_Sampler3D1_Float3_Float1,
    BuiltInName::texture3DLod,
    TExtension::OES_texture_3D,
    BuiltInParameters::p00J20B00B20D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture3DProjLod_00J30B00B(
    BuiltInId::texture3DProjLod_Sampler3D1_Float4_Float1,
    BuiltInName::texture3DProjLod,
    TExtension::OES_texture_3D,
    BuiltInParameters::p00J30B00B20D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture2DLod_00I10B00B(
    BuiltInId::texture2DLod_Sampler2D1_Float2_Float1,
    BuiltInName::texture2DLod,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I10B00B10D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture2DProjLod_00I20B00B(
    BuiltInId::texture2DProjLod_Sampler2D1_Float3_Float1,
    BuiltInName::texture2DProjLod,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I20B00B10D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture2DProjLod_00I30B00B(
    BuiltInId::texture2DProjLod_Sampler2D1_Float4_Float1,
    BuiltInName::texture2DProjLod,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I30B00B10D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureCubeLod_00K20B00B(
    BuiltInId::textureCubeLod_SamplerCube1_Float3_Float1,
    BuiltInName::textureCubeLod,
    TExtension::UNDEFINED,
    BuiltInParameters::p00K20B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture_00I10B(BuiltInId::texture_Sampler2D1_Float2,
                                         BuiltInName::texture,
                                         TExtension::UNDEFINED,
                                         BuiltInParameters::p00I10B00D,
                                         2,
                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                         EOpCallBuiltInFunction,
                                         false);
constexpr const TFunction texture_00R10B(BuiltInId::texture_ISampler2D1_Float2,
                                         BuiltInName::texture,
                                         TExtension::UNDEFINED,
                                         BuiltInParameters::p00R10B00B10D,
                                         2,
                                         StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                         EOpCallBuiltInFunction,
                                         false);
constexpr const TFunction texture_00X10B(BuiltInId::texture_USampler2D1_Float2,
                                         BuiltInName::texture,
                                         TExtension::UNDEFINED,
                                         BuiltInParameters::p00X10B10Dx400D,
                                         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::p00S20B00B20D,
                                         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::p00T20B00B,
                                         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::p00a20B10Dx400D,
                                         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::p00R10B10Dx400D,
    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::p00X10B10Dx400D,
    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::p00a20B10Dx400D,
    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::p00X10B10Dx400D,
    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::p00a20B10Dx400D,
    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::p00T20B00B,
    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::p00d10B00B10Dx4,
    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::p00d10B00B10Dx4,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGather_00f20B(
    BuiltInId::textureGather_Sampler2DArrayShadow1_Float3,
    BuiltInName::textureGather,
    TExtension::UNDEFINED,
    BuiltInParameters::p00f20B00B10Dx4,
    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::p00f20B00B10Dx4,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGather_00e20B(
    BuiltInId::textureGather_SamplerCubeShadow1_Float3,
    BuiltInName::textureGather,
    TExtension::UNDEFINED,
    BuiltInParameters::p00e20B00B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGather_00e20B00B(
    BuiltInId::textureGather_SamplerCubeShadow1_Float3_Float1,
    BuiltInName::textureGather,
    TExtension::UNDEFINED,
    BuiltInParameters::p00e20B00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsets_00I10B10Dx400D(
    BuiltInId::textureGatherOffsets_Sampler2D1_Float2_4xInt2_Int1,
    BuiltInName::textureGatherOffsets,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I10B10Dx400D,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsets_00R10B10Dx400D(
    BuiltInId::textureGatherOffsets_ISampler2D1_Float2_4xInt2_Int1,
    BuiltInName::textureGatherOffsets,
    TExtension::UNDEFINED,
    BuiltInParameters::p00R10B10Dx400D,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsets_00X10B10Dx400D(
    BuiltInId::textureGatherOffsets_USampler2D1_Float2_4xInt2_Int1,
    BuiltInName::textureGatherOffsets,
    TExtension::UNDEFINED,
    BuiltInParameters::p00X10B10Dx400D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsets_00L20B10Dx400D(
    BuiltInId::textureGatherOffsets_Sampler2DArray1_Float3_4xInt2_Int1,
    BuiltInName::textureGatherOffsets,
    TExtension::UNDEFINED,
    BuiltInParameters::p00L20B10Dx400D,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsets_00U20B10Dx400D(
    BuiltInId::textureGatherOffsets_ISampler2DArray1_Float3_4xInt2_Int1,
    BuiltInName::textureGatherOffsets,
    TExtension::UNDEFINED,
    BuiltInParameters::p00U20B10Dx400D,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsets_00a20B10Dx400D(
    BuiltInId::textureGatherOffsets_USampler2DArray1_Float3_4xInt2_Int1,
    BuiltInName::textureGatherOffsets,
    TExtension::UNDEFINED,
    BuiltInParameters::p00a20B10Dx400D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsetsExt_00I10B10Dx400D(
    BuiltInId::textureGatherOffsetsExt_Sampler2D1_Float2_4xInt2_Int1,
    BuiltInName::textureGatherOffsetsExt,
    TExtension::EXT_gpu_shader5,
    BuiltInParameters::p00I10B10Dx400D,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsetsExt_00R10B10Dx400D(
    BuiltInId::textureGatherOffsetsExt_ISampler2D1_Float2_4xInt2_Int1,
    BuiltInName::textureGatherOffsetsExt,
    TExtension::EXT_gpu_shader5,
    BuiltInParameters::p00R10B10Dx400D,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsetsExt_00X10B10Dx400D(
    BuiltInId::textureGatherOffsetsExt_USampler2D1_Float2_4xInt2_Int1,
    BuiltInName::textureGatherOffsetsExt,
    TExtension::EXT_gpu_shader5,
    BuiltInParameters::p00X10B10Dx400D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsetsExt_00L20B10Dx400D(
    BuiltInId::textureGatherOffsetsExt_Sampler2DArray1_Float3_4xInt2_Int1,
    BuiltInName::textureGatherOffsetsExt,
    TExtension::EXT_gpu_shader5,
    BuiltInParameters::p00L20B10Dx400D,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsetsExt_00U20B10Dx400D(
    BuiltInId::textureGatherOffsetsExt_ISampler2DArray1_Float3_4xInt2_Int1,
    BuiltInName::textureGatherOffsetsExt,
    TExtension::EXT_gpu_shader5,
    BuiltInParameters::p00U20B10Dx400D,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsetsExt_00a20B10Dx400D(
    BuiltInId::textureGatherOffsetsExt_USampler2DArray1_Float3_4xInt2_Int1,
    BuiltInName::textureGatherOffsetsExt,
    TExtension::EXT_gpu_shader5,
    BuiltInParameters::p00a20B10Dx400D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsets_00I10B10Dx4(
    BuiltInId::textureGatherOffsets_Sampler2D1_Float2_4xInt2,
    BuiltInName::textureGatherOffsets,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I10B10Dx400D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsets_00R10B10Dx4(
    BuiltInId::textureGatherOffsets_ISampler2D1_Float2_4xInt2,
    BuiltInName::textureGatherOffsets,
    TExtension::UNDEFINED,
    BuiltInParameters::p00R10B10Dx400D,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsets_00X10B10Dx4(
    BuiltInId::textureGatherOffsets_USampler2D1_Float2_4xInt2,
    BuiltInName::textureGatherOffsets,
    TExtension::UNDEFINED,
    BuiltInParameters::p00X10B10Dx400D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsets_00L20B10Dx4(
    BuiltInId::textureGatherOffsets_Sampler2DArray1_Float3_4xInt2,
    BuiltInName::textureGatherOffsets,
    TExtension::UNDEFINED,
    BuiltInParameters::p00L20B10Dx400D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsets_00U20B10Dx4(
    BuiltInId::textureGatherOffsets_ISampler2DArray1_Float3_4xInt2,
    BuiltInName::textureGatherOffsets,
    TExtension::UNDEFINED,
    BuiltInParameters::p00U20B10Dx400D,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsets_00a20B10Dx4(
    BuiltInId::textureGatherOffsets_USampler2DArray1_Float3_4xInt2,
    BuiltInName::textureGatherOffsets,
    TExtension::UNDEFINED,
    BuiltInParameters::p00a20B10Dx400D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsets_00d10B00B10Dx4(
    BuiltInId::textureGatherOffsets_Sampler2DShadow1_Float2_Float1_4xInt2,
    BuiltInName::textureGatherOffsets,
    TExtension::UNDEFINED,
    BuiltInParameters::p00d10B00B10Dx4,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsets_00f20B00B10Dx4(
    BuiltInId::textureGatherOffsets_Sampler2DArrayShadow1_Float3_Float1_4xInt2,
    BuiltInName::textureGatherOffsets,
    TExtension::UNDEFINED,
    BuiltInParameters::p00f20B00B10Dx4,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsetsExt_00I10B10Dx4(
    BuiltInId::textureGatherOffsetsExt_Sampler2D1_Float2_4xInt2,
    BuiltInName::textureGatherOffsetsExt,
    TExtension::EXT_gpu_shader5,
    BuiltInParameters::p00I10B10Dx400D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsetsExt_00R10B10Dx4(
    BuiltInId::textureGatherOffsetsExt_ISampler2D1_Float2_4xInt2,
    BuiltInName::textureGatherOffsetsExt,
    TExtension::EXT_gpu_shader5,
    BuiltInParameters::p00R10B10Dx400D,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsetsExt_00X10B10Dx4(
    BuiltInId::textureGatherOffsetsExt_USampler2D1_Float2_4xInt2,
    BuiltInName::textureGatherOffsetsExt,
    TExtension::EXT_gpu_shader5,
    BuiltInParameters::p00X10B10Dx400D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsetsExt_00L20B10Dx4(
    BuiltInId::textureGatherOffsetsExt_Sampler2DArray1_Float3_4xInt2,
    BuiltInName::textureGatherOffsetsExt,
    TExtension::EXT_gpu_shader5,
    BuiltInParameters::p00L20B10Dx400D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsetsExt_00U20B10Dx4(
    BuiltInId::textureGatherOffsetsExt_ISampler2DArray1_Float3_4xInt2,
    BuiltInName::textureGatherOffsetsExt,
    TExtension::EXT_gpu_shader5,
    BuiltInParameters::p00U20B10Dx400D,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsetsExt_00a20B10Dx4(
    BuiltInId::textureGatherOffsetsExt_USampler2DArray1_Float3_4xInt2,
    BuiltInName::textureGatherOffsetsExt,
    TExtension::EXT_gpu_shader5,
    BuiltInParameters::p00a20B10Dx400D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsetsExt_00d10B00B10Dx4(
    BuiltInId::textureGatherOffsetsExt_Sampler2DShadow1_Float2_Float1_4xInt2,
    BuiltInName::textureGatherOffsetsExt,
    TExtension::EXT_gpu_shader5,
    BuiltInParameters::p00d10B00B10Dx4,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffsetsExt_00f20B00B10Dx4(
    BuiltInId::textureGatherOffsetsExt_Sampler2DArrayShadow1_Float3_Float1_4xInt2,
    BuiltInName::textureGatherOffsetsExt,
    TExtension::EXT_gpu_shader5,
    BuiltInParameters::p00f20B00B10Dx4,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffset_00I10B10D00D(
    BuiltInId::textureGatherOffset_Sampler2D1_Float2_Int2_Int1,
    BuiltInName::textureGatherOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I10B10D00D,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffset_00R10B10D00D(
    BuiltInId::textureGatherOffset_ISampler2D1_Float2_Int2_Int1,
    BuiltInName::textureGatherOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00R10B10D00D,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffset_00X10B10D00D(
    BuiltInId::textureGatherOffset_USampler2D1_Float2_Int2_Int1,
    BuiltInName::textureGatherOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00X10B10D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffset_00L20B10D00D(
    BuiltInId::textureGatherOffset_Sampler2DArray1_Float3_Int2_Int1,
    BuiltInName::textureGatherOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00L20B10D00D,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffset_00U20B10D00D(
    BuiltInId::textureGatherOffset_ISampler2DArray1_Float3_Int2_Int1,
    BuiltInName::textureGatherOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00U20B10D00D,
    4,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffset_00a20B10D00D(
    BuiltInId::textureGatherOffset_USampler2DArray1_Float3_Int2_Int1,
    BuiltInName::textureGatherOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00a20B10D00D,
    4,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffset_00I10B10D(
    BuiltInId::textureGatherOffset_Sampler2D1_Float2_Int2,
    BuiltInName::textureGatherOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00I10B10D00B,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffset_00R10B10D(
    BuiltInId::textureGatherOffset_ISampler2D1_Float2_Int2,
    BuiltInName::textureGatherOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00R10B10Dx400D,
    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::p00X10B10Dx400D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffset_00L20B10D(
    BuiltInId::textureGatherOffset_Sampler2DArray1_Float3_Int2,
    BuiltInName::textureGatherOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00L20B10D00D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffset_00U20B10D(
    BuiltInId::textureGatherOffset_ISampler2DArray1_Float3_Int2,
    BuiltInName::textureGatherOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00U20B10D00D,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffset_00a20B10D(
    BuiltInId::textureGatherOffset_USampler2DArray1_Float3_Int2,
    BuiltInName::textureGatherOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00a20B10Dx400D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction textureGatherOffset_00d10B00B10D(
    BuiltInId::textureGatherOffset_Sampler2DShadow1_Float2_Float1_Int2,
    BuiltInName::textureGatherOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00d10B00B10Dx4,
    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::p00f20B00B10Dx4,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction dFdx_00B(BuiltInId::dFdx_Float1,
                                   BuiltInName::dFdx,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00B30B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpDFdx,
                                   false);
constexpr const TFunction dFdx_10B(BuiltInId::dFdx_Float2,
                                   BuiltInName::dFdx,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p10B20B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpDFdx,
                                   false);
constexpr const TFunction dFdx_20B(BuiltInId::dFdx_Float3,
                                   BuiltInName::dFdx,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p20B00H,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpDFdx,
                                   false);
constexpr const TFunction dFdx_30B(BuiltInId::dFdx_Float4,
                                   BuiltInName::dFdx,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p30B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpDFdx,
                                   false);
constexpr const TFunction dFdy_00B(BuiltInId::dFdy_Float1,
                                   BuiltInName::dFdy,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00B30B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpDFdy,
                                   false);
constexpr const TFunction dFdy_10B(BuiltInId::dFdy_Float2,
                                   BuiltInName::dFdy,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p10B20B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpDFdy,
                                   false);
constexpr const TFunction dFdy_20B(BuiltInId::dFdy_Float3,
                                   BuiltInName::dFdy,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p20B00H,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpDFdy,
                                   false);
constexpr const TFunction dFdy_30B(BuiltInId::dFdy_Float4,
                                   BuiltInName::dFdy,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p30B00B00B,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpDFdy,
                                   false);
constexpr const TFunction fwidth_00B(BuiltInId::fwidth_Float1,
                                     BuiltInName::fwidth,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p00B30B,
                                     1,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpFwidth,
                                     false);
constexpr const TFunction fwidth_10B(BuiltInId::fwidth_Float2,
                                     BuiltInName::fwidth,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p10B20B,
                                     1,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                     EOpFwidth,
                                     false);
constexpr const TFunction fwidth_20B(BuiltInId::fwidth_Float3,
                                     BuiltInName::fwidth,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p20B00H,
                                     1,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                     EOpFwidth,
                                     false);
constexpr const TFunction fwidth_30B(BuiltInId::fwidth_Float4,
                                     BuiltInName::fwidth,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p30B00B00B,
                                     1,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpFwidth,
                                     false);
constexpr const TFunction atomicCounter_00G(
    BuiltInId::atomicCounter_AtomicCounter1,
    BuiltInName::atomicCounter,
    TExtension::UNDEFINED,
    BuiltInParameters::p00G,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction atomicCounterIncrement_00G(
    BuiltInId::atomicCounterIncrement_AtomicCounter1,
    BuiltInName::atomicCounterIncrement,
    TExtension::UNDEFINED,
    BuiltInParameters::p00G,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction atomicCounterDecrement_00G(
    BuiltInId::atomicCounterDecrement_AtomicCounter1,
    BuiltInName::atomicCounterDecrement,
    TExtension::UNDEFINED,
    BuiltInParameters::p00G,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction atomicAdd_00E00E(
    BuiltInId::atomicAdd_UInt1_UInt1,
    BuiltInName::atomicAdd,
    TExtension::UNDEFINED,
    BuiltInParameters::p_io_00E00E00E,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpAtomicAdd,
    false);
constexpr const TFunction atomicAdd_00D00D(BuiltInId::atomicAdd_Int1_Int1,
                                           BuiltInName::atomicAdd,
                                           TExtension::UNDEFINED,
                                           BuiltInParameters::p_io_00D00D00D,
                                           2,
                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                           EOpAtomicAdd,
                                           false);
constexpr const TFunction atomicMin_00E00E(
    BuiltInId::atomicMin_UInt1_UInt1,
    BuiltInName::atomicMin,
    TExtension::UNDEFINED,
    BuiltInParameters::p_io_00E00E00E,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpAtomicMin,
    false);
constexpr const TFunction atomicMin_00D00D(BuiltInId::atomicMin_Int1_Int1,
                                           BuiltInName::atomicMin,
                                           TExtension::UNDEFINED,
                                           BuiltInParameters::p_io_00D00D00D,
                                           2,
                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                           EOpAtomicMin,
                                           false);
constexpr const TFunction atomicMax_00E00E(
    BuiltInId::atomicMax_UInt1_UInt1,
    BuiltInName::atomicMax,
    TExtension::UNDEFINED,
    BuiltInParameters::p_io_00E00E00E,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpAtomicMax,
    false);
constexpr const TFunction atomicMax_00D00D(BuiltInId::atomicMax_Int1_Int1,
                                           BuiltInName::atomicMax,
                                           TExtension::UNDEFINED,
                                           BuiltInParameters::p_io_00D00D00D,
                                           2,
                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                           EOpAtomicMax,
                                           false);
constexpr const TFunction atomicAnd_00E00E(
    BuiltInId::atomicAnd_UInt1_UInt1,
    BuiltInName::atomicAnd,
    TExtension::UNDEFINED,
    BuiltInParameters::p_io_00E00E00E,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpAtomicAnd,
    false);
constexpr const TFunction atomicAnd_00D00D(BuiltInId::atomicAnd_Int1_Int1,
                                           BuiltInName::atomicAnd,
                                           TExtension::UNDEFINED,
                                           BuiltInParameters::p_io_00D00D00D,
                                           2,
                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                           EOpAtomicAnd,
                                           false);
constexpr const TFunction atomicOr_00E00E(BuiltInId::atomicOr_UInt1_UInt1,
                                          BuiltInName::atomicOr,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p_io_00E00E00E,
                                          2,
                                          StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                          EOpAtomicOr,
                                          false);
constexpr const TFunction atomicOr_00D00D(BuiltInId::atomicOr_Int1_Int1,
                                          BuiltInName::atomicOr,
                                          TExtension::UNDEFINED,
                                          BuiltInParameters::p_io_00D00D00D,
                                          2,
                                          StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                          EOpAtomicOr,
                                          false);
constexpr const TFunction atomicXor_00E00E(
    BuiltInId::atomicXor_UInt1_UInt1,
    BuiltInName::atomicXor,
    TExtension::UNDEFINED,
    BuiltInParameters::p_io_00E00E00E,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpAtomicXor,
    false);
constexpr const TFunction atomicXor_00D00D(BuiltInId::atomicXor_Int1_Int1,
                                           BuiltInName::atomicXor,
                                           TExtension::UNDEFINED,
                                           BuiltInParameters::p_io_00D00D00D,
                                           2,
                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                           EOpAtomicXor,
                                           false);
constexpr const TFunction atomicExchange_00E00E(
    BuiltInId::atomicExchange_UInt1_UInt1,
    BuiltInName::atomicExchange,
    TExtension::UNDEFINED,
    BuiltInParameters::p_io_00E00E00E,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpAtomicExchange,
    false);
constexpr const TFunction atomicExchange_00D00D(
    BuiltInId::atomicExchange_Int1_Int1,
    BuiltInName::atomicExchange,
    TExtension::UNDEFINED,
    BuiltInParameters::p_io_00D00D00D,
    2,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpAtomicExchange,
    false);
constexpr const TFunction atomicCompSwap_00E00E00E(
    BuiltInId::atomicCompSwap_UInt1_UInt1_UInt1,
    BuiltInName::atomicCompSwap,
    TExtension::UNDEFINED,
    BuiltInParameters::p_io_00E00E00E,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpAtomicCompSwap,
    false);
constexpr const TFunction atomicCompSwap_00D00D00D(
    BuiltInId::atomicCompSwap_Int1_Int1_Int1,
    BuiltInName::atomicCompSwap,
    TExtension::UNDEFINED,
    BuiltInParameters::p_io_00D00D00D,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpAtomicCompSwap,
    false);
constexpr const TFunction imageSize_00z(BuiltInId::imageSize_Image2D1,
                                        BuiltInName::imageSize,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p00z10D30B,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpCallBuiltInFunction,
                                        false);
constexpr const TFunction imageSize_01A(BuiltInId::imageSize_IImage2D1,
                                        BuiltInName::imageSize,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p01A10D30D,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpCallBuiltInFunction,
                                        false);
constexpr const TFunction imageSize_01B(BuiltInId::imageSize_UImage2D1,
                                        BuiltInName::imageSize,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p01B10D30E,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpCallBuiltInFunction,
                                        false);
constexpr const TFunction imageSize_01C(BuiltInId::imageSize_Image3D1,
                                        BuiltInName::imageSize,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p01C20D30B,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpCallBuiltInFunction,
                                        false);
constexpr const TFunction imageSize_01D(BuiltInId::imageSize_IImage3D1,
                                        BuiltInName::imageSize,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p01D20D30D,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpCallBuiltInFunction,
                                        false);
constexpr const TFunction imageSize_01E(BuiltInId::imageSize_UImage3D1,
                                        BuiltInName::imageSize,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p01E20D30E,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpCallBuiltInFunction,
                                        false);
constexpr const TFunction imageSize_01F(BuiltInId::imageSize_Image2DArray1,
                                        BuiltInName::imageSize,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p01F20D30B,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpCallBuiltInFunction,
                                        false);
constexpr const TFunction imageSize_01G(BuiltInId::imageSize_IImage2DArray1,
                                        BuiltInName::imageSize,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p01G20D30D,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpCallBuiltInFunction,
                                        false);
constexpr const TFunction imageSize_01H(BuiltInId::imageSize_UImage2DArray1,
                                        BuiltInName::imageSize,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p01H20D30E,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpCallBuiltInFunction,
                                        false);
constexpr const TFunction imageSize_01I(BuiltInId::imageSize_ImageCube1,
                                        BuiltInName::imageSize,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p01I20D30B,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpCallBuiltInFunction,
                                        false);
constexpr const TFunction imageSize_01J(BuiltInId::imageSize_IImageCube1,
                                        BuiltInName::imageSize,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p01J20D30D,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpCallBuiltInFunction,
                                        false);
constexpr const TFunction imageSize_01K(BuiltInId::imageSize_UImageCube1,
                                        BuiltInName::imageSize,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p01K20D30E,
                                        1,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpCallBuiltInFunction,
                                        false);
constexpr const TFunction imageLoad_00z10D(
    BuiltInId::imageLoad_Image2D1_Int2,
    BuiltInName::imageLoad,
    TExtension::UNDEFINED,
    BuiltInParameters::p00z10D30B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageLoad_01A10D(BuiltInId::imageLoad_IImage2D1_Int2,
                                           BuiltInName::imageLoad,
                                           TExtension::UNDEFINED,
                                           BuiltInParameters::p01A10D30D,
                                           2,
                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                           EOpCallBuiltInFunction,
                                           false);
constexpr const TFunction imageLoad_01B10D(
    BuiltInId::imageLoad_UImage2D1_Int2,
    BuiltInName::imageLoad,
    TExtension::UNDEFINED,
    BuiltInParameters::p01B10D30E,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageLoad_01C20D(
    BuiltInId::imageLoad_Image3D1_Int3,
    BuiltInName::imageLoad,
    TExtension::UNDEFINED,
    BuiltInParameters::p01C20D30B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageLoad_01D20D(BuiltInId::imageLoad_IImage3D1_Int3,
                                           BuiltInName::imageLoad,
                                           TExtension::UNDEFINED,
                                           BuiltInParameters::p01D20D30D,
                                           2,
                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                           EOpCallBuiltInFunction,
                                           false);
constexpr const TFunction imageLoad_01E20D(
    BuiltInId::imageLoad_UImage3D1_Int3,
    BuiltInName::imageLoad,
    TExtension::UNDEFINED,
    BuiltInParameters::p01E20D30E,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageLoad_01F20D(
    BuiltInId::imageLoad_Image2DArray1_Int3,
    BuiltInName::imageLoad,
    TExtension::UNDEFINED,
    BuiltInParameters::p01F20D30B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageLoad_01G20D(BuiltInId::imageLoad_IImage2DArray1_Int3,
                                           BuiltInName::imageLoad,
                                           TExtension::UNDEFINED,
                                           BuiltInParameters::p01G20D30D,
                                           2,
                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                           EOpCallBuiltInFunction,
                                           false);
constexpr const TFunction imageLoad_01H20D(
    BuiltInId::imageLoad_UImage2DArray1_Int3,
    BuiltInName::imageLoad,
    TExtension::UNDEFINED,
    BuiltInParameters::p01H20D30E,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageLoad_01I20D(
    BuiltInId::imageLoad_ImageCube1_Int3,
    BuiltInName::imageLoad,
    TExtension::UNDEFINED,
    BuiltInParameters::p01I20D30B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageLoad_01J20D(BuiltInId::imageLoad_IImageCube1_Int3,
                                           BuiltInName::imageLoad,
                                           TExtension::UNDEFINED,
                                           BuiltInParameters::p01J20D30D,
                                           2,
                                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                           EOpCallBuiltInFunction,
                                           false);
constexpr const TFunction imageLoad_01K20D(
    BuiltInId::imageLoad_UImageCube1_Int3,
    BuiltInName::imageLoad,
    TExtension::UNDEFINED,
    BuiltInParameters::p01K20D30E,
    2,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageStore_00z10D30B(
    BuiltInId::imageStore_Image2D1_Int2_Float4,
    BuiltInName::imageStore,
    TExtension::UNDEFINED,
    BuiltInParameters::p00z10D30B,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageStore_01A10D30D(
    BuiltInId::imageStore_IImage2D1_Int2_Int4,
    BuiltInName::imageStore,
    TExtension::UNDEFINED,
    BuiltInParameters::p01A10D30D,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageStore_01B10D30E(
    BuiltInId::imageStore_UImage2D1_Int2_UInt4,
    BuiltInName::imageStore,
    TExtension::UNDEFINED,
    BuiltInParameters::p01B10D30E,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageStore_01C20D30B(
    BuiltInId::imageStore_Image3D1_Int3_Float4,
    BuiltInName::imageStore,
    TExtension::UNDEFINED,
    BuiltInParameters::p01C20D30B,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageStore_01D20D30D(
    BuiltInId::imageStore_IImage3D1_Int3_Int4,
    BuiltInName::imageStore,
    TExtension::UNDEFINED,
    BuiltInParameters::p01D20D30D,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageStore_01E20D30E(
    BuiltInId::imageStore_UImage3D1_Int3_UInt4,
    BuiltInName::imageStore,
    TExtension::UNDEFINED,
    BuiltInParameters::p01E20D30E,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageStore_01F20D30B(
    BuiltInId::imageStore_Image2DArray1_Int3_Float4,
    BuiltInName::imageStore,
    TExtension::UNDEFINED,
    BuiltInParameters::p01F20D30B,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageStore_01G20D30D(
    BuiltInId::imageStore_IImage2DArray1_Int3_Int4,
    BuiltInName::imageStore,
    TExtension::UNDEFINED,
    BuiltInParameters::p01G20D30D,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageStore_01H20D30E(
    BuiltInId::imageStore_UImage2DArray1_Int3_UInt4,
    BuiltInName::imageStore,
    TExtension::UNDEFINED,
    BuiltInParameters::p01H20D30E,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageStore_01I20D30B(
    BuiltInId::imageStore_ImageCube1_Int3_Float4,
    BuiltInName::imageStore,
    TExtension::UNDEFINED,
    BuiltInParameters::p01I20D30B,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageStore_01J20D30D(
    BuiltInId::imageStore_IImageCube1_Int3_Int4,
    BuiltInName::imageStore,
    TExtension::UNDEFINED,
    BuiltInParameters::p01J20D30D,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction imageStore_01K20D30E(
    BuiltInId::imageStore_UImageCube1_Int3_UInt4,
    BuiltInName::imageStore,
    TExtension::UNDEFINED,
    BuiltInParameters::p01K20D30E,
    3,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction memoryBarrier_(BuiltInId::memoryBarrier,
                                         BuiltInName::memoryBarrier,
                                         TExtension::UNDEFINED,
                                         BuiltInParameters::empty,
                                         0,
                                         StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
                                         EOpMemoryBarrier,
                                         false);
constexpr const TFunction memoryBarrierAtomicCounter_(
    BuiltInId::memoryBarrierAtomicCounter,
    BuiltInName::memoryBarrierAtomicCounter,
    TExtension::UNDEFINED,
    BuiltInParameters::empty,
    0,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpMemoryBarrierAtomicCounter,
    false);
constexpr const TFunction memoryBarrierBuffer_(
    BuiltInId::memoryBarrierBuffer,
    BuiltInName::memoryBarrierBuffer,
    TExtension::UNDEFINED,
    BuiltInParameters::empty,
    0,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpMemoryBarrierBuffer,
    false);
constexpr const TFunction memoryBarrierImage_(
    BuiltInId::memoryBarrierImage,
    BuiltInName::memoryBarrierImage,
    TExtension::UNDEFINED,
    BuiltInParameters::empty,
    0,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpMemoryBarrierImage,
    false);
constexpr const TFunction barrier_(BuiltInId::barrier,
                                   BuiltInName::barrier,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::empty,
                                   0,
                                   StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpBarrier,
                                   false);
constexpr const TFunction memoryBarrierShared_(
    BuiltInId::memoryBarrierShared,
    BuiltInName::memoryBarrierShared,
    TExtension::UNDEFINED,
    BuiltInParameters::empty,
    0,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpMemoryBarrierShared,
    false);
constexpr const TFunction groupMemoryBarrier_(
    BuiltInId::groupMemoryBarrier,
    BuiltInName::groupMemoryBarrier,
    TExtension::UNDEFINED,
    BuiltInParameters::empty,
    0,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpGroupMemoryBarrier,
    false);
constexpr const TFunction EmitVertex_(BuiltInId::EmitVertex,
                                      BuiltInName::EmitVertex,
                                      TExtension::EXT_geometry_shader,
                                      BuiltInParameters::empty,
                                      0,
                                      StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
                                      EOpEmitVertex,
                                      false);
constexpr const TFunction EndPrimitive_(BuiltInId::EndPrimitive,
                                        BuiltInName::EndPrimitive,
                                        TExtension::EXT_geometry_shader,
                                        BuiltInParameters::empty,
                                        0,
                                        StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
                                        EOpEndPrimitive,
                                        false);
constexpr const TFunction textureVideoWEBGL_00y10B(
    BuiltInId::textureVideoWEBGL_SamplerVideoWEBGL1_Float2,
    BuiltInName::textureVideoWEBGL,
    TExtension::UNDEFINED,
    BuiltInParameters::p00y10B,
    2,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
constexpr const TFunction texture_00y10B(BuiltInId::texture_SamplerVideoWEBGL1_Float2,
                                         BuiltInName::texture,
                                         TExtension::UNDEFINED,
                                         BuiltInParameters::p00y10B,
                                         2,
                                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                         EOpCallBuiltInFunction,
                                         false);

}  // namespace Func

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

// Rules used to initialize the mangled name array.
constexpr SymbolRule kRules[] = {
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProj_00R30B00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProj_00R30B00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_01G20D30D),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, EXT_INDEX(EXT_YUV_target)>(&texture_00N10B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_10D00D00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_10D00D00D),
    Rule::Get<Spec::ESSL, 310, Shader::FRAGMENT, EXT_INDEX(EXT_geometry_shader)>(
        &BuiltInVariable::kgl_PrimitiveID),
    Rule::Get<Spec::ESSL, 310, Shader::GEOMETRY_EXT, EXT_INDEX(EXT_geometry_shader)>(
        &BuiltInVariable::kgl_PrimitiveIDGS),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00R10B00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00R10B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&modf_00B00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&modf_00B00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxAtomicCounterBindings),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxAtomicCounterBindings),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&notEqual_20D20D),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&notEqual_20D20D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeImageUniforms),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeImageUniforms),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00L20B00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00L20B00B),
    Rule::Get<Spec::ESSL, 0, Shader::VERTEX, EXT_INDEX(ANGLE_base_vertex_base_instance)>(
        &BuiltInVariable::kangle_BaseVertex),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&determinant_A0B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGrad_00I30B10B10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGrad_00I30B10B10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&tanh_30B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&tanh_30B),
    Rule::Get<Spec::ESSL, 310, Shader::FRAGMENT, EXT_INDEX(EXT_geometry_shader)>(
        &BuiltInVariable::kgl_Layer),
    Rule::Get<Spec::ESSL, 310, Shader::GEOMETRY_EXT, EXT_INDEX(EXT_geometry_shader)>(
        &BuiltInVariable::kgl_LayerGS),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureOffset_00d20B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureOffset_00d20B10D),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&dFdx_30B),
    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&dFdx_30B),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(&dFdxExt_30B),
    Rule::Get<Spec::ESSL, 320, Shader::ALL, 0>(&textureGatherOffsets_00U20B10Dx400D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00U20B10Dx400D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(
        &textureGatherOffsetsExt_00U20B10Dx400D),
    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, 320, Shader::ALL, 0>(&textureGatherOffsets_00X10B10Dx400D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00X10B10Dx400D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(
        &textureGatherOffsetsExt_00X10B10Dx400D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_01B10D30E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&transpose_70B),
    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&transpose_70B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProjOffset_00S30B20D00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProjOffset_00S30B20D00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLod_00X30B00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLod_00X30B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00Y00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00Y00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&TableBase::m_gl_MinProgramTexelOffset),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MinProgramTexelOffset),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00d20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00d20B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProj_00J30B00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProj_00J30B00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&atan_10B10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&atan_10B10B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&max_20B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&max_20B00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&clamp_30B30B30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&clamp_30B30B30B),
    Rule::Get<Spec::ESSL, 310, Shader::GEOMETRY_EXT, EXT_INDEX(EXT_geometry_shader)>(
        &EndPrimitive_),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00Y20B00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00Y20B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLodOffset_00a20B00B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLodOffset_00a20B00B10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetchOffset_00Y20D00D20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetchOffset_00Y20D00D20D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetch_00a20D00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetch_00a20D00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_20D00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_20D00D),
    Rule::Get<Spec::ESSL, 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, 310, Shader::ALL, 0>(&mix_20D20D20F),
    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&mix_20D20D20F),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&mix_30F30F30F),
    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&mix_30F30F30F),
    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, 320, Shader::ALL, 0>(&textureGatherOffsets_00X10B10Dx4),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00X10B10Dx4),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(
        &textureGatherOffsetsExt_00X10B10Dx4),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProj_00I20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProj_00I20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetch_00I10D00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetch_00I10D00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_01I20D30B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&min_30B30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&min_30B30B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexAtomicCounterBuffers),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexAtomicCounterBuffers),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLodOffset_00S20B00B20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLodOffset_00S20B00B20D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00R10B10D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00R10B10D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&acos_00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&acos_00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&fract_10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&fract_10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&transpose_E0B),
    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&transpose_E0B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&intBitsToFloat_00D),
    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&intBitsToFloat_00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGradOffset_00J20B20B20B20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00J20B20B20B20D),
    Rule::Get<Spec::ESSL, 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, 310, Shader::ALL, 0>(&mix_30E30E30F),
    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&mix_30E30E30F),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&unpackUnorm2x16_00E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&unpackUnorm2x16_00E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(EXT_YUV_target)>(&rgb_2_yuv_20B00H),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&sqrt_20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&sqrt_20B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&sign_20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&sign_20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&sign_20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&sign_20D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&atanh_00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&atanh_00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGradOffset_00X10B10B10B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00X10B10B10B10D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_01K20D30E),
    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, 310, Shader::ALL, 0>(&atomicCounterDecrement_00G),
    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&atomicCounterDecrement_00G),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGradOffset_00S20B20B20B20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00S20B20B20B20D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicXor_00E00E),
    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicXor_00E00E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjOffset_00R20B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjOffset_00R20B10D),
    Rule::Get<Spec::ESSL, 0, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_FragCoord),
    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_FragCoord),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_30E30E30E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_30E30E30E),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, EXT_INDEX(EXT_YUV_target)>(&textureProj_00N30B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00R00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00R00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxFragmentImageUniforms),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxFragmentImageUniforms),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&normalize_00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&normalize_00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureOffset_00I10B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureOffset_00I10B10D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicExchange_00E00E),
    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicExchange_00E00E),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProj_00I30B00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProj_00I30B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&acosh_10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&acosh_10B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxCombinedShaderOutputResources),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxCombinedShaderOutputResources),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicOr_00E00E),
    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicOr_00E00E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&min_20B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&min_20B00B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, EXT_INDEX(OES_EGL_image_external_essl3)>(
        &textureProj_00M30B00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicMax_00D00D),
    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicMax_00D00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(OES_EGL_image_external_essl3)>(
        &textureProj_00M20B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00I10B00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00I10B00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&reflect_00B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&reflect_00B00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mod_20B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mod_20B00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&lessThan_20D20D),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&lessThan_20D20D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&reflect_10B10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&reflect_10B10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&floatBitsToInt_20B),
    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&floatBitsToInt_20B),
    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, 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>(&imageStore_01J20D30D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicCounter_00G),
    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&atomicCounter_00G),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjOffset_00S30B20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjOffset_00S30B20D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageLoad_01I20D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&round_00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&round_00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&smoothstep_00B00B20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&smoothstep_00B00B20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageLoad_01H20D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00K20B),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00K20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldInsert_30D30D00D00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldInsert_30D30D00D00D),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&fwidth_10B),
    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&fwidth_10B),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(
        &fwidthExt_10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLod_00R20B00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLod_00R20B00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&notEqual_30D30D),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&notEqual_30D30D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&refract_10B10B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&refract_10B10B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjOffset_00I20B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjOffset_00I20B10D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&greaterThan_30D30D),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&greaterThan_30D30D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&greaterThan_10D10D),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&greaterThan_10D10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00U20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00U20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00a00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00a00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldExtract_10E00D00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldExtract_10E00D00D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxDrawBuffers),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxDrawBuffers),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00U20B10D00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00U20B10D00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&floatBitsToUint_10B),
    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&floatBitsToUint_10B),
    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::FRAGMENT, 0>(&texture_00Z20B00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00Z20B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&sinh_30B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&sinh_30B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&length_10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&length_10B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findMSB_10E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findMSB_10E),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findMSB_10D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findMSB_10D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&dot_00B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&dot_00B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&asinh_20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&asinh_20B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&dot_30B30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&dot_30B30B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitCount_00E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitCount_00E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&tan_30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&tan_30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00T20B00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00T20B00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_00z10D30B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&usubBorrow_20E20E20E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&usubBorrow_20E20E20E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGrad_00R30B10B10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGrad_00R30B10B10B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&exp2_10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&exp2_10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(ARB_texture_rectangle)>(&textureProj_00O20B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProjOffset_00X20B10D00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProjOffset_00X20B10D00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&outerProduct_10B20B),
    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&outerProduct_10B20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_geometry_shader)>(
        &TableBase::m_gl_MaxGeometryAtomicCounterBuffers),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGradOffset_00X30B10B10B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGradOffset_00X30B10B10B10D),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureOffset_00I10B10D00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureOffset_00I10B10D00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&clamp_30B00B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&clamp_30B00B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&inverse_50B),
    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&inverse_50B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&lessThan_20E20E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&lessThan_20E20E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&dot_10B10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&dot_10B10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLodOffset_00Y30B00B20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLodOffset_00Y30B00B20D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&unpackHalf2x16_00E),
    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&unpackHalf2x16_00E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&matrixCompMult_A0BA0B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&matrixCompMult_A0BA0B),
    Rule::Get<Spec::ESSL, 100, Shader::VERTEX, 0>(&texture2DProjLod_00I20B00B),
    Rule::Get<Spec::GLSL, 0, Shader::VERTEX, 0>(&texture2DProjLod_00I20B00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(OES_texture_storage_multisample_2d_array)>(
        &texelFetchExt_00W20D00D),
    Rule::Get<Spec::ESSL, 100, Shader::ALL, EXT_INDEX(ARB_texture_rectangle)>(
        &texture2DRectProj_00O30B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&radians_20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&radians_20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00S20B20B20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00S20B20B20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_10D00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_10D00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&round_30B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&round_30B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeTextureImageUnits),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeTextureImageUnits),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_00D00D00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_00D00D00D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&sin_30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&sin_30B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&floor_30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&floor_30B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProj_00S30B00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProj_00S30B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00Y20B20B20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00Y20B20B20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxCombinedAtomicCounters),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxCombinedAtomicCounters),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00L20B00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00L20B00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGradOffset_00S30B20B20B20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGradOffset_00S30B20B20B20D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_01A10D30D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_geometry_shader)>(
        &TableBase::m_gl_MaxGeometryOutputVertices),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00J20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00J20B),
    Rule::Get<Spec::ESSL, 0, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_PointCoord),
    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_PointCoord),
    Rule::Get<Spec::ESSL, 320, Shader::ALL, 0>(&textureGatherOffsets_00a20B10Dx4),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00a20B10Dx4),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(
        &textureGatherOffsetsExt_00a20B10Dx4),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&dFdx_20B),
    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&dFdx_20B),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(&dFdxExt_20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_01F20D30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProj_00X20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProj_00X20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_10E10E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_10E10E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&max_30B30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&max_30B30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_10E10E10E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_10E10E10E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetchOffset_00S20D00D20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetchOffset_00S20D00D20D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(EXT_YUV_target)>(&texture_00N10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00L20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00L20B),
    Rule::Get<Spec::ESSL, 310, Shader::COMPUTE, 0>(&barrier_),
    Rule::Get<Spec::GLSL, 400, Shader::COMPUTE, 0>(&barrier_),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_geometry_shader)>(
        &TableBase::m_gl_MaxGeometryUniformComponents),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&greaterThanEqual_20E20E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&greaterThanEqual_20E20E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&lessThan_10D10D),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&lessThan_10D10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetchOffset_00a20D00D10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetchOffset_00a20D00D10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGradOffset_00X20B10B10B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGradOffset_00X20B10B10B10D),
    Rule::Get<Spec::ESSL, 100, Shader::ALL, 0>(&texture2DProj_00I20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&texture2DProj_00I20B),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_texture_3D)>(
        &texture3DProjLod_00J30B00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&notFunc_20F),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&notFunc_20F),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findMSB_20D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findMSB_20D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findMSB_20E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findMSB_20E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetchOffset_00I10D00D10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetchOffset_00I10D00D10D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00I10B00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00I10B00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&texelFetch_00V10D00D),
    Rule::Get<Spec::GLSL, 150, Shader::ALL, 0>(&texelFetch_00V10D00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(ANGLE_texture_multisample)>(
        &texelFetchExt_00V10D00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&outerProduct_20B20B),
    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&outerProduct_20B20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&mix_10D10D10F),
    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&mix_10D10D10F),
    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>(&texture_00y10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00y10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&isnan_20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&isnan_20B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&max_00B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&max_00B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&roundEven_20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&roundEven_20B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&fwidth_00B),
    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&fwidth_00B),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(
        &fwidthExt_00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGrad_00J30B20B20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGrad_00J30B20B20B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&dFdy_10B),
    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&dFdy_10B),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(&dFdyExt_10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&outerProduct_30B10B),
    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&outerProduct_30B10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&floatBitsToInt_30B),
    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&floatBitsToInt_30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProj_00J30B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProj_00J30B),
    Rule::Get<Spec::ESSL, 320, Shader::ALL, 0>(&textureGatherOffsets_00d10B00B10Dx4),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00d10B00B10Dx4),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(
        &textureGatherOffsetsExt_00d10B00B10Dx4),
    Rule::Get<Spec::ESSL, 310, Shader::GEOMETRY_EXT, EXT_INDEX(EXT_geometry_shader)>(
        &BuiltInVariable::kgl_InvocationID),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_30E00E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_30E00E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&exp2_20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&exp2_20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00d20B00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00d20B00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&radians_10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&radians_10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetch_00U20D00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetch_00U20D00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeWorkGroupSize),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeWorkGroupSize),
    Rule::Get<Spec::ESSL, 300, Shader::VERTEX, EXT_INDEX(ANGLE_base_vertex_base_instance)>(
        &BuiltInVariable::kgl_BaseVertex),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_00D00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_00D00D),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(EXT_shader_framebuffer_fetch)>(
        &TableBase::m_gl_LastFragData),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(NV_shader_framebuffer_fetch)>(
        &TableBase::m_gl_LastFragDataNV),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&ceil_30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&ceil_30B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicMin_00E00E),
    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicMin_00E00E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxCombinedTextureImageUnits),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxCombinedTextureImageUnits),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitCount_10E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitCount_10E),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00S20B00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00S20B00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00e20B00B),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00e20B00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&TableBase::m_gl_DepthRangeParameters),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_DepthRangeParameters),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&distance_10B10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&distance_10B10B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&reflect_20B20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&reflect_20B20B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mod_10B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mod_10B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&uintBitsToFloat_10E),
    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&uintBitsToFloat_10E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00Z20B20B20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00Z20B20B20B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&equal_10F10F),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&equal_10F10F),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&cosh_00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&cosh_00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldReverse_00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldReverse_00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldReverse_00E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldReverse_00E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_20E20E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_20E20E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&matrixCompMult_70B70B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldExtract_30E00D00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldExtract_30E00D00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00I10B00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00I10B00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&greaterThanEqual_10D10D),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&greaterThanEqual_10D10D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageSize_01F),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00e30B00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00e30B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLodOffset_00Y20B00B20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLodOffset_00Y20B00B20D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&log2_00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&log2_00B),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(NV_shader_framebuffer_fetch)>(
        &BuiltInVariable::kgl_LastFragColor),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&abs_10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&abs_10D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&abs_10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&abs_10B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&acos_30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&acos_30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&tanh_10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&tanh_10B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&degrees_30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&degrees_30B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_01E20D30E),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&dFdx_10B),
    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&dFdx_10B),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(&dFdxExt_10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjOffset_00I30B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjOffset_00I30B10D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldReverse_30E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldReverse_30E),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldReverse_30D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldReverse_30D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&inversesqrt_30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&inversesqrt_30B),
    Rule::Get<Spec::ESSL, 310, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_LocalInvocationID),
    Rule::Get<Spec::GLSL, 0, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_LocalInvocationID),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&clamp_00B00B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&clamp_00B00B00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00d10B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&frexp_20B20D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&frexp_20B20D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&intBitsToFloat_20D),
    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&intBitsToFloat_20D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&fract_00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&fract_00B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_FragDepth),
    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_FragDepth),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_30E00E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_30E00E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&exp_20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&exp_20B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&equal_20B20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&equal_20B20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLodOffset_00X20B00B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLodOffset_00X20B00B10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&acosh_00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&acosh_00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&log_10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&log_10B),
    Rule::Get<Spec::ESSL, 100, Shader::ALL, 0>(&textureVideoWEBGL_00y10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&textureVideoWEBGL_00y10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLodOffset_00S30B00B20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLodOffset_00S30B00B20D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&sinh_20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&sinh_20B),
    Rule::Get<Spec::ESSL, 320, Shader::ALL, 0>(&fma_10B10B10B),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&fma_10B10B10B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(&fmaExt_10B10B10B),
    Rule::Get<Spec::ESSL, 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>(&mix_00E00E00F),
    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&mix_00E00E00F),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&umulExtended_10E10E10E10E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&umulExtended_10E10E10E10E),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&mix_00D00D00F),
    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&mix_00D00D00F),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGradOffset_00a20B10B10B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00a20B10B10B10D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&notEqual_20F20F),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&notEqual_20F20F),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mod_30B30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mod_30B30B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldExtract_10D00D00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldExtract_10D00D00D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&sign_30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&sign_30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&sign_30D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&sign_30D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&pow_00B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&pow_00B00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mod_00B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mod_00B00B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00Y20B00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00Y20B00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&notEqual_30B30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&notEqual_30B30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&roundEven_10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&roundEven_10B),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(EXT_shader_texture_lod)>(
        &texture2DProjLodEXT_00I30B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&atanh_30B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&atanh_30B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&dFdy_20B),
    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&dFdy_20B),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(&dFdyExt_20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProj_00Y30B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProj_00Y30B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitCount_20D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitCount_20D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&step_00B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&step_00B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetch_00L20D00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetch_00L20D00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&memoryBarrierBuffer_),
    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&memoryBarrierBuffer_),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&isinf_00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&isinf_00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageSize_00z),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&distance_20B20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&distance_20B20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00U20B10B10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00U20B10B10B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&uaddCarry_30E30E30E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&uaddCarry_30E30E30E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mod_30B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mod_30B00B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00K20B00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00K20B00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxCombinedImageUniforms),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxCombinedImageUniforms),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicCompSwap_00D00D00D),
    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicCompSwap_00D00D00D),
    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, 100, Shader::FRAGMENT, EXT_INDEX(EXT_blend_func_extended)>(
        &TableBase::m_gl_SecondaryFragDataEXT),
    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>(&textureSize_00L00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00L00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00e00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00e00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&notEqual_20E20E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&notEqual_20E20E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLodOffset_00d20B00B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLodOffset_00d20B00B10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&inverse_A0B),
    Rule::Get<Spec::GLSL, 140, Shader::ALL, 0>(&inverse_A0B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGrad_00X20B10B10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGrad_00X20B10B10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_30E30E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_30E30E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&isnan_30B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&isnan_30B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imulExtended_00D00D00D00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&imulExtended_00D00D00D00D),
    Rule::Get<Spec::ESSL, 310, Shader::GEOMETRY_EXT, EXT_INDEX(EXT_geometry_shader)>(
        &TableBase::m_gl_in),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&atan_20B20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&atan_20B20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&usubBorrow_00E00E00E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&usubBorrow_00E00E00E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLodOffset_00J30B00B20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLodOffset_00J30B00B20D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&frexp_30B30D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&frexp_30B30D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&degrees_20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&degrees_20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_30E30E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_30E30E),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageLoad_01B10D),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, 0>(&texture2DProj_00I30B00B),
    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&texture2DProj_00I30B00B),
    Rule::Get<Spec::ESSL, 100, Shader::ALL, EXT_INDEX(EXT_shader_texture_lod)>(
        &textureCubeGradEXT_00K20B20B20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00I10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00I10B),
    Rule::Get<Spec::ESSL, 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, 320, Shader::ALL, 0>(&textureGatherOffsets_00R10B10Dx4),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00R10B10Dx4),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(
        &textureGatherOffsetsExt_00R10B10Dx4),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLodOffset_00R30B00B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLodOffset_00R30B00B10D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&atan_00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&atan_00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicExchange_00D00D),
    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicExchange_00D00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00R10B10D00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00R10B10D00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_geometry_shader)>(
        &TableBase::m_gl_MaxGeometryAtomicCounters),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, 0>(&texture2D_00I10B00B),
    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&texture2D_00I10B00B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProj_00X20B00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProj_00X20B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_20D20D20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_20D20D20D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&greaterThan_30E30E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&greaterThan_30E30E),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&frexp_10B10D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&frexp_10B10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_10E00E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_10E00E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&smoothstep_00B00B10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&smoothstep_00B00B10B),
    Rule::Get<Spec::ESSL, 310, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_GlobalInvocationID),
    Rule::Get<Spec::GLSL, 0, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_GlobalInvocationID),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&matrixCompMult_60B60B),
    Rule::Get<Spec::ESSL, 310, Shader::COMPUTE, 0>(&memoryBarrierShared_),
    Rule::Get<Spec::GLSL, 430, Shader::COMPUTE, 0>(&memoryBarrierShared_),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&normalize_10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&normalize_10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&unpackSnorm2x16_00E),
    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&unpackSnorm2x16_00E),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageLoad_00z10D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&lessThan_30D30D),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&lessThan_30D30D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&atan_00B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&atan_00B00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldExtract_20D00D00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldExtract_20D00D00D),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&texture_00L20B00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&texture_00L20B00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&notEqual_10B10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&notEqual_10B10B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageLoad_01G20D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldExtract_00E00D00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldExtract_00E00D00D),
    Rule::Get<Spec::ESSL, 320, Shader::ALL, 0>(&textureGatherOffsets_00a20B10Dx400D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00a20B10Dx400D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(
        &textureGatherOffsetsExt_00a20B10Dx400D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&mix_10E10E10F),
    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&mix_10E10E10F),
    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::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::FRAGMENT, 0>(&BuiltInVariable::kgl_HelperInvocation),
    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_HelperInvocation),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00L20B),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00L20B),
    Rule::Get<Spec::ESSL, 300, Shader::NOT_COMPUTE, EXT_INDEX(OVR_multiview)>(
        &BuiltInVariable::kgl_ViewID_OVR),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&floor_10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&floor_10B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&sin_10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&sin_10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(EXT_YUV_target)>(&textureSize_00N00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetchOffset_00J20D00D20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetchOffset_00J20D00D20D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&tan_00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&tan_00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mod_20B20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mod_20B20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageLoad_01J20D),
    Rule::Get<Spec::ESSL, 310, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_WorkGroupSize),
    Rule::Get<Spec::GLSL, 0, Shader::COMPUTE, 0>(&BuiltInVariable::kgl_WorkGroupSize),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&asinh_30B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&asinh_30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&outerProduct_10B30B),
    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&outerProduct_10B30B),
    Rule::Get<Spec::ESSL, 100, Shader::ALL, 0>(&textureCube_00K20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&textureCube_00K20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(OES_texture_storage_multisample_2d_array)>(
        &textureSizeExt_00c),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureSize_00b),
    Rule::Get<Spec::GLSL, 150, Shader::ALL, 0>(&textureSize_00b),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(ANGLE_texture_multisample)>(
        &textureSizeExt_00b),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&cos_00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&cos_00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&min_20B20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&min_20B20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGradOffset_00f30B10B10B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00f30B10B10B10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_20D20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_20D20D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProj_00I30B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProj_00I30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_10D10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_10D10D),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureOffset_00a20B10D00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureOffset_00a20B10D00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00X10B),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00X10B),
    Rule::Get<Spec::ESSL, 320, Shader::ALL, 0>(&textureGatherOffsets_00L20B10Dx4),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00L20B10Dx4),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(
        &textureGatherOffsetsExt_00L20B10Dx4),
    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, 320, Shader::ALL, 0>(&textureGatherOffsets_00I10B10Dx4),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00I10B10Dx4),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(
        &textureGatherOffsetsExt_00I10B10Dx4),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxCombinedAtomicCounterBuffers),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxCombinedAtomicCounterBuffers),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&isnan_00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&isnan_00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&umulExtended_30E30E30E30E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&umulExtended_30E30E30E30E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&faceforward_30B30B30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&faceforward_30B30B30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGradOffset_00Y20B20B20B20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00Y20B20B20B20D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_30E00E00E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_30E00E00E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&asin_00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&asin_00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&ceil_00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&ceil_00B),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_texture_3D)>(&texture3D_00J20B00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&distance_00B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&distance_00B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00a20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00a20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00a20B10D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00a20B10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00f30B10B10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00f30B10B10B),
    Rule::Get<Spec::ESSL, 100, Shader::ALL, 0>(&texture2DProj_00I30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&texture2DProj_00I30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&modf_20B20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&modf_20B20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGradOffset_00I10B10B10B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00I10B10B10B10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&notEqual_30E30E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&notEqual_30E30E),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00I10B),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00I10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&lessThanEqual_10E10E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&lessThanEqual_10E10E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&inversesqrt_20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&inversesqrt_20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLodOffset_00J20B00B20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLodOffset_00J20B00B20D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_30D30D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_30D30D),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureOffset_00R10B10D00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureOffset_00R10B10D00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00e30B20B20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00e30B20B20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicAdd_00E00E),
    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicAdd_00E00E),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_geometry_shader)>(
        &TableBase::m_gl_MaxGeometryInputComponents),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findMSB_30E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findMSB_30E),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findMSB_30D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findMSB_30D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00X10B10B10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00X10B10B10B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&length_30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&length_30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&greaterThanEqual_30E30E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&greaterThanEqual_30E30E),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&fwidth_30B),
    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&fwidth_30B),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(
        &fwidthExt_30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGrad_00K20B20B20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGrad_00K20B20B20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&mix_20B20B20F),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&mix_20B20B20F),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetch_00S20D00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetch_00S20D00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGradOffset_00U20B10B10B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00U20B10B10B10D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mix_20B20B20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mix_20B20B20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&floatBitsToInt_10B),
    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&floatBitsToInt_10B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&max_10B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&max_10B00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00L20B10D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00L20B10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00a20B00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00a20B00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&any_10F),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&any_10F),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGradOffset_00d30B10B10B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGradOffset_00d30B10B10B10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(EXT_YUV_target)>(&textureProj_00N30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&TableBase::m_gl_MaxProgramTexelOffset),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxProgramTexelOffset),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&exp2_30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&exp2_30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetchOffset_00L20D00D10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetchOffset_00L20D00D10D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&equal_30D30D),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&equal_30D30D),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_texture_3D)>(
        &texture3DProj_00J30B00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_01D20D30D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&packSnorm2x16_10B),
    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&packSnorm2x16_10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&floatBitsToUint_30B),
    Rule::Get<Spec::GLSL, 330, Shader::ALL, 0>(&floatBitsToUint_30B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&lessThanEqual_30D30D),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&lessThanEqual_30D30D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_geometry_shader)>(
        &TableBase::m_gl_MaxGeometryImageUniforms),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&asinh_00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&asinh_00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureOffset_00R10B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureOffset_00R10B10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&greaterThanEqual_10E10E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&greaterThanEqual_10E10E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGradOffset_00I30B10B10B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGradOffset_00I30B10B10B10D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00Z20B),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00Z20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureOffset_00X10B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureOffset_00X10B10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&cosh_30B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&cosh_30B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureOffset_00d20B10D00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureOffset_00d20B10D00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00R10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00R10B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureOffset_00S20B20D00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureOffset_00S20B20D00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&usubBorrow_30E30E30E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&usubBorrow_30E30E30E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&radians_00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&radians_00B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProjOffset_00R20B10D00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProjOffset_00R20B10D00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&ldexp_30B30D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&ldexp_30B30D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&max_30B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&max_30B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_20D20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_20D20D),
    Rule::Get<Spec::ESSL, 320, Shader::ALL, 0>(&textureGatherOffsets_00f20B00B10Dx4),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00f20B00B10Dx4),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(
        &textureGatherOffsetsExt_00f20B00B10Dx4),
    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, 320, Shader::ALL, 0>(&textureGatherOffsets_00L20B10Dx400D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00L20B10Dx400D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(
        &textureGatherOffsetsExt_00L20B10Dx400D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&step_30B30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&step_30B30B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldReverse_10E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldReverse_10E),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldReverse_10D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldReverse_10D),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_texture_3D)>(&texture3DProj_00J30B),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(EXT_frag_depth)>(
        &TableBase::m_gl_FragDepthEXT),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&matrixCompMult_B0BB0B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&lessThan_30B30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&lessThan_30B30B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&cross_20B20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&cross_20B20B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&all_10F),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&all_10F),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&clamp_20B00B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&clamp_20B00B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&tanh_20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&tanh_20B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&dFdx_00B),
    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&dFdx_00B),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(&dFdxExt_00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&matrixCompMult_F0BF0B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&matrixCompMult_F0BF0B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjOffset_00Y30B20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjOffset_00Y30B20D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&abs_00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&abs_00D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&abs_00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&abs_00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00R10B00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00R10B00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&step_20B20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&step_20B20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxFragmentAtomicCounters),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxFragmentAtomicCounters),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLodOffset_00U20B00B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLodOffset_00U20B00B10D),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProj_00R20B00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProj_00R20B00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&faceforward_20B20B20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&faceforward_20B20B20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageSize_01E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&acos_20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&acos_20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texelFetch_00X10D00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texelFetch_00X10D00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&sinh_00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&sinh_00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageSize_01A),
    Rule::Get<Spec::ESSL, 100, Shader::VERTEX, 0>(&texture2DLod_00I10B00B),
    Rule::Get<Spec::GLSL, 0, Shader::VERTEX, 0>(&texture2DLod_00I10B00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&texelFetch_00b10D00D),
    Rule::Get<Spec::GLSL, 150, Shader::ALL, 0>(&texelFetch_00b10D00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(ANGLE_texture_multisample)>(
        &texelFetchExt_00b10D00D),
    Rule::Get<Spec::ESSL, 320, Shader::ALL, 0>(&fma_20B20B20B),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&fma_20B20B20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(&fmaExt_20B20B20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxAtomicCounterBufferSize),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxAtomicCounterBufferSize),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&max_20B20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&max_20B20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00f20B00B10D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00f20B00B10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&outerProduct_30B30B),
    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&outerProduct_30B30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&lessThanEqual_20E20E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&lessThanEqual_20E20E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00X10B00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00X10B00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&exp_30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&exp_30B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&memoryBarrier_),
    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&memoryBarrier_),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageSize_01D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&step_00B30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&step_00B30B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitCount_10D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitCount_10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&equal_30E30E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&equal_30E30E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&sign_00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&sign_00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&log_00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&log_00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&mix_00F00F00F),
    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&mix_00F00F00F),
    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, 310, Shader::ALL, 0>(&mix_30D30D30F),
    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&mix_30D30D30F),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeUniformComponents),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeUniformComponents),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00R10B00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00R10B00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_01H20D30E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00Z00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00Z00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00U20B),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00U20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldExtract_30D00D00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldExtract_30D00D00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_10D00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_10D00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(OES_texture_storage_multisample_2d_array)>(
        &texelFetchExt_00Q20D00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_20E00E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_20E00E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProj_00S30B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProj_00S30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&roundEven_00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&roundEven_00B),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(EXT_shader_texture_lod)>(
        &texture2DLodEXT_00I10B00B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&dFdy_30B),
    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&dFdy_30B),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(&dFdyExt_30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&atanh_20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&atanh_20B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_10E00E00E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_10E00E00E),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageStore_01C20D30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_20D00D00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_20D00D00D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&all_20F),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&all_20F),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&isinf_10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&isinf_10B),
    Rule::Get<Spec::ESSL, 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_01K),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageSize_01H),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageSize_01I),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&packHalf2x16_10B),
    Rule::Get<Spec::GLSL, 420, Shader::ALL, 0>(&packHalf2x16_10B),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, 0>(&texture2DProj_00I20B00B),
    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&texture2DProj_00I20B00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findLSB_00E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findLSB_00E),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&findLSB_00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&findLSB_00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjOffset_00X30B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjOffset_00X30B10D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageSize_01C),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&greaterThanEqual_30B30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&greaterThanEqual_30B30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00U00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00U00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureGradOffset_00R10B10B10B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureGradOffset_00R10B10B10B10D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageSize_01G),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&equal_30F30F),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&equal_30F30F),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldExtract_00D00D00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldExtract_00D00D00D),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(EXT_shader_texture_lod)>(
        &texture2DProjLodEXT_00I20B00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&notEqual_30F30F),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&notEqual_30F30F),
    Rule::Get<Spec::ESSL, 0, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_FrontFacing),
    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&BuiltInVariable::kgl_FrontFacing),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(EXT_blend_func_extended)>(
        &BuiltInVariable::kgl_SecondaryFragColorEXT),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&inversesqrt_10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&inversesqrt_10B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeWorkGroupCount),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeWorkGroupCount),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&acos_10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&acos_10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&abs_30D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&abs_30D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxFragmentUniformVectors),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxFragmentUniformVectors),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&fract_20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&fract_20B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&abs_30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&abs_30B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&lessThan_10B10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&lessThan_10B10B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGatherOffset_00X10B10D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffset_00X10B10D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldInsert_10E10E00D00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldInsert_10E10E00D00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&packSnorm4x8_30B),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&packSnorm4x8_30B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&mix_10B10B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&mix_10B10B00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageLoad_01E20D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_30D30D30D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_30D30D30D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00U20B00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00U20B00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00f00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00f00D),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, EXT_INDEX(EXT_YUV_target)>(&textureProj_00N20B00B),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, 0>(&TableBase::m_gl_FragData),
    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&TableBase::m_gl_FragData),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProj_00d30B00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProj_00d30B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_20E00E00E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_20E00E00E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00X10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00X10B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProj_00d30B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProj_00d30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&mix_30B30B30F),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&mix_30B30B30F),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&determinant_F0B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&transpose_A0B),
    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&transpose_A0B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&pow_20B20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&pow_20B20B),
    Rule::Get<Spec::ESSL, 100, Shader::ALL, EXT_INDEX(EXT_shader_texture_lod)>(
        &texture2DProjGradEXT_00I20B10B10B),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(ARM_shader_framebuffer_fetch)>(
        &BuiltInVariable::kgl_LastFragColorARM),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00Z20B00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00Z20B00D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00R10B),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00R10B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&lessThanEqual_20D20D),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&lessThanEqual_20D20D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureLod_00S20B00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureLod_00S20B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLod_00Y30B00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLod_00Y30B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&cosh_10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&cosh_10B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&sqrt_30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&sqrt_30B),
    Rule::Get<Spec::ESSL, 300, Shader::VERTEX, 0>(&BuiltInVariable::kgl_VertexID),
    Rule::Get<Spec::GLSL, 0, Shader::VERTEX, 0>(&BuiltInVariable::kgl_VertexID),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&sign_10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&sign_10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, EXT_INDEX(OES_EGL_image_external_essl3)>(
        &textureProj_00M30B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&exp_00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&exp_00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&min_00E00E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&min_00E00E),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&max_30D30D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&max_30D30D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&umulExtended_00E00E00E00E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&umulExtended_00E00E00E00E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexAttribs),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexAttribs),
    Rule::Get<Spec::ESSL, 300, Shader::VERTEX, EXT_INDEX(ANGLE_base_vertex_base_instance)>(
        &BuiltInVariable::kgl_BaseInstance),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&transpose_B0B),
    Rule::Get<Spec::GLSL, 120, Shader::ALL, 0>(&transpose_B0B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&fwidth_20B),
    Rule::Get<Spec::GLSL, 0, Shader::FRAGMENT, 0>(&fwidth_20B),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_standard_derivatives)>(
        &fwidthExt_20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&mix_20F20F20F),
    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&mix_20F20F20F),
    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, 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, 310, Shader::ALL, 0>(&mix_10F10F10F),
    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&mix_10F10F10F),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&degrees_10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&degrees_10B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxTextureImageUnits),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxTextureImageUnits),
    Rule::Get<Spec::ESSL, 0, Shader::VERTEX, 0>(&BuiltInVariable::kgl_Position),
    Rule::Get<Spec::GLSL, 0, Shader::VERTEX, 0>(&BuiltInVariable::kgl_Position),
    Rule::Get<Spec::ESSL, 310, Shader::GEOMETRY_EXT, EXT_INDEX(EXT_geometry_shader)>(
        &TableBase::m_gl_PositionGS),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&texture_00K20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&texture_00K20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicCompSwap_00E00E00E),
    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicCompSwap_00E00E00E),
    Rule::Get<Spec::ESSL, 320, Shader::ALL, 0>(&fma_30B30B30B),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&fma_30B30B30B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(&fmaExt_30B30B30B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&sinh_10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&sinh_10B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&atan_30B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&atan_30B),
    Rule::Get<Spec::ESSL, 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, 320, Shader::ALL, 0>(&textureGatherOffsets_00U20B10Dx4),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00U20B10Dx4),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(
        &textureGatherOffsetsExt_00U20B10Dx4),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjLod_00I20B00B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjLod_00I20B00B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&greaterThanEqual_10B10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&greaterThanEqual_10B10B),
    Rule::Get<Spec::ESSL, 320, Shader::ALL, 0>(&textureGatherOffsets_00I10B10Dx400D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00I10B10Dx400D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(
        &textureGatherOffsetsExt_00I10B10Dx400D),
    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, 320, Shader::ALL, 0>(&fma_00B00B00B),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&fma_00B00B00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(&fmaExt_00B00B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjGradOffset_00I20B10B10B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjGradOffset_00I20B10B10B10D),
    Rule::Get<Spec::ESSL, 100, Shader::VERTEX, 0>(&texture2DProjLod_00I30B00B),
    Rule::Get<Spec::GLSL, 0, Shader::VERTEX, 0>(&texture2DProjLod_00I30B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&isnan_10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&isnan_10B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&uaddCarry_20E20E20E),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&uaddCarry_20E20E20E),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&max_10B10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&max_10B10B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicMax_00E00E),
    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicMax_00E00E),
    Rule::Get<Spec::ESSL, 0, Shader::VERTEX, 0>(&BuiltInVariable::kgl_PointSize),
    Rule::Get<Spec::GLSL, 0, Shader::VERTEX, 0>(&BuiltInVariable::kgl_PointSize),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicMin_00D00D),
    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicMin_00D00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureSize_00X00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureSize_00X00D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&greaterThan_10B10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&greaterThan_10B10B),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&asin_10B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&asin_10B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&textureGather_00d10B00B),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGather_00d10B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&trunc_10B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&trunc_10B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeAtomicCounters),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxComputeAtomicCounters),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProj_00X30B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProj_00X30B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexAtomicCounters),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&TableBase::m_gl_MaxVertexAtomicCounters),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&length_20B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&length_20B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&bitfieldInsert_30E30E00D00D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&bitfieldInsert_30E30E00D00D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureOffset_00S20B20D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureOffset_00S20B20D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProjOffset_00X20B10D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProjOffset_00X20B10D),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&clamp_30D00D00D),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&clamp_30D00D00D),
    Rule::Get<Spec::ESSL, 0, Shader::ALL, 0>(&clamp_10B00B00B),
    Rule::Get<Spec::GLSL, 0, Shader::ALL, 0>(&clamp_10B00B00B),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&mix_20E20E20F),
    Rule::Get<Spec::GLSL, 450, Shader::ALL, 0>(&mix_20E20E20F),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&textureProj_00R20B),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&textureProj_00R20B),
    Rule::Get<Spec::ESSL, 300, Shader::FRAGMENT, 0>(&textureProj_00I20B00B),
    Rule::Get<Spec::GLSL, 130, Shader::FRAGMENT, 0>(&textureProj_00I20B00B),
    Rule::Get<Spec::ESSL, 300, Shader::ALL, 0>(&greaterThan_10E10E),
    Rule::Get<Spec::GLSL, 130, Shader::ALL, 0>(&greaterThan_10E10E),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&imageLoad_01K20D),
    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, 320, Shader::ALL, 0>(&textureGatherOffsets_00R10B10Dx400D),
    Rule::Get<Spec::GLSL, 400, Shader::ALL, 0>(&textureGatherOffsets_00R10B10Dx400D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, EXT_INDEX(EXT_gpu_shader5)>(
        &textureGatherOffsetsExt_00R10B10Dx400D),
    Rule::Get<Spec::ESSL, 310, Shader::ALL, 0>(&atomicOr_00D00D),
    Rule::Get<Spec::GLSL, 430, Shader::ALL, 0>(&atomicOr_00D00D),
    Rule::Get<Spec::ESSL, 100, Shader::FRAGMENT, EXT_INDEX(OES_texture_3D)>(
        &texture3DLod_00J20B00B)};

// Flat array of all mangled names.
constexpr const char *kMangledNames[] = {"textureProj(00R30B00B",
                                         "imageStore(01G20D30D",
                                         "texture(00N10B00B",
                                         "clamp(10D00D00D",
                                         "gl_PrimitiveID",
                                         "texture(00R10B00B",
                                         "modf(00B00B",
                                         "gl_MaxAtomicCounterBindings",
                                         "notEqual(20D20D",
                                         "gl_MaxComputeImageUniforms",
                                         "textureLod(00L20B00B",
                                         "angle_BaseVertex",
                                         "determinant(A0B",
                                         "textureProjGrad(00I30B10B10B",
                                         "tanh(30B",
                                         "gl_Layer",
                                         "textureOffset(00d20B10D",
                                         "dFdx(30B",
                                         "textureGatherOffsets(00U20B10Dx400D",
                                         "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",
                                         "textureGatherOffsets(00X10B10Dx400D",
                                         "imageStore(01B10D30E",
                                         "transpose(70B",
                                         "textureProjOffset(00S30B20D00B",
                                         "textureProjLod(00X30B00B",
                                         "textureSize(00Y00D",
                                         "gl_MinProgramTexelOffset",
                                         "texture(00d20B",
                                         "textureProj(00J30B00B",
                                         "atan(10B10B",
                                         "max(20B00B",
                                         "clamp(30B30B30B",
                                         "EndPrimitive(",
                                         "textureLod(00Y20B00B",
                                         "textureLodOffset(00a20B00B10D",
                                         "texelFetchOffset(00Y20D00D20D",
                                         "texelFetch(00a20D00D",
                                         "min(20D00D",
                                         "imageLoad(01F20D",
                                         "uintBitsToFloat(00E",
                                         "lessThanEqual(20B20B",
                                         "texelFetch(00N10D00D",
                                         "atomicAdd(00D00D",
                                         "gl_MaxGeometryOutputComponents",
                                         "gl_MaxGeometryTextureImageUnits",
                                         "floatBitsToUint(20B",
                                         "bitfieldInsert(20D20D00D00D",
                                         "gl_MaxVertexTextureImageUnits",
                                         "texture(00Z20B",
                                         "min(10D10D",
                                         "mix(20D20D20F",
                                         "mix(30F30F30F",
                                         "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",
                                         "textureGatherOffsets(00X10B10Dx4",
                                         "textureProj(00I20B",
                                         "texelFetch(00I10D00D",
                                         "imageStore(01I20D30B",
                                         "min(30B30B",
                                         "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",
                                         "mix(30E30E30F",
                                         "unpackUnorm2x16(00E",
                                         "rgb_2_yuv(20B00H",
                                         "sqrt(20B",
                                         "sign(20B",
                                         "sign(20D",
                                         "atanh(00B",
                                         "textureGradOffset(00X10B10B10B10D",
                                         "imageStore(01K20D30E",
                                         "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",
                                         "atomicCounterDecrement(00G",
                                         "textureGradOffset(00S20B20B20B20D",
                                         "atomicXor(00E00E",
                                         "textureProjOffset(00R20B10D",
                                         "gl_FragCoord",
                                         "clamp(30E30E30E",
                                         "textureProj(00N30B00B",
                                         "textureSize(00R00D",
                                         "gl_MaxFragmentImageUniforms",
                                         "normalize(00B",
                                         "textureOffset(00I10B10D",
                                         "atomicExchange(00E00E",
                                         "textureProj(00I30B00B",
                                         "acosh(10B",
                                         "gl_MaxCombinedShaderOutputResources",
                                         "atomicOr(00E00E",
                                         "min(20B00B",
                                         "textureProj(00M30B00B",
                                         "atomicMax(00D00D",
                                         "textureProj(00M20B",
                                         "texture(00I10B00B",
                                         "reflect(00B00B",
                                         "mod(20B00B",
                                         "lessThan(20D20D",
                                         "reflect(10B10B",
                                         "floatBitsToInt(20B",
                                         "textureLod(00J20B00B",
                                         "sqrt(10B",
                                         "textureProjLod(00S30B00B",
                                         "clamp(20E20E20E",
                                         "atomicAnd(00E00E",
                                         "max(20D00D",
                                         "textureSize(00I00D",
                                         "gl_MaxComputeAtomicCounterBuffers",
                                         "gl_PrimitiveIDIn",
                                         "texelFetchOffset(00R10D00D10D",
                                         "isinf(30B",
                                         "textureGatherOffset(00a20B10D00D",
                                         "textureGatherOffset(00I10B10D",
                                         "textureOffset(00L20B10D00B",
                                         "textureLodOffset(00X10B00B10D",
                                         "texture(00T20B00B",
                                         "textureOffset(00L20B10D",
                                         "lessThanEqual(30E30E",
                                         "textureOffset(00J20B20D00B",
                                         "min(10E00E",
                                         "log(30B",
                                         "imageStore(01J20D30D",
                                         "atomicCounter(00G",
                                         "textureProjOffset(00S30B20D",
                                         "imageLoad(01I20D",
                                         "round(00B",
                                         "smoothstep(00B00B20B",
                                         "imageLoad(01H20D",
                                         "textureGather(00K20B",
                                         "bitfieldInsert(30D30D00D00D",
                                         "fwidth(10B",
                                         "textureProjLod(00R20B00B",
                                         "notEqual(30D30D",
                                         "refract(10B10B00B",
                                         "textureProjOffset(00I20B10D",
                                         "greaterThan(30D30D",
                                         "greaterThan(10D10D",
                                         "texture(00U20B",
                                         "textureSize(00a00D",
                                         "bitfieldExtract(10E00D00D",
                                         "gl_MaxDrawBuffers",
                                         "textureGatherOffset(00U20B10D00D",
                                         "floatBitsToUint(10B",
                                         "textureProjLod(00J30B00B",
                                         "texture2DRect(00O10B",
                                         "imulExtended(20D20D20D20D",
                                         "any(30F",
                                         "distance(30B30B",
                                         "greaterThan(20D20D",
                                         "textureOffset(00a20B10D",
                                         "greaterThan(30B30B",
                                         "trunc(00B",
                                         "texture(00Z20B00B",
                                         "sinh(30B",
                                         "length(10B",
                                         "findMSB(10E",
                                         "findMSB(10D",
                                         "dot(00B00B",
                                         "asinh(20B",
                                         "dot(30B30B",
                                         "bitCount(00E",
                                         "tan(30B",
                                         "textureLod(00T20B00B",
                                         "imageStore(00z10D30B",
                                         "usubBorrow(20E20E20E",
                                         "textureProjGrad(00R30B10B10B",
                                         "exp2(10B",
                                         "textureProj(00O20B",
                                         "textureProjOffset(00X20B10D00B",
                                         "outerProduct(10B20B",
                                         "gl_MaxGeometryAtomicCounterBuffers",
                                         "textureProjGradOffset(00X30B10B10B10D",
                                         "textureOffset(00I10B10D00B",
                                         "clamp(30B00B00B",
                                         "inverse(50B",
                                         "lessThan(20E20E",
                                         "dot(10B10B",
                                         "textureProjLodOffset(00Y30B00B20D",
                                         "unpackHalf2x16(00E",
                                         "matrixCompMult(A0BA0B",
                                         "texture2DProjLod(00I20B00B",
                                         "texelFetch(00W20D00D",
                                         "texture2DRectProj(00O30B",
                                         "radians(20B",
                                         "textureGrad(00S20B20B20B",
                                         "max(10D00D",
                                         "round(30B",
                                         "gl_MaxComputeTextureImageUnits",
                                         "clamp(00D00D00D",
                                         "sin(30B",
                                         "floor(30B",
                                         "textureProj(00S30B00B",
                                         "textureGrad(00Y20B20B20B",
                                         "gl_MaxCombinedAtomicCounters",
                                         "textureGather(00L20B00D",
                                         "textureProjGradOffset(00S30B20B20B20D",
                                         "imageStore(01A10D30D",
                                         "gl_MaxGeometryOutputVertices",
                                         "texture(00J20B",
                                         "gl_PointCoord",
                                         "textureGatherOffsets(00a20B10Dx4",
                                         "dFdx(20B",
                                         "imageStore(01F20D30B",
                                         "textureProj(00X20B",
                                         "max(10E10E",
                                         "max(30B30B",
                                         "clamp(10E10E10E",
                                         "texelFetchOffset(00S20D00D20D",
                                         "texture(00N10B",
                                         "texture(00L20B",
                                         "barrier(",
                                         "gl_MaxGeometryUniformComponents",
                                         "greaterThanEqual(20E20E",
                                         "lessThan(10D10D",
                                         "texelFetchOffset(00a20D00D10D",
                                         "textureProjGradOffset(00X20B10B10B10D",
                                         "texture2DProj(00I20B",
                                         "texture3DProjLod(00J30B00B",
                                         "not(20F",
                                         "",
                                         "findMSB(20D",
                                         "findMSB(20E",
                                         "texelFetchOffset(00I10D00D10D",
                                         "textureGather(00I10B00D",
                                         "texelFetch(00V10D00D",
                                         "outerProduct(20B20B",
                                         "mix(10D10D10F",
                                         "atan(30B30B",
                                         "unpackSnorm4x8(00E",
                                         "bitCount(30E",
                                         "textureProjLodOffset(00R20B00B10D",
                                         "log(20B",
                                         "asin(30B",
                                         "textureGather(00f20B",
                                         "modf(30B30B",
                                         "texture(00y10B",
                                         "isnan(20B",
                                         "max(00B00B",
                                         "roundEven(20B",
                                         "fwidth(00B",
                                         "textureProjGrad(00J30B20B20B",
                                         "dFdy(10B",
                                         "outerProduct(30B10B",
                                         "floatBitsToInt(30B",
                                         "textureProj(00J30B",
                                         "textureGatherOffsets(00d10B00B10Dx4",
                                         "gl_InvocationID",
                                         "max(30E00E",
                                         "exp2(20B",
                                         "textureLod(00d20B00B",
                                         "radians(10B",
                                         "texelFetch(00U20D00D",
                                         "gl_MaxComputeWorkGroupSize",
                                         "gl_BaseVertex",
                                         "max(00D00D",
                                         "gl_LastFragData",
                                         "ceil(30B",
                                         "atomicMin(00E00E",
                                         "gl_MaxCombinedTextureImageUnits",
                                         "bitCount(10E",
                                         "texture(00S20B00B",
                                         "textureGather(00e20B00B",
                                         "gl_DepthRangeParameters",
                                         "distance(10B10B",
                                         "reflect(20B20B",
                                         "mod(10B00B",
                                         "uintBitsToFloat(10E",
                                         "textureGrad(00Z20B20B20B",
                                         "equal(10F10F",
                                         "cosh(00B",
                                         "bitfieldReverse(00D",
                                         "bitfieldReverse(00E",
                                         "max(20E20E",
                                         "matrixCompMult(70B70B",
                                         "bitfieldExtract(30E00D00D",
                                         "textureLod(00I10B00B",
                                         "greaterThanEqual(10D10D",
                                         "imageSize(01F",
                                         "texture(00e30B00B",
                                         "textureLodOffset(00Y20B00B20D",
                                         "log2(00B",
                                         "gl_LastFragColor",
                                         "abs(10D",
                                         "abs(10B",
                                         "acos(30B",
                                         "tanh(10B",
                                         "degrees(30B",
                                         "imageStore(01E20D30E",
                                         "dFdx(10B",
                                         "textureProjOffset(00I30B10D",
                                         "bitfieldReverse(30E",
                                         "bitfieldReverse(30D",
                                         "inversesqrt(30B",
                                         "gl_LocalInvocationID",
                                         "",
                                         "clamp(00B00B00B",
                                         "textureGather(00d10B",
                                         "frexp(20B20D",
                                         "intBitsToFloat(20D",
                                         "fract(00B",
                                         "gl_FragDepth",
                                         "min(30E00E",
                                         "exp(20B",
                                         "equal(20B20B",
                                         "textureProjLodOffset(00X20B00B10D",
                                         "acosh(00B",
                                         "log(10B",
                                         "textureVideoWEBGL(00y10B",
                                         "textureProjLodOffset(00S30B00B20D",
                                         "sinh(20B",
                                         "fma(10B10B10B",
                                         "reflect(30B30B",
                                         "outerProduct(30B20B",
                                         "texture(00U20B00B",
                                         "texture(00S20B",
                                         "outerProduct(20B10B",
                                         "mix(00E00E00F",
                                         "umulExtended(10E10E10E10E",
                                         "mix(00D00D00F",
                                         "textureGradOffset(00a20B10B10B10D",
                                         "notEqual(20F20F",
                                         "mod(30B30B",
                                         "bitfieldExtract(10D00D00D",
                                         "sign(30B",
                                         "sign(30D",
                                         "pow(00B00B",
                                         "mod(00B00B",
                                         "texture(00Y20B00B",
                                         "notEqual(30B30B",
                                         "roundEven(10B",
                                         "texture2DProjLodEXT(00I30B00B",
                                         "atanh(30B",
                                         "dFdy(20B",
                                         "textureProj(00Y30B",
                                         "bitCount(20D",
                                         "step(00B00B",
                                         "texelFetch(00L20D00D",
                                         "memoryBarrierBuffer(",
                                         "isinf(00B",
                                         "imageSize(00z",
                                         "distance(20B20B",
                                         "textureGrad(00U20B10B10B",
                                         "uaddCarry(30E30E30E",
                                         "mod(30B00B",
                                         "texture(00K20B00B",
                                         "gl_MaxCombinedImageUniforms",
                                         "atomicCompSwap(00D00D00D",
                                         "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",
                                         "gl_SecondaryFragDataEXT",
                                         "transpose(D0B",
                                         "log2(30B",
                                         "textureGrad(00J20B20B20B",
                                         "textureProjGrad(00d30B10B10B",
                                         "fract(30B",
                                         "gl_LocalInvocationIndex",
                                         "textureSize(00J00D",
                                         "textureGatherOffset(00I10B10D00D",
                                         "textureGather(00X10B00D",
                                         "texelFetchOffset(00U20D00D10D",
                                         "textureSize(00L00D",
                                         "textureSize(00e00D",
                                         "notEqual(20E20E",
                                         "textureLodOffset(00d20B00B10D",
                                         "inverse(A0B",
                                         "textureProjGrad(00X20B10B10B",
                                         "max(30E30E",
                                         "isnan(30B",
                                         "imulExtended(00D00D00D00D",
                                         "gl_in",
                                         "atan(20B20B",
                                         "usubBorrow(00E00E00E",
                                         "textureProjLodOffset(00J30B00B20D",
                                         "frexp(30B30D",
                                         "degrees(20B",
                                         "min(30E30E",
                                         "imageLoad(01B10D",
                                         "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",
                                         "textureGatherOffsets(00R10B10Dx4",
                                         "textureProjLodOffset(00R30B00B10D",
                                         "atan(00B",
                                         "atomicExchange(00D00D",
                                         "textureGatherOffset(00R10B10D00D",
                                         "gl_MaxGeometryAtomicCounters",
                                         "texture2D(00I10B00B",
                                         "textureProj(00X20B00B",
                                         "clamp(20D20D20D",
                                         "greaterThan(30E30E",
                                         "frexp(10B10D",
                                         "max(10E00E",
                                         "smoothstep(00B00B10B",
                                         "gl_GlobalInvocationID",
                                         "matrixCompMult(60B60B",
                                         "memoryBarrierShared(",
                                         "normalize(10B",
                                         "unpackSnorm2x16(00E",
                                         "imageLoad(00z10D",
                                         "lessThan(30D30D",
                                         "atan(00B00B",
                                         "bitfieldExtract(20D00D00D",
                                         "texture(00L20B00B",
                                         "notEqual(10B10B",
                                         "imageLoad(01G20D",
                                         "bitfieldExtract(00E00D00D",
                                         "textureGatherOffsets(00a20B10Dx400D",
                                         "mix(10E10E10F",
                                         "trunc(30B",
                                         "matrixCompMult(E0BE0B",
                                         "length(00B",
                                         "any(20F",
                                         "gl_PerVertex",
                                         "textureProj(00X30B00B",
                                         "gl_HelperInvocation",
                                         "textureGather(00L20B",
                                         "gl_ViewID_OVR",
                                         "floor(10B",
                                         "sin(10B",
                                         "textureSize(00N00D",
                                         "texelFetchOffset(00J20D00D20D",
                                         "tan(00B",
                                         "mod(20B20B",
                                         "imageLoad(01J20D",
                                         "gl_WorkGroupSize",
                                         "asinh(30B",
                                         "outerProduct(10B30B",
                                         "textureCube(00K20B",
                                         "textureSize(00c",
                                         "textureSize(00b",
                                         "cos(00B",
                                         "min(20B20B",
                                         "textureGradOffset(00f30B10B10B10D",
                                         "max(20D20D",
                                         "textureProj(00I30B",
                                         "max(10D10D",
                                         "textureOffset(00a20B10D00B",
                                         "textureGather(00X10B",
                                         "textureGatherOffsets(00L20B10Dx4",
                                         "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",
                                         "textureGatherOffsets(00I10B10Dx4",
                                         "gl_MaxCombinedAtomicCounterBuffers",
                                         "isnan(00B",
                                         "umulExtended(30E30E30E30E",
                                         "faceforward(30B30B30B",
                                         "textureGradOffset(00Y20B20B20B20D",
                                         "clamp(30E00E00E",
                                         "asin(00B",
                                         "ceil(00B",
                                         "texture3D(00J20B00B",
                                         "distance(00B00B",
                                         "texture(00a20B",
                                         "textureGatherOffset(00a20B10D",
                                         "textureGrad(00f30B10B10B",
                                         "texture2DProj(00I30B",
                                         "modf(20B20B",
                                         "textureGradOffset(00I10B10B10B10D",
                                         "notEqual(30E30E",
                                         "textureGather(00I10B",
                                         "lessThanEqual(10E10E",
                                         "inversesqrt(20B",
                                         "textureLodOffset(00J20B00B20D",
                                         "min(30D30D",
                                         "textureOffset(00R10B10D00B",
                                         "textureGrad(00e30B20B20B",
                                         "atomicAdd(00E00E",
                                         "gl_MaxGeometryInputComponents",
                                         "findMSB(30E",
                                         "findMSB(30D",
                                         "textureGrad(00X10B10B10B",
                                         "length(30B",
                                         "greaterThanEqual(30E30E",
                                         "fwidth(30B",
                                         "textureGrad(00K20B20B20B",
                                         "mix(20B20B20F",
                                         "texelFetch(00S20D00D",
                                         "textureGradOffset(00U20B10B10B10D",
                                         "mix(20B20B20B",
                                         "floatBitsToInt(10B",
                                         "max(10B00B",
                                         "textureGatherOffset(00L20B10D",
                                         "textureLod(00a20B00B",
                                         "any(10F",
                                         "textureProjGradOffset(00d30B10B10B10D",
                                         "textureProj(00N30B",
                                         "gl_MaxProgramTexelOffset",
                                         "exp2(30B",
                                         "texelFetchOffset(00L20D00D10D",
                                         "equal(30D30D",
                                         "texture3DProj(00J30B00B",
                                         "imageStore(01D20D30D",
                                         "packSnorm2x16(10B",
                                         "floatBitsToUint(30B",
                                         "lessThanEqual(30D30D",
                                         "gl_MaxGeometryImageUniforms",
                                         "asinh(00B",
                                         "textureOffset(00R10B10D",
                                         "greaterThanEqual(10E10E",
                                         "textureProjGradOffset(00I30B10B10B10D",
                                         "textureGather(00Z20B",
                                         "textureOffset(00X10B10D",
                                         "cosh(30B",
                                         "textureOffset(00d20B10D00B",
                                         "texture(00R10B",
                                         "textureOffset(00S20B20D00B",
                                         "usubBorrow(30E30E30E",
                                         "radians(00B",
                                         "textureProjOffset(00R20B10D00B",
                                         "ldexp(30B30D",
                                         "max(30B00B",
                                         "min(20D20D",
                                         "textureGatherOffsets(00f20B00B10Dx4",
                                         "step(10B10B",
                                         "gl_MaxDualSourceDrawBuffersEXT",
                                         "textureGatherOffsets(00L20B10Dx400D",
                                         "step(30B30B",
                                         "bitfieldReverse(10E",
                                         "bitfieldReverse(10D",
                                         "texture3DProj(00J30B",
                                         "gl_FragDepthEXT",
                                         "matrixCompMult(B0BB0B",
                                         "lessThan(30B30B",
                                         "cross(20B20B",
                                         "all(10F",
                                         "clamp(20B00B00B",
                                         "tanh(20B",
                                         "dFdx(00B",
                                         "matrixCompMult(F0BF0B",
                                         "textureProjOffset(00Y30B20D",
                                         "abs(00D",
                                         "abs(00B",
                                         "textureLod(00R10B00B",
                                         "step(20B20B",
                                         "gl_MaxFragmentAtomicCounters",
                                         "textureLodOffset(00U20B00B10D",
                                         "textureProj(00R20B00B",
                                         "faceforward(20B20B20B",
                                         "imageSize(01E",
                                         "acos(20B",
                                         "texelFetch(00X10D00D",
                                         "sinh(00B",
                                         "imageSize(01A",
                                         "texture2DLod(00I10B00B",
                                         "texelFetch(00b10D00D",
                                         "fma(20B20B20B",
                                         "gl_MaxAtomicCounterBufferSize",
                                         "max(20B20B",
                                         "textureGatherOffset(00f20B00B10D",
                                         "outerProduct(30B30B",
                                         "lessThanEqual(20E20E",
                                         "textureLod(00X10B00B",
                                         "exp(30B",
                                         "memoryBarrier(",
                                         "imageSize(01D",
                                         "step(00B30B",
                                         "bitCount(10D",
                                         "equal(30E30E",
                                         "sign(00B",
                                         "log(00B",
                                         "mix(00F00F00F",
                                         "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",
                                         "mix(30D30D30F",
                                         "gl_MaxComputeUniformComponents",
                                         "textureGather(00R10B00D",
                                         "imageStore(01H20D30E",
                                         "textureSize(00Z00D",
                                         "textureGather(00U20B",
                                         "bitfieldExtract(30D00D00D",
                                         "min(10D00D",
                                         "texelFetch(00Q20D00D",
                                         "max(20E00E",
                                         "textureProj(00S30B",
                                         "roundEven(00B",
                                         "texture2DLodEXT(00I10B00B",
                                         "dFdy(30B",
                                         "atanh(20B",
                                         "clamp(10E00E00E",
                                         "imageStore(01C20D30B",
                                         "clamp(20D00D00D",
                                         "all(20F",
                                         "isinf(10B",
                                         "imageLoad(01C20D",
                                         "imageSize(01J",
                                         "imageSize(01K",
                                         "imageSize(01H",
                                         "imageSize(01I",
                                         "packHalf2x16(10B",
                                         "texture2DProj(00I20B00B",
                                         "findLSB(00E",
                                         "findLSB(00D",
                                         "textureProjOffset(00X30B10D",
                                         "imageSize(01C",
                                         "greaterThanEqual(30B30B",
                                         "textureSize(00U00D",
                                         "textureGradOffset(00R10B10B10B10D",
                                         "imageSize(01G",
                                         "equal(30F30F",
                                         "bitfieldExtract(00D00D00D",
                                         "texture2DProjLodEXT(00I20B00B",
                                         "notEqual(30F30F",
                                         "gl_FrontFacing",
                                         "gl_SecondaryFragColorEXT",
                                         "inversesqrt(10B",
                                         "gl_MaxComputeWorkGroupCount",
                                         "acos(10B",
                                         "abs(30D",
                                         "gl_MaxFragmentUniformVectors",
                                         "fract(20B",
                                         "abs(30B",
                                         "lessThan(10B10B",
                                         "textureGatherOffset(00X10B10D",
                                         "bitfieldInsert(10E10E00D00D",
                                         "packSnorm4x8(30B",
                                         "mix(10B10B00B",
                                         "imageLoad(01E20D",
                                         "clamp(30D30D30D",
                                         "textureGather(00U20B00D",
                                         "textureSize(00f00D",
                                         "textureProj(00N20B00B",
                                         "gl_FragData",
                                         "textureProj(00d30B00B",
                                         "clamp(20E00E00E",
                                         "texture(00X10B",
                                         "textureProj(00d30B",
                                         "mix(30B30B30F",
                                         "determinant(F0B",
                                         "transpose(A0B",
                                         "pow(20B20B",
                                         "texture2DProjGradEXT(00I20B10B10B",
                                         "gl_LastFragColorARM",
                                         "textureGather(00Z20B00D",
                                         "textureGather(00R10B",
                                         "lessThanEqual(20D20D",
                                         "textureLod(00S20B00B",
                                         "textureProjLod(00Y30B00B",
                                         "cosh(10B",
                                         "sqrt(30B",
                                         "gl_VertexID",
                                         "sign(10D",
                                         "textureProj(00M30B",
                                         "exp(00B",
                                         "min(00E00E",
                                         "max(30D30D",
                                         "umulExtended(00E00E00E00E",
                                         "gl_MaxVertexAttribs",
                                         "gl_BaseInstance",
                                         "transpose(B0B",
                                         "fwidth(20B",
                                         "mix(20F20F20F",
                                         "",
                                         "smoothstep(00B00B30B",
                                         "textureSize(00M00D",
                                         "log2(20B",
                                         "ldexp(10B10D",
                                         "min(10B00B",
                                         "mix(30B30B00B",
                                         "angle_BaseInstance",
                                         "mix(10F10F10F",
                                         "degrees(10B",
                                         "gl_MaxTextureImageUnits",
                                         "gl_Position",
                                         "texture(00K20B",
                                         "atomicCompSwap(00E00E00E",
                                         "fma(30B30B30B",
                                         "sinh(10B",
                                         "atan(30B",
                                         "textureGradOffset(00L20B10B10B10D",
                                         "ceil(10B",
                                         "textureSize(00S00D",
                                         "textureGatherOffsets(00U20B10Dx4",
                                         "textureProjLod(00I20B00B",
                                         "greaterThanEqual(10B10B",
                                         "textureGatherOffsets(00I10B10Dx400D",
                                         "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",
                                         "fma(00B00B00B",
                                         "textureProjGradOffset(00I20B10B10B10D",
                                         "texture2DProjLod(00I30B00B",
                                         "isnan(10B",
                                         "uaddCarry(20E20E20E",
                                         "max(10B10B",
                                         "atomicMax(00E00E",
                                         "gl_PointSize",
                                         "atomicMin(00D00D",
                                         "textureSize(00X00D",
                                         "greaterThan(10B10B",
                                         "asin(10B",
                                         "textureGather(00d10B00B",
                                         "trunc(10B",
                                         "gl_MaxComputeAtomicCounters",
                                         "textureProj(00X30B",
                                         "gl_MaxVertexAtomicCounters",
                                         "length(20B",
                                         "bitfieldInsert(30E30E00D00D",
                                         "textureOffset(00S20B20D",
                                         "textureProjOffset(00X20B10D",
                                         "clamp(30D00D00D",
                                         "clamp(10B00B00B",
                                         "mix(20E20E20F",
                                         "textureProj(00R20B",
                                         "textureProj(00I20B00B",
                                         "greaterThan(10E10E",
                                         "imageLoad(01K20D",
                                         "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",
                                         "textureGatherOffsets(00R10B10Dx400D",
                                         "atomicOr(00D00D",
                                         "texture3DLod(00J20B00B"};

// Flat array of offsets from a symbol into the rules table.
constexpr uint16_t kMangledOffsets[] = {
    0,     // textureProj_00R30B00B
    2,     // imageStore_01G20D30D
    3,     // texture_00N10B00B
    4,     // clamp_10D00D00D
    6,     // gl_PrimitiveID
    8,     // texture_00R10B00B
    10,    // modf_00B00B
    12,    // gl_MaxAtomicCounterBindings
    14,    // notEqual_20D20D
    16,    // gl_MaxComputeImageUniforms
    18,    // textureLod_00L20B00B
    20,    // angle_BaseVertex
    21,    // determinant_A0B
    22,    // textureProjGrad_00I30B10B10B
    24,    // tanh_30B
    26,    // gl_Layer
    28,    // textureOffset_00d20B10D
    30,    // dFdx_30B
    33,    // textureGatherOffsets_00U20B10Dx400D
    36,    // clamp_00E00E00E
    38,    // transpose_50B
    40,    // ldexp_00B00D
    42,    // textureGather_00K20B00D
    44,    // lessThanEqual_30B30B
    46,    // greaterThanEqual_20D20D
    48,    // min_20E20E
    50,    // asin_20B
    52,    // outerProduct_20B30B
    54,    // bitfieldInsert_00D00D00D00D
    56,    // textureProjGrad_00Y30B20B20B
    58,    // roundEven_30B
    60,    // acosh_20B
    62,    // atanh_10B
    64,    // mix_20B20B00B
    66,    // clamp_10B10B10B
    68,    // textureGrad_00I10B10B10B
    70,    // textureGatherOffset_00L20B10D00D
    72,    // bitCount_00D
    74,    // step_00B20B
    76,    // lessThan_30E30E
    78,    // uintBitsToFloat_30E
    80,    // imulExtended_30D30D30D30D
    82,    // textureSize_00K00D
    84,    // textureGatherOffsets_00X10B10Dx400D
    87,    // imageStore_01B10D30E
    88,    // transpose_70B
    90,    // textureProjOffset_00S30B20D00B
    92,    // textureProjLod_00X30B00B
    94,    // textureSize_00Y00D
    96,    // gl_MinProgramTexelOffset
    98,    // texture_00d20B
    100,   // textureProj_00J30B00B
    102,   // atan_10B10B
    104,   // max_20B00B
    106,   // clamp_30B30B30B
    108,   // EndPrimitive_
    109,   // textureLod_00Y20B00B
    111,   // textureLodOffset_00a20B00B10D
    113,   // texelFetchOffset_00Y20D00D20D
    115,   // texelFetch_00a20D00D
    117,   // min_20D00D
    119,   // imageLoad_01F20D
    120,   // uintBitsToFloat_00E
    122,   // lessThanEqual_20B20B
    124,   // texelFetch_00N10D00D
    125,   // atomicAdd_00D00D
    127,   // gl_MaxGeometryOutputComponents
    128,   // gl_MaxGeometryTextureImageUnits
    129,   // floatBitsToUint_20B
    131,   // bitfieldInsert_20D20D00D00D
    133,   // gl_MaxVertexTextureImageUnits
    135,   // texture_00Z20B
    137,   // min_10D10D
    139,   // mix_20D20D20F
    141,   // mix_30F30F30F
    143,   // tanh_00B
    145,   // textureProjOffset_00J30B20D00B
    147,   // all_30F
    149,   // abs_20D
    151,   // abs_20B
    153,   // inversesqrt_00B
    155,   // matrixCompMult_D0BD0B
    156,   // lessThanEqual_10B10B
    158,   // bitfieldReverse_20D
    160,   // bitfieldReverse_20E
    162,   // textureProjGrad_00S30B20B20B
    164,   // equal_10D10D
    166,   // max_30D00D
    168,   // groupMemoryBarrier_
    170,   // mix_00B00B00F
    172,   // textureProjGradOffset_00R20B10B10B10D
    174,   // imageLoad_01A10D
    175,   // intBitsToFloat_30D
    177,   // textureGatherOffsets_00X10B10Dx4
    180,   // textureProj_00I20B
    182,   // texelFetch_00I10D00D
    184,   // imageStore_01I20D30B
    185,   // min_30B30B
    187,   // gl_MaxVertexAtomicCounterBuffers
    189,   // textureLodOffset_00S20B00B20D
    191,   // textureGatherOffset_00R10B10D
    193,   // acos_00B
    195,   // fract_10B
    197,   // transpose_E0B
    199,   // intBitsToFloat_00D
    201,   // textureGradOffset_00J20B20B20B20D
    203,   // memoryBarrierAtomicCounter_
    205,   // texture2DGradEXT_00I10B10B10B
    206,   // bitfieldInsert_00E00E00D00D
    208,   // atomicXor_00D00D
    210,   // greaterThan_20B20B
    212,   // textureLodOffset_00I10B00B10D
    214,   // texelFetch_00Y20D00D
    216,   // texture2DProjGradEXT_00I30B10B10B
    217,   // textureGrad_00d20B10B10B
    219,   // textureProjOffset_00R30B10D
    221,   // textureOffset_00U20B10D
    223,   // atan_10B
    225,   // modf_10B10B
    227,   // min_30B00B
    229,   // determinant_50B
    230,   // lessThan_20B20B
    232,   // atomicAnd_00D00D
    234,   // gl_FragColor
    236,   // exp_10B
    238,   // textureProjOffset_00I20B10D00B
    240,   // step_00B10B
    242,   // bitCount_30D
    244,   // mix_30E30E30F
    246,   // unpackUnorm2x16_00E
    248,   // rgb_2_yuv_20B00H
    249,   // sqrt_20B
    251,   // sign_20B
    253,   // sign_20D
    255,   // atanh_00B
    257,   // textureGradOffset_00X10B10B10B10D
    259,   // imageStore_01K20D30E
    260,   // gl_DepthRange
    262,   // imulExtended_10D10D10D10D
    264,   // atan_20B
    266,   // texture_00M10B
    267,   // gl_MaxVertexOutputVectors
    269,   // texture_00T20B
    271,   // log2_10B
    273,   // min_10B10B
    275,   // gl_MaxImageUnits
    277,   // pow_10B10B
    279,   // findLSB_20E
    281,   // findLSB_20D
    283,   // texture_00Y20B
    285,   // packUnorm4x8_30B
    287,   // texture_00X10B00B
    289,   // frexp_00B00D
    291,   // texture2D_00I10B
    293,   // not_10F
    295,   // texelFetch_00P10D00D
    298,   // lessThan_10E10E
    300,   // ceil_20B
    302,   // textureLodOffset_00R10B00B10D
    304,   // clamp_10D10D10D
    306,   // texelFetch_00M10D00D
    307,   // texture_00O10B
    308,   // transpose_F0B
    310,   // textureOffset_00Y20B20D00B
    312,   // atomicCounterDecrement_00G
    314,   // textureGradOffset_00S20B20B20B20D
    316,   // atomicXor_00E00E
    318,   // textureProjOffset_00R20B10D
    320,   // gl_FragCoord
    322,   // clamp_30E30E30E
    324,   // textureProj_00N30B00B
    325,   // textureSize_00R00D
    327,   // gl_MaxFragmentImageUniforms
    329,   // normalize_00B
    331,   // textureOffset_00I10B10D
    333,   // atomicExchange_00E00E
    335,   // textureProj_00I30B00B
    337,   // acosh_10B
    339,   // gl_MaxCombinedShaderOutputResources
    341,   // atomicOr_00E00E
    343,   // min_20B00B
    345,   // textureProj_00M30B00B
    346,   // atomicMax_00D00D
    348,   // textureProj_00M20B
    349,   // texture_00I10B00B
    351,   // reflect_00B00B
    353,   // mod_20B00B
    355,   // lessThan_20D20D
    357,   // reflect_10B10B
    359,   // floatBitsToInt_20B
    361,   // textureLod_00J20B00B
    363,   // sqrt_10B
    365,   // textureProjLod_00S30B00B
    367,   // clamp_20E20E20E
    369,   // atomicAnd_00E00E
    371,   // max_20D00D
    373,   // textureSize_00I00D
    375,   // gl_MaxComputeAtomicCounterBuffers
    377,   // gl_PrimitiveIDIn
    378,   // texelFetchOffset_00R10D00D10D
    380,   // isinf_30B
    382,   // textureGatherOffset_00a20B10D00D
    384,   // textureGatherOffset_00I10B10D
    386,   // textureOffset_00L20B10D00B
    388,   // textureLodOffset_00X10B00B10D
    390,   // texture_00T20B00B
    392,   // textureOffset_00L20B10D
    394,   // lessThanEqual_30E30E
    396,   // textureOffset_00J20B20D00B
    398,   // min_10E00E
    400,   // log_30B
    402,   // imageStore_01J20D30D
    403,   // atomicCounter_00G
    405,   // textureProjOffset_00S30B20D
    407,   // imageLoad_01I20D
    408,   // round_00B
    410,   // smoothstep_00B00B20B
    412,   // imageLoad_01H20D
    413,   // textureGather_00K20B
    415,   // bitfieldInsert_30D30D00D00D
    417,   // fwidth_10B
    420,   // textureProjLod_00R20B00B
    422,   // notEqual_30D30D
    424,   // refract_10B10B00B
    426,   // textureProjOffset_00I20B10D
    428,   // greaterThan_30D30D
    430,   // greaterThan_10D10D
    432,   // texture_00U20B
    434,   // textureSize_00a00D
    436,   // bitfieldExtract_10E00D00D
    438,   // gl_MaxDrawBuffers
    440,   // textureGatherOffset_00U20B10D00D
    442,   // floatBitsToUint_10B
    444,   // textureProjLod_00J30B00B
    446,   // texture2DRect_00O10B
    447,   // imulExtended_20D20D20D20D
    449,   // any_30F
    451,   // distance_30B30B
    453,   // greaterThan_20D20D
    455,   // textureOffset_00a20B10D
    457,   // greaterThan_30B30B
    459,   // trunc_00B
    461,   // texture_00Z20B00B
    463,   // sinh_30B
    465,   // length_10B
    467,   // findMSB_10E
    469,   // findMSB_10D
    471,   // dot_00B00B
    473,   // asinh_20B
    475,   // dot_30B30B
    477,   // bitCount_00E
    479,   // tan_30B
    481,   // textureLod_00T20B00B
    483,   // imageStore_00z10D30B
    484,   // usubBorrow_20E20E20E
    486,   // textureProjGrad_00R30B10B10B
    488,   // exp2_10B
    490,   // textureProj_00O20B
    491,   // textureProjOffset_00X20B10D00B
    493,   // outerProduct_10B20B
    495,   // gl_MaxGeometryAtomicCounterBuffers
    496,   // textureProjGradOffset_00X30B10B10B10D
    498,   // textureOffset_00I10B10D00B
    500,   // clamp_30B00B00B
    502,   // inverse_50B
    504,   // lessThan_20E20E
    506,   // dot_10B10B
    508,   // textureProjLodOffset_00Y30B00B20D
    510,   // unpackHalf2x16_00E
    512,   // matrixCompMult_A0BA0B
    514,   // texture2DProjLod_00I20B00B
    516,   // texelFetch_00W20D00D
    517,   // texture2DRectProj_00O30B
    518,   // radians_20B
    520,   // textureGrad_00S20B20B20B
    522,   // max_10D00D
    524,   // round_30B
    526,   // gl_MaxComputeTextureImageUnits
    528,   // clamp_00D00D00D
    530,   // sin_30B
    532,   // floor_30B
    534,   // textureProj_00S30B00B
    536,   // textureGrad_00Y20B20B20B
    538,   // gl_MaxCombinedAtomicCounters
    540,   // textureGather_00L20B00D
    542,   // textureProjGradOffset_00S30B20B20B20D
    544,   // imageStore_01A10D30D
    545,   // gl_MaxGeometryOutputVertices
    546,   // texture_00J20B
    548,   // gl_PointCoord
    550,   // textureGatherOffsets_00a20B10Dx4
    553,   // dFdx_20B
    556,   // imageStore_01F20D30B
    557,   // textureProj_00X20B
    559,   // max_10E10E
    561,   // max_30B30B
    563,   // clamp_10E10E10E
    565,   // texelFetchOffset_00S20D00D20D
    567,   // texture_00N10B
    568,   // texture_00L20B
    570,   // barrier_
    572,   // gl_MaxGeometryUniformComponents
    573,   // greaterThanEqual_20E20E
    575,   // lessThan_10D10D
    577,   // texelFetchOffset_00a20D00D10D
    579,   // textureProjGradOffset_00X20B10B10B10D
    581,   // texture2DProj_00I20B
    583,   // texture3DProjLod_00J30B00B
    584,   // not_20F
    586,   // Empty
    586,   // findMSB_20D
    588,   // findMSB_20E
    590,   // texelFetchOffset_00I10D00D10D
    592,   // textureGather_00I10B00D
    594,   // texelFetch_00V10D00D
    597,   // outerProduct_20B20B
    599,   // mix_10D10D10F
    601,   // atan_30B30B
    603,   // unpackSnorm4x8_00E
    605,   // bitCount_30E
    607,   // textureProjLodOffset_00R20B00B10D
    609,   // log_20B
    611,   // asin_30B
    613,   // textureGather_00f20B
    614,   // modf_30B30B
    616,   // texture_00y10B
    618,   // isnan_20B
    620,   // max_00B00B
    622,   // roundEven_20B
    624,   // fwidth_00B
    627,   // textureProjGrad_00J30B20B20B
    629,   // dFdy_10B
    632,   // outerProduct_30B10B
    634,   // floatBitsToInt_30B
    636,   // textureProj_00J30B
    638,   // textureGatherOffsets_00d10B00B10Dx4
    641,   // gl_InvocationID
    642,   // max_30E00E
    644,   // exp2_20B
    646,   // textureLod_00d20B00B
    648,   // radians_10B
    650,   // texelFetch_00U20D00D
    652,   // gl_MaxComputeWorkGroupSize
    654,   // gl_BaseVertex
    655,   // max_00D00D
    657,   // gl_LastFragData
    659,   // ceil_30B
    661,   // atomicMin_00E00E
    663,   // gl_MaxCombinedTextureImageUnits
    665,   // bitCount_10E
    667,   // texture_00S20B00B
    669,   // textureGather_00e20B00B
    671,   // gl_DepthRangeParameters
    673,   // distance_10B10B
    675,   // reflect_20B20B
    677,   // mod_10B00B
    679,   // uintBitsToFloat_10E
    681,   // textureGrad_00Z20B20B20B
    683,   // equal_10F10F
    685,   // cosh_00B
    687,   // bitfieldReverse_00D
    689,   // bitfieldReverse_00E
    691,   // max_20E20E
    693,   // matrixCompMult_70B70B
    694,   // bitfieldExtract_30E00D00D
    696,   // textureLod_00I10B00B
    698,   // greaterThanEqual_10D10D
    700,   // imageSize_01F
    701,   // texture_00e30B00B
    703,   // textureLodOffset_00Y20B00B20D
    705,   // log2_00B
    707,   // gl_LastFragColor
    708,   // abs_10D
    710,   // abs_10B
    712,   // acos_30B
    714,   // tanh_10B
    716,   // degrees_30B
    718,   // imageStore_01E20D30E
    719,   // dFdx_10B
    722,   // textureProjOffset_00I30B10D
    724,   // bitfieldReverse_30E
    726,   // bitfieldReverse_30D
    728,   // inversesqrt_30B
    730,   // gl_LocalInvocationID
    732,   // Empty
    732,   // clamp_00B00B00B
    734,   // textureGather_00d10B
    735,   // frexp_20B20D
    737,   // intBitsToFloat_20D
    739,   // fract_00B
    741,   // gl_FragDepth
    743,   // min_30E00E
    745,   // exp_20B
    747,   // equal_20B20B
    749,   // textureProjLodOffset_00X20B00B10D
    751,   // acosh_00B
    753,   // log_10B
    755,   // textureVideoWEBGL_00y10B
    757,   // textureProjLodOffset_00S30B00B20D
    759,   // sinh_20B
    761,   // fma_10B10B10B
    764,   // reflect_30B30B
    766,   // outerProduct_30B20B
    768,   // texture_00U20B00B
    770,   // texture_00S20B
    772,   // outerProduct_20B10B
    774,   // mix_00E00E00F
    776,   // umulExtended_10E10E10E10E
    778,   // mix_00D00D00F
    780,   // textureGradOffset_00a20B10B10B10D
    782,   // notEqual_20F20F
    784,   // mod_30B30B
    786,   // bitfieldExtract_10D00D00D
    788,   // sign_30B
    790,   // sign_30D
    792,   // pow_00B00B
    794,   // mod_00B00B
    796,   // texture_00Y20B00B
    798,   // notEqual_30B30B
    800,   // roundEven_10B
    802,   // texture2DProjLodEXT_00I30B00B
    803,   // atanh_30B
    805,   // dFdy_20B
    808,   // textureProj_00Y30B
    810,   // bitCount_20D
    812,   // step_00B00B
    814,   // texelFetch_00L20D00D
    816,   // memoryBarrierBuffer_
    818,   // isinf_00B
    820,   // imageSize_00z
    821,   // distance_20B20B
    823,   // textureGrad_00U20B10B10B
    825,   // uaddCarry_30E30E30E
    827,   // mod_30B00B
    829,   // texture_00K20B00B
    831,   // gl_MaxCombinedImageUniforms
    833,   // atomicCompSwap_00D00D00D
    835,   // yuv_2_rgb_20B00H
    836,   // textureGather_00f20B00B
    838,   // greaterThan_20E20E
    840,   // textureGrad_00a20B10B10B
    842,   // textureOffset_00U20B10D00B
    844,   // intBitsToFloat_10D
    846,   // texture_00J20B00B
    848,   // refract_20B20B00B
    850,   // textureProjLod_00I30B00B
    852,   // refract_00B00B00B
    854,   // findLSB_10D
    856,   // findLSB_10E
    858,   // mix_10B10B10F
    860,   // mix_10B10B10B
    862,   // textureProj_00Y30B00B
    864,   // texture3D_00J20B
    865,   // gl_SecondaryFragDataEXT
    866,   // transpose_D0B
    868,   // log2_30B
    870,   // textureGrad_00J20B20B20B
    872,   // textureProjGrad_00d30B10B10B
    874,   // fract_30B
    876,   // gl_LocalInvocationIndex
    878,   // textureSize_00J00D
    880,   // textureGatherOffset_00I10B10D00D
    882,   // textureGather_00X10B00D
    884,   // texelFetchOffset_00U20D00D10D
    886,   // textureSize_00L00D
    888,   // textureSize_00e00D
    890,   // notEqual_20E20E
    892,   // textureLodOffset_00d20B00B10D
    894,   // inverse_A0B
    896,   // textureProjGrad_00X20B10B10B
    898,   // max_30E30E
    900,   // isnan_30B
    902,   // imulExtended_00D00D00D00D
    904,   // gl_in
    905,   // atan_20B20B
    907,   // usubBorrow_00E00E00E
    909,   // textureProjLodOffset_00J30B00B20D
    911,   // frexp_30B30D
    913,   // degrees_20B
    915,   // min_30E30E
    917,   // imageLoad_01B10D
    918,   // texture2DProj_00I30B00B
    920,   // textureCubeGradEXT_00K20B20B20B
    921,   // texture_00I10B
    923,   // min_00B00B
    925,   // gl_InstanceID
    927,   // texelFetch_00c20D00D
    928,   // gl_MaxVertexImageUniforms
    930,   // sqrt_00B
    932,   // normalize_20B
    934,   // gl_MaxFragmentAtomicCounterBuffers
    936,   // gl_WorkGroupID
    938,   // degrees_00B
    940,   // inverse_F0B
    942,   // min_20E00E
    944,   // textureProjLod_00R30B00B
    946,   // textureSize_00P
    949,   // textureGradOffset_00d20B10B10B10D
    951,   // textureGatherOffsets_00R10B10Dx4
    954,   // textureProjLodOffset_00R30B00B10D
    956,   // atan_00B
    958,   // atomicExchange_00D00D
    960,   // textureGatherOffset_00R10B10D00D
    962,   // gl_MaxGeometryAtomicCounters
    963,   // texture2D_00I10B00B
    965,   // textureProj_00X20B00B
    967,   // clamp_20D20D20D
    969,   // greaterThan_30E30E
    971,   // frexp_10B10D
    973,   // max_10E00E
    975,   // smoothstep_00B00B10B
    977,   // gl_GlobalInvocationID
    979,   // matrixCompMult_60B60B
    980,   // memoryBarrierShared_
    982,   // normalize_10B
    984,   // unpackSnorm2x16_00E
    986,   // imageLoad_00z10D
    987,   // lessThan_30D30D
    989,   // atan_00B00B
    991,   // bitfieldExtract_20D00D00D
    993,   // texture_00L20B00B
    995,   // notEqual_10B10B
    997,   // imageLoad_01G20D
    998,   // bitfieldExtract_00E00D00D
    1000,  // textureGatherOffsets_00a20B10Dx400D
    1003,  // mix_10E10E10F
    1005,  // trunc_30B
    1007,  // matrixCompMult_E0BE0B
    1008,  // length_00B
    1010,  // any_20F
    1012,  // gl_PerVertex
    1013,  // textureProj_00X30B00B
    1015,  // gl_HelperInvocation
    1017,  // textureGather_00L20B
    1019,  // gl_ViewID_OVR
    1020,  // floor_10B
    1022,  // sin_10B
    1024,  // textureSize_00N00D
    1025,  // texelFetchOffset_00J20D00D20D
    1027,  // tan_00B
    1029,  // mod_20B20B
    1031,  // imageLoad_01J20D
    1032,  // gl_WorkGroupSize
    1034,  // asinh_30B
    1036,  // outerProduct_10B30B
    1038,  // textureCube_00K20B
    1040,  // textureSize_00c
    1041,  // textureSize_00b
    1044,  // cos_00B
    1046,  // min_20B20B
    1048,  // textureGradOffset_00f30B10B10B10D
    1050,  // max_20D20D
    1052,  // textureProj_00I30B
    1054,  // max_10D10D
    1056,  // textureOffset_00a20B10D00B
    1058,  // textureGather_00X10B
    1060,  // textureGatherOffsets_00L20B10Dx4
    1063,  // pow_30B30B
    1065,  // textureGather_00a20B
    1067,  // smoothstep_10B10B10B
    1069,  // textureProj_00O30B
    1070,  // textureGatherOffset_00d10B00B10D
    1072,  // refract_30B30B00B
    1074,  // bitfieldInsert_20E20E00D00D
    1076,  // floor_20B
    1078,  // equal_20E20E
    1080,  // mix_00B00B00B
    1082,  // imageSize_01B
    1083,  // greaterThanEqual_20B20B
    1085,  // uaddCarry_00E00E00E
    1087,  // sin_20B
    1089,  // textureSize_00Q
    1090,  // round_20B
    1092,  // matrixCompMult_90B90B
    1093,  // textureProjLod_00d30B00B
    1095,  // textureSize_00W
    1096,  // textureProjLod_00X20B00B
    1098,  // textureGatherOffsets_00I10B10Dx4
    1101,  // gl_MaxCombinedAtomicCounterBuffers
    1103,  // isnan_00B
    1105,  // umulExtended_30E30E30E30E
    1107,  // faceforward_30B30B30B
    1109,  // textureGradOffset_00Y20B20B20B20D
    1111,  // clamp_30E00E00E
    1113,  // asin_00B
    1115,  // ceil_00B
    1117,  // texture3D_00J20B00B
    1118,  // distance_00B00B
    1120,  // texture_00a20B
    1122,  // textureGatherOffset_00a20B10D
    1124,  // textureGrad_00f30B10B10B
    1126,  // texture2DProj_00I30B
    1128,  // modf_20B20B
    1130,  // textureGradOffset_00I10B10B10B10D
    1132,  // notEqual_30E30E
    1134,  // textureGather_00I10B
    1136,  // lessThanEqual_10E10E
    1138,  // inversesqrt_20B
    1140,  // textureLodOffset_00J20B00B20D
    1142,  // min_30D30D
    1144,  // textureOffset_00R10B10D00B
    1146,  // textureGrad_00e30B20B20B
    1148,  // atomicAdd_00E00E
    1150,  // gl_MaxGeometryInputComponents
    1151,  // findMSB_30E
    1153,  // findMSB_30D
    1155,  // textureGrad_00X10B10B10B
    1157,  // length_30B
    1159,  // greaterThanEqual_30E30E
    1161,  // fwidth_30B
    1164,  // textureGrad_00K20B20B20B
    1166,  // mix_20B20B20F
    1168,  // texelFetch_00S20D00D
    1170,  // textureGradOffset_00U20B10B10B10D
    1172,  // mix_20B20B20B
    1174,  // floatBitsToInt_10B
    1176,  // max_10B00B
    1178,  // textureGatherOffset_00L20B10D
    1180,  // textureLod_00a20B00B
    1182,  // any_10F
    1184,  // textureProjGradOffset_00d30B10B10B10D
    1186,  // textureProj_00N30B
    1187,  // gl_MaxProgramTexelOffset
    1189,  // exp2_30B
    1191,  // texelFetchOffset_00L20D00D10D
    1193,  // equal_30D30D
    1195,  // texture3DProj_00J30B00B
    1196,  // imageStore_01D20D30D
    1197,  // packSnorm2x16_10B
    1199,  // floatBitsToUint_30B
    1201,  // lessThanEqual_30D30D
    1203,  // gl_MaxGeometryImageUniforms
    1204,  // asinh_00B
    1206,  // textureOffset_00R10B10D
    1208,  // greaterThanEqual_10E10E
    1210,  // textureProjGradOffset_00I30B10B10B10D
    1212,  // textureGather_00Z20B
    1214,  // textureOffset_00X10B10D
    1216,  // cosh_30B
    1218,  // textureOffset_00d20B10D00B
    1220,  // texture_00R10B
    1222,  // textureOffset_00S20B20D00B
    1224,  // usubBorrow_30E30E30E
    1226,  // radians_00B
    1228,  // textureProjOffset_00R20B10D00B
    1230,  // ldexp_30B30D
    1232,  // max_30B00B
    1234,  // min_20D20D
    1236,  // textureGatherOffsets_00f20B00B10Dx4
    1239,  // step_10B10B
    1241,  // gl_MaxDualSourceDrawBuffersEXT
    1242,  // textureGatherOffsets_00L20B10Dx400D
    1245,  // step_30B30B
    1247,  // bitfieldReverse_10E
    1249,  // bitfieldReverse_10D
    1251,  // texture3DProj_00J30B
    1252,  // gl_FragDepthEXT
    1253,  // matrixCompMult_B0BB0B
    1254,  // lessThan_30B30B
    1256,  // cross_20B20B
    1258,  // all_10F
    1260,  // clamp_20B00B00B
    1262,  // tanh_20B
    1264,  // dFdx_00B
    1267,  // matrixCompMult_F0BF0B
    1269,  // textureProjOffset_00Y30B20D
    1271,  // abs_00D
    1273,  // abs_00B
    1275,  // textureLod_00R10B00B
    1277,  // step_20B20B
    1279,  // gl_MaxFragmentAtomicCounters
    1281,  // textureLodOffset_00U20B00B10D
    1283,  // textureProj_00R20B00B
    1285,  // faceforward_20B20B20B
    1287,  // imageSize_01E
    1288,  // acos_20B
    1290,  // texelFetch_00X10D00D
    1292,  // sinh_00B
    1294,  // imageSize_01A
    1295,  // texture2DLod_00I10B00B
    1297,  // texelFetch_00b10D00D
    1300,  // fma_20B20B20B
    1303,  // gl_MaxAtomicCounterBufferSize
    1305,  // max_20B20B
    1307,  // textureGatherOffset_00f20B00B10D
    1309,  // outerProduct_30B30B
    1311,  // lessThanEqual_20E20E
    1313,  // textureLod_00X10B00B
    1315,  // exp_30B
    1317,  // memoryBarrier_
    1319,  // imageSize_01D
    1320,  // step_00B30B
    1322,  // bitCount_10D
    1324,  // equal_30E30E
    1326,  // sign_00B
    1328,  // log_00B
    1330,  // mix_00F00F00F
    1332,  // textureLod_00Z20B00B
    1334,  // sign_00D
    1336,  // textureOffset_00Y20B20D
    1338,  // transpose_60B
    1340,  // findMSB_00D
    1342,  // gl_MaxGeometryTotalOutputComponents
    1343,  // acosh_30B
    1345,  // findMSB_00E
    1347,  // bitfieldExtract_20E00D00D
    1349,  // uintBitsToFloat_20E
    1351,  // unpackUnorm4x8_00E
    1353,  // texture2DProj_00M20B
    1354,  // texelFetchOffset_00X10D00D10D
    1356,  // mod_10B10B
    1358,  // texture_00d20B00B
    1360,  // notEqual_10D10D
    1362,  // texture2DProj_00M30B
    1363,  // textureSize_00V
    1366,  // packUnorm2x16_10B
    1368,  // faceforward_00B00B00B
    1370,  // umulExtended_20E20E20E20E
    1372,  // textureOffset_00X10B10D00B
    1374,  // cos_30B
    1376,  // findLSB_30D
    1378,  // findLSB_30E
    1380,  // bitCount_20E
    1382,  // gl_NumWorkGroups
    1384,  // equal_20D20D
    1386,  // textureProjOffset_00Y30B20D00B
    1388,  // textureGatherOffset_00U20B10D
    1390,  // faceforward_10B10B10B
    1392,  // mix_30D30D30F
    1394,  // gl_MaxComputeUniformComponents
    1396,  // textureGather_00R10B00D
    1398,  // imageStore_01H20D30E
    1399,  // textureSize_00Z00D
    1401,  // textureGather_00U20B
    1403,  // bitfieldExtract_30D00D00D
    1405,  // min_10D00D
    1407,  // texelFetch_00Q20D00D
    1408,  // max_20E00E
    1410,  // textureProj_00S30B
    1412,  // roundEven_00B
    1414,  // texture2DLodEXT_00I10B00B
    1415,  // dFdy_30B
    1418,  // atanh_20B
    1420,  // clamp_10E00E00E
    1422,  // imageStore_01C20D30B
    1423,  // clamp_20D00D00D
    1425,  // all_20F
    1427,  // isinf_10B
    1429,  // imageLoad_01C20D
    1430,  // imageSize_01J
    1431,  // imageSize_01K
    1432,  // imageSize_01H
    1433,  // imageSize_01I
    1434,  // packHalf2x16_10B
    1436,  // texture2DProj_00I20B00B
    1438,  // findLSB_00E
    1440,  // findLSB_00D
    1442,  // textureProjOffset_00X30B10D
    1444,  // imageSize_01C
    1445,  // greaterThanEqual_30B30B
    1447,  // textureSize_00U00D
    1449,  // textureGradOffset_00R10B10B10B10D
    1451,  // imageSize_01G
    1452,  // equal_30F30F
    1454,  // bitfieldExtract_00D00D00D
    1456,  // texture2DProjLodEXT_00I20B00B
    1457,  // notEqual_30F30F
    1459,  // gl_FrontFacing
    1461,  // gl_SecondaryFragColorEXT
    1462,  // inversesqrt_10B
    1464,  // gl_MaxComputeWorkGroupCount
    1466,  // acos_10B
    1468,  // abs_30D
    1470,  // gl_MaxFragmentUniformVectors
    1472,  // fract_20B
    1474,  // abs_30B
    1476,  // lessThan_10B10B
    1478,  // textureGatherOffset_00X10B10D
    1480,  // bitfieldInsert_10E10E00D00D
    1482,  // packSnorm4x8_30B
    1484,  // mix_10B10B00B
    1486,  // imageLoad_01E20D
    1487,  // clamp_30D30D30D
    1489,  // textureGather_00U20B00D
    1491,  // textureSize_00f00D
    1493,  // textureProj_00N20B00B
    1494,  // gl_FragData
    1496,  // textureProj_00d30B00B
    1498,  // clamp_20E00E00E
    1500,  // texture_00X10B
    1502,  // textureProj_00d30B
    1504,  // mix_30B30B30F
    1506,  // determinant_F0B
    1507,  // transpose_A0B
    1509,  // pow_20B20B
    1511,  // texture2DProjGradEXT_00I20B10B10B
    1512,  // gl_LastFragColorARM
    1513,  // textureGather_00Z20B00D
    1515,  // textureGather_00R10B
    1517,  // lessThanEqual_20D20D
    1519,  // textureLod_00S20B00B
    1521,  // textureProjLod_00Y30B00B
    1523,  // cosh_10B
    1525,  // sqrt_30B
    1527,  // gl_VertexID
    1529,  // sign_10D
    1531,  // textureProj_00M30B
    1532,  // exp_00B
    1534,  // min_00E00E
    1536,  // max_30D30D
    1538,  // umulExtended_00E00E00E00E
    1540,  // gl_MaxVertexAttribs
    1542,  // gl_BaseInstance
    1543,  // transpose_B0B
    1545,  // fwidth_20B
    1548,  // mix_20F20F20F
    1550,  // Empty
    1550,  // smoothstep_00B00B30B
    1552,  // textureSize_00M00D
    1553,  // log2_20B
    1555,  // ldexp_10B10D
    1557,  // min_10B00B
    1559,  // mix_30B30B00B
    1561,  // angle_BaseInstance
    1562,  // mix_10F10F10F
    1564,  // degrees_10B
    1566,  // gl_MaxTextureImageUnits
    1568,  // gl_Position
    1571,  // texture_00K20B
    1573,  // atomicCompSwap_00E00E00E
    1575,  // fma_30B30B30B
    1578,  // sinh_10B
    1580,  // atan_30B
    1582,  // textureGradOffset_00L20B10B10B10D
    1584,  // ceil_10B
    1586,  // textureSize_00S00D
    1588,  // textureGatherOffsets_00U20B10Dx4
    1591,  // textureProjLod_00I20B00B
    1593,  // greaterThanEqual_10B10B
    1595,  // textureGatherOffsets_00I10B10Dx400D
    1598,  // textureCube_00K20B00B
    1600,  // dot_20B20B
    1602,  // transpose_90B
    1604,  // not_30F
    1606,  // textureProjLodOffset_00I20B00B10D
    1608,  // notEqual_10F10F
    1610,  // textureProjGrad_00R20B10B10B
    1612,  // texture_00f30B
    1614,  // smoothstep_00B00B00B
    1616,  // textureProjLodOffset_00d30B00B10D
    1618,  // texelFetch_00R10D00D
    1620,  // cosh_20B
    1622,  // textureProjLodOffset_00I30B00B10D
    1624,  // normalize_30B
    1626,  // smoothstep_30B30B30B
    1628,  // bitfieldInsert_10D10D00D00D
    1630,  // clamp_20B20B20B
    1632,  // textureGrad_00L20B10B10B
    1634,  // textureGrad_00R10B10B10B
    1636,  // textureProjGrad_00I20B10B10B
    1638,  // textureGather_00e20B
    1639,  // texture2D_00M10B
    1640,  // min_00D00D
    1642,  // outerProduct_10B10B
    1644,  // lessThanEqual_10D10D
    1646,  // trunc_20B
    1648,  // gl_MaxVaryingVectors
    1650,  // textureProjOffset_00I30B10D00B
    1652,  // textureSize_00d00D
    1654,  // sin_00B
    1656,  // gl_MaxVertexUniformVectors
    1658,  // textureCubeLodEXT_00K20B00B
    1659,  // textureGather_00T20B00D
    1661,  // textureProj_00N20B
    1662,  // uaddCarry_10E10E10E
    1664,  // tan_10B
    1666,  // textureLodOffset_00L20B00B10D
    1668,  // atomicCounterIncrement_00G
    1670,  // ldexp_20B20D
    1672,  // greaterThanEqual_30D30D
    1674,  // notEqual_20B20B
    1676,  // imageLoad_01D20D
    1677,  // textureProjLodOffset_00X30B00B10D
    1679,  // isinf_20B
    1681,  // cos_10B
    1683,  // mix_30B30B30B
    1685,  // texture_00e30B
    1687,  // textureSize_00T00D
    1689,  // textureGatherOffset_00X10B10D00D
    1691,  // equal_10E10E
    1693,  // min_10E10E
    1695,  // textureProjGradOffset_00Y30B20B20B20D
    1697,  // textureGrad_00T20B20B20B
    1699,  // memoryBarrierImage_
    1701,  // textureProjOffset_00J30B20D
    1703,  // EmitVertex_
    1704,  // textureProjOffset_00d30B10D00B
    1706,  // round_10B
    1708,  // textureProjOffset_00d30B10D
    1710,  // notEqual_10E10E
    1712,  // textureProj_00R30B
    1714,  // matrixCompMult_50B50B
    1716,  // equal_20F20F
    1718,  // gl_MaxFragmentInputVectors
    1720,  // equal_30B30B
    1722,  // textureLod_00U20B00B
    1724,  // usubBorrow_10E10E10E
    1726,  // equal_10B10B
    1728,  // fma_00B00B00B
    1731,  // textureProjGradOffset_00I20B10B10B10D
    1733,  // texture2DProjLod_00I30B00B
    1735,  // isnan_10B
    1737,  // uaddCarry_20E20E20E
    1739,  // max_10B10B
    1741,  // atomicMax_00E00E
    1743,  // gl_PointSize
    1745,  // atomicMin_00D00D
    1747,  // textureSize_00X00D
    1749,  // greaterThan_10B10B
    1751,  // asin_10B
    1753,  // textureGather_00d10B00B
    1755,  // trunc_10B
    1757,  // gl_MaxComputeAtomicCounters
    1759,  // textureProj_00X30B
    1761,  // gl_MaxVertexAtomicCounters
    1763,  // length_20B
    1765,  // bitfieldInsert_30E30E00D00D
    1767,  // textureOffset_00S20B20D
    1769,  // textureProjOffset_00X20B10D
    1771,  // clamp_30D00D00D
    1773,  // clamp_10B00B00B
    1775,  // mix_20E20E20F
    1777,  // textureProj_00R20B
    1779,  // textureProj_00I20B00B
    1781,  // greaterThan_10E10E
    1783,  // imageLoad_01K20D
    1784,  // textureProjOffset_00R30B10D00B
    1786,  // dFdy_00B
    1789,  // min_30D00D
    1791,  // floatBitsToInt_00B
    1793,  // sign_10B
    1795,  // max_00E00E
    1797,  // texture_00a20B00B
    1799,  // texture_00M10B00B
    1800,  // smoothstep_20B20B20B
    1802,  // textureCubeLod_00K20B00B
    1804,  // textureOffset_00J20B20D
    1806,  // texelFetch_00J20D00D
    1808,  // textureProj_00M20B00B
    1809,  // floatBitsToUint_00B
    1811,  // textureProjGradOffset_00R30B10B10B10D
    1813,  // textureLod_00K20B00B
    1815,  // textureProjOffset_00X30B10D00B
    1817,  // cos_20B
    1819,  // exp2_00B
    1821,  // radians_30B
    1823,  // texture2DRectProj_00O20B
    1824,  // tan_20B
    1826,  // textureGather_00T20B
    1828,  // textureGather_00a20B00D
    1830,  // textureProjGradOffset_00J30B20B20B20D
    1832,  // asinh_10B
    1834,  // textureProjGrad_00X30B10B10B
    1836,  // floor_00B
    1838,  // gl_DrawID
    1839,  // textureGatherOffsets_00R10B10Dx400D
    1842,  // atomicOr_00D00D
    1844,  // texture3DLod_00J20B00B
};

using Ext = TExtension;

// Flat array of all unmangled name identifiers.
constexpr UnmangledEntry unmangled[] = {
    {"all", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"textureProj", Ext::OES_EGL_image_external_essl3, Ext::UNDEFINED, 300, -1, Shader::ALL},
    {"unpackUnorm4x8", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
    {"textureVideoWEBGL", Ext::UNDEFINED, Ext::UNDEFINED, 100, 0, Shader::ALL},
    {"fwidth", Ext::UNDEFINED, Ext::UNDEFINED, 300, 0, Shader::FRAGMENT},
    {"rgb_2_yuv", Ext::EXT_YUV_target, Ext::UNDEFINED, 300, -1, Shader::ALL},
    {"atomicCounterIncrement", Ext::UNDEFINED, Ext::UNDEFINED, 310, 420, Shader::ALL},
    {"yuv_2_rgb", Ext::EXT_YUV_target, Ext::UNDEFINED, 300, -1, Shader::ALL},
    {"findLSB", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
    {"textureCubeGradEXT", Ext::EXT_shader_texture_lod, Ext::UNDEFINED, 100, -1, Shader::ALL},
    {"memoryBarrierImage", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL},
    {"packSnorm4x8", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
    {"inverse", Ext::UNDEFINED, Ext::UNDEFINED, 300, 140, Shader::ALL},
    {"textureCubeLod", Ext::UNDEFINED, Ext::UNDEFINED, 100, 0, Shader::VERTEX},
    {"texture", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"frexp", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
    {"degrees", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"imulExtended", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
    {"texture2DProjGradEXT", Ext::EXT_shader_texture_lod, Ext::UNDEFINED, 100, -1, Shader::ALL},
    {"atomicAnd", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL},
    {"textureProjGradOffset", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"roundEven", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"texture2DProjLodEXT", Ext::EXT_shader_texture_lod, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT},
    {"memoryBarrierAtomicCounter", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL},
    {"ceil", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"not", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"texture2DRectProj", Ext::ARB_texture_rectangle, Ext::UNDEFINED, 100, -1, Shader::ALL},
    {"mod", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"floatBitsToInt", Ext::UNDEFINED, Ext::UNDEFINED, 300, 330, Shader::ALL},
    {"radians", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"smoothstep", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"textureProjGrad", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"lessThan", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"dFdy", Ext::UNDEFINED, Ext::UNDEFINED, 300, 0, Shader::FRAGMENT},
    {"modf", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"unpackSnorm4x8", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
    {"round", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"textureOffset", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"clamp", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"findMSB", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
    {"texture2DRect", Ext::ARB_texture_rectangle, Ext::UNDEFINED, 100, -1, Shader::ALL},
    {"acosh", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"cosh", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"uaddCarry", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
    {"asin", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"isnan", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"atomicMax", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL},
    {"bitfieldReverse", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
    {"dFdx", Ext::UNDEFINED, Ext::UNDEFINED, 300, 0, Shader::FRAGMENT},
    {"memoryBarrierShared", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::COMPUTE},
    {"texture3DLod", Ext::OES_texture_3D, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT},
    {"textureLod", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"faceforward", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"abs", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"max", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"unpackSnorm2x16", Ext::UNDEFINED, Ext::UNDEFINED, 300, 420, Shader::ALL},
    {"log2", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"textureGrad", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"barrier", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::COMPUTE},
    {"texture2DProj", Ext::UNDEFINED, Ext::UNDEFINED, 100, 0, Shader::FRAGMENT},
    {"atomicCounterDecrement", Ext::UNDEFINED, Ext::UNDEFINED, 310, 420, Shader::ALL},
    {"lessThanEqual", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"transpose", Ext::UNDEFINED, Ext::UNDEFINED, 300, 120, Shader::ALL},
    {"step", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"sinh", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"textureProjOffset", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"trunc", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"cos", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"equal", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"texture2DLodEXT", Ext::EXT_shader_texture_lod, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT},
    {"usubBorrow", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
    {"texelFetchOffset", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"length", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"textureSize", Ext::OES_EGL_image_external_essl3, Ext::UNDEFINED, 300, -1, Shader::ALL},
    {"acos", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"uintBitsToFloat", Ext::UNDEFINED, Ext::UNDEFINED, 300, 330, Shader::ALL},
    {"packUnorm2x16", Ext::UNDEFINED, Ext::UNDEFINED, 300, 400, Shader::ALL},
    {"unpackHalf2x16", Ext::UNDEFINED, Ext::UNDEFINED, 300, 420, Shader::ALL},
    {"matrixCompMult", Ext::UNDEFINED, Ext::UNDEFINED, 300, -1, Shader::ALL},
    {"pow", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"atomicExchange", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL},
    {"texture2DProjLod", Ext::UNDEFINED, Ext::UNDEFINED, 100, 0, Shader::VERTEX},
    {"ldexp", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
    {"floatBitsToUint", Ext::UNDEFINED, Ext::UNDEFINED, 300, 330, Shader::ALL},
    {"textureProjLod", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"textureCubeLodEXT", Ext::EXT_shader_texture_lod, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT},
    {"imageStore", Ext::UNDEFINED, Ext::UNDEFINED, 310, -1, Shader::ALL},
    {"textureGatherOffset", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
    {"textureProjLodOffset", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"log", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"bitCount", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
    {"exp2", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"atomicCompSwap", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL},
    {"fract", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"EmitVertex", Ext::EXT_geometry_shader, Ext::UNDEFINED, 310, -1, Shader::GEOMETRY_EXT},
    {"textureGatherOffsets", Ext::EXT_gpu_shader5, Ext::UNDEFINED, 310, -1, Shader::ALL},
    {"fma", Ext::EXT_gpu_shader5, Ext::UNDEFINED, 310, -1, Shader::ALL},
    {"determinant", Ext::UNDEFINED, Ext::UNDEFINED, 300, -1, Shader::ALL},
    {"textureGather", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
    {"greaterThanEqual", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"greaterThan", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"bitfieldInsert", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
    {"texture3DProj", Ext::OES_texture_3D, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT},
    {"packUnorm4x8", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
    {"sign", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"inversesqrt", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"distance", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"tanh", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"texture2DGradEXT", Ext::EXT_shader_texture_lod, Ext::UNDEFINED, 100, -1, Shader::ALL},
    {"memoryBarrier", Ext::UNDEFINED, Ext::UNDEFINED, 310, 420, Shader::ALL},
    {"atomicCounter", Ext::UNDEFINED, Ext::UNDEFINED, 310, 420, Shader::ALL},
    {"intBitsToFloat", Ext::UNDEFINED, Ext::UNDEFINED, 300, 330, Shader::ALL},
    {"bitfieldExtract", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
    {"texture3DProjLod", Ext::OES_texture_3D, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT},
    {"atomicAdd", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL},
    {"asinh", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"texture2D", Ext::UNDEFINED, Ext::UNDEFINED, 100, 0, Shader::FRAGMENT},
    {"memoryBarrierBuffer", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL},
    {"tan", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"any", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"atomicXor", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL},
    {"normalize", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"imageLoad", Ext::UNDEFINED, Ext::UNDEFINED, 310, -1, Shader::ALL},
    {"floor", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"textureLodOffset", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"atanh", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"cross", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"sqrt", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"mix", Ext::UNDEFINED, Ext::UNDEFINED, 310, 450, Shader::ALL},
    {"sin", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"textureGradOffset", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"atan", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"unpackUnorm2x16", Ext::UNDEFINED, Ext::UNDEFINED, 300, 400, Shader::ALL},
    {"reflect", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"isinf", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"texture3D", Ext::OES_texture_3D, Ext::UNDEFINED, 100, -1, Shader::FRAGMENT},
    {"umulExtended", Ext::UNDEFINED, Ext::UNDEFINED, 310, 400, Shader::ALL},
    {"atomicOr", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL},
    {"texelFetch", Ext::OES_EGL_image_external_essl3, Ext::UNDEFINED, 300, -1, Shader::ALL},
    {"EndPrimitive", Ext::EXT_geometry_shader, Ext::UNDEFINED, 310, -1, Shader::GEOMETRY_EXT},
    {"notEqual", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"outerProduct", Ext::UNDEFINED, Ext::UNDEFINED, 300, 120, Shader::ALL},
    {"imageSize", Ext::UNDEFINED, Ext::UNDEFINED, 310, -1, Shader::ALL},
    {"refract", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"min", Ext::UNDEFINED, Ext::UNDEFINED, 300, 130, Shader::ALL},
    {"textureCube", Ext::UNDEFINED, Ext::UNDEFINED, 100, 0, Shader::ALL},
    {"packSnorm2x16", Ext::UNDEFINED, Ext::UNDEFINED, 300, 420, Shader::ALL},
    {"exp", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL},
    {"groupMemoryBarrier", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::COMPUTE},
    {"atomicMin", Ext::UNDEFINED, Ext::UNDEFINED, 310, 430, Shader::ALL},
    {"packHalf2x16", Ext::UNDEFINED, Ext::UNDEFINED, 300, 420, Shader::ALL},
    {"texture2DLod", Ext::UNDEFINED, Ext::UNDEFINED, 100, 0, Shader::VERTEX},
    {"dot", Ext::UNDEFINED, Ext::UNDEFINED, 0, 0, Shader::ALL}};

}  // namespace BuiltInArray

void TSymbolTable::initializeBuiltInVariables(sh::GLenum shaderType,
                                              ShShaderSpec spec,
                                              const ShBuiltInResources &resources)
{
    const TSourceLoc zeroSourceLoc             = {0, 0, 0, 0};
    TFieldList *fields_gl_DepthRangeParameters = new TFieldList();
    fields_gl_DepthRangeParameters->push_back(
        new TField(new TType(EbtFloat, EbpHigh, EvqGlobal, 1, 1), BuiltInName::near, zeroSourceLoc,
                   SymbolType::BuiltIn));
    fields_gl_DepthRangeParameters->push_back(
        new TField(new TType(EbtFloat, EbpHigh, EvqGlobal, 1, 1), BuiltInName::far, zeroSourceLoc,
                   SymbolType::BuiltIn));
    fields_gl_DepthRangeParameters->push_back(
        new TField(new TType(EbtFloat, EbpHigh, EvqGlobal, 1, 1), BuiltInName::diff, zeroSourceLoc,
                   SymbolType::BuiltIn));
    TStructure *gl_DepthRangeParameters =
        new TStructure(BuiltInId::gl_DepthRangeParameters, BuiltInName::gl_DepthRangeParameters,
                       TExtension::UNDEFINED, fields_gl_DepthRangeParameters);
    m_gl_DepthRangeParameters = gl_DepthRangeParameters;
    TType *type_gl_DepthRange = new TType(gl_DepthRangeParameters, false);
    type_gl_DepthRange->setQualifier(EvqUniform);
    type_gl_DepthRange->realize();
    m_gl_DepthRange       = new TVariable(BuiltInId::gl_DepthRange, BuiltInName::gl_DepthRange,
                                    SymbolType::BuiltIn, TExtension::UNDEFINED, type_gl_DepthRange);
    m_gl_MaxVertexAttribs = new TVariable(
        BuiltInId::gl_MaxVertexAttribs, BuiltInName::gl_MaxVertexAttribs, SymbolType::BuiltIn,
        TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxVertexAttribs);
        static_cast<TVariable *>(m_gl_MaxVertexAttribs)->shareConstPointer(unionArray);
    }
    m_gl_MaxVertexUniformVectors =
        new TVariable(BuiltInId::gl_MaxVertexUniformVectors,
                      BuiltInName::gl_MaxVertexUniformVectors, SymbolType::BuiltIn,
                      TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxVertexUniformVectors);
        static_cast<TVariable *>(m_gl_MaxVertexUniformVectors)->shareConstPointer(unionArray);
    }
    m_gl_MaxVertexTextureImageUnits =
        new TVariable(BuiltInId::gl_MaxVertexTextureImageUnits,
                      BuiltInName::gl_MaxVertexTextureImageUnits, SymbolType::BuiltIn,
                      TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxVertexTextureImageUnits);
        static_cast<TVariable *>(m_gl_MaxVertexTextureImageUnits)->shareConstPointer(unionArray);
    }
    m_gl_MaxCombinedTextureImageUnits =
        new TVariable(BuiltInId::gl_MaxCombinedTextureImageUnits,
                      BuiltInName::gl_MaxCombinedTextureImageUnits, SymbolType::BuiltIn,
                      TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxCombinedTextureImageUnits);
        static_cast<TVariable *>(m_gl_MaxCombinedTextureImageUnits)->shareConstPointer(unionArray);
    }
    m_gl_MaxTextureImageUnits =
        new TVariable(BuiltInId::gl_MaxTextureImageUnits, BuiltInName::gl_MaxTextureImageUnits,
                      SymbolType::BuiltIn, TExtension::UNDEFINED,
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxTextureImageUnits);
        static_cast<TVariable *>(m_gl_MaxTextureImageUnits)->shareConstPointer(unionArray);
    }
    m_gl_MaxFragmentUniformVectors =
        new TVariable(BuiltInId::gl_MaxFragmentUniformVectors,
                      BuiltInName::gl_MaxFragmentUniformVectors, SymbolType::BuiltIn,
                      TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxFragmentUniformVectors);
        static_cast<TVariable *>(m_gl_MaxFragmentUniformVectors)->shareConstPointer(unionArray);
    }
    m_gl_MaxVaryingVectors = new TVariable(
        BuiltInId::gl_MaxVaryingVectors, BuiltInName::gl_MaxVaryingVectors, SymbolType::BuiltIn,
        TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxVaryingVectors);
        static_cast<TVariable *>(m_gl_MaxVaryingVectors)->shareConstPointer(unionArray);
    }
    m_gl_MaxDrawBuffers = new TVariable(
        BuiltInId::gl_MaxDrawBuffers, BuiltInName::gl_MaxDrawBuffers, SymbolType::BuiltIn,
        TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxDrawBuffers);
        static_cast<TVariable *>(m_gl_MaxDrawBuffers)->shareConstPointer(unionArray);
    }
    m_gl_MaxDualSourceDrawBuffersEXT = new TVariable(
        BuiltInId::gl_MaxDualSourceDrawBuffersEXT, BuiltInName::gl_MaxDualSourceDrawBuffersEXT,
        SymbolType::BuiltIn, TExtension::EXT_blend_func_extended,
        StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxDualSourceDrawBuffers);
        static_cast<TVariable *>(m_gl_MaxDualSourceDrawBuffersEXT)->shareConstPointer(unionArray);
    }
    m_gl_MaxVertexOutputVectors =
        new TVariable(BuiltInId::gl_MaxVertexOutputVectors, BuiltInName::gl_MaxVertexOutputVectors,
                      SymbolType::BuiltIn, TExtension::UNDEFINED,
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxVertexOutputVectors);
        static_cast<TVariable *>(m_gl_MaxVertexOutputVectors)->shareConstPointer(unionArray);
    }
    m_gl_MaxFragmentInputVectors =
        new TVariable(BuiltInId::gl_MaxFragmentInputVectors,
                      BuiltInName::gl_MaxFragmentInputVectors, SymbolType::BuiltIn,
                      TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxFragmentInputVectors);
        static_cast<TVariable *>(m_gl_MaxFragmentInputVectors)->shareConstPointer(unionArray);
    }
    m_gl_MinProgramTexelOffset =
        new TVariable(BuiltInId::gl_MinProgramTexelOffset, BuiltInName::gl_MinProgramTexelOffset,
                      SymbolType::BuiltIn, TExtension::UNDEFINED,
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MinProgramTexelOffset);
        static_cast<TVariable *>(m_gl_MinProgramTexelOffset)->shareConstPointer(unionArray);
    }
    m_gl_MaxProgramTexelOffset =
        new TVariable(BuiltInId::gl_MaxProgramTexelOffset, BuiltInName::gl_MaxProgramTexelOffset,
                      SymbolType::BuiltIn, TExtension::UNDEFINED,
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxProgramTexelOffset);
        static_cast<TVariable *>(m_gl_MaxProgramTexelOffset)->shareConstPointer(unionArray);
    }
    m_gl_MaxImageUnits = new TVariable(BuiltInId::gl_MaxImageUnits, BuiltInName::gl_MaxImageUnits,
                                       SymbolType::BuiltIn, TExtension::UNDEFINED,
                                       StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxImageUnits);
        static_cast<TVariable *>(m_gl_MaxImageUnits)->shareConstPointer(unionArray);
    }
    m_gl_MaxVertexImageUniforms =
        new TVariable(BuiltInId::gl_MaxVertexImageUniforms, BuiltInName::gl_MaxVertexImageUniforms,
                      SymbolType::BuiltIn, TExtension::UNDEFINED,
                      StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxVertexImageUniforms);
        static_cast<TVariable *>(m_gl_MaxVertexImageUniforms)->shareConstPointer(unionArray);
    }
    m_gl_MaxFragmentImageUniforms =
        new TVariable(BuiltInId::gl_MaxFragmentImageUniforms,
                      BuiltInName::gl_MaxFragmentImageUniforms, SymbolType::BuiltIn,
                      TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxFragmentImageUniforms);
        static_cast<TVariable *>(m_gl_MaxFragmentImageUniforms)->shareConstPointer(unionArray);
    }
    m_gl_MaxComputeImageUniforms =
        new TVariable(BuiltInId::gl_MaxComputeImageUniforms,
                      BuiltInName::gl_MaxComputeImageUniforms, SymbolType::BuiltIn,
                      TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxComputeImageUniforms);
        static_cast<TVariable *>(m_gl_MaxComputeImageUniforms)->shareConstPointer(unionArray);
    }
    m_gl_MaxCombinedImageUniforms =
        new TVariable(BuiltInId::gl_MaxCombinedImageUniforms,
                      BuiltInName::gl_MaxCombinedImageUniforms, SymbolType::BuiltIn,
                      TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxCombinedImageUniforms);
        static_cast<TVariable *>(m_gl_MaxCombinedImageUniforms)->shareConstPointer(unionArray);
    }
    m_gl_MaxCombinedShaderOutputResources =
        new TVariable(BuiltInId::gl_MaxCombinedShaderOutputResources,
                      BuiltInName::gl_MaxCombinedShaderOutputResources, SymbolType::BuiltIn,
                      TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxCombinedShaderOutputResources);
        static_cast<TVariable *>(m_gl_MaxCombinedShaderOutputResources)
            ->shareConstPointer(unionArray);
    }
    m_gl_MaxComputeWorkGroupCount =
        new TVariable(BuiltInId::gl_MaxComputeWorkGroupCount,
                      BuiltInName::gl_MaxComputeWorkGroupCount, SymbolType::BuiltIn,
                      TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpHigh, EvqConst, 3, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[3];
        for (size_t index = 0u; index < 3; ++index)
        {
            unionArray[index].setIConst(resources.MaxComputeWorkGroupCount[index]);
        }
        static_cast<TVariable *>(m_gl_MaxComputeWorkGroupCount)->shareConstPointer(unionArray);
    }
    m_gl_MaxComputeWorkGroupSize =
        new TVariable(BuiltInId::gl_MaxComputeWorkGroupSize,
                      BuiltInName::gl_MaxComputeWorkGroupSize, SymbolType::BuiltIn,
                      TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpHigh, EvqConst, 3, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[3];
        for (size_t index = 0u; index < 3; ++index)
        {
            unionArray[index].setIConst(resources.MaxComputeWorkGroupSize[index]);
        }
        static_cast<TVariable *>(m_gl_MaxComputeWorkGroupSize)->shareConstPointer(unionArray);
    }
    m_gl_MaxComputeUniformComponents =
        new TVariable(BuiltInId::gl_MaxComputeUniformComponents,
                      BuiltInName::gl_MaxComputeUniformComponents, SymbolType::BuiltIn,
                      TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxComputeUniformComponents);
        static_cast<TVariable *>(m_gl_MaxComputeUniformComponents)->shareConstPointer(unionArray);
    }
    m_gl_MaxComputeTextureImageUnits =
        new TVariable(BuiltInId::gl_MaxComputeTextureImageUnits,
                      BuiltInName::gl_MaxComputeTextureImageUnits, SymbolType::BuiltIn,
                      TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxComputeTextureImageUnits);
        static_cast<TVariable *>(m_gl_MaxComputeTextureImageUnits)->shareConstPointer(unionArray);
    }
    m_gl_MaxComputeAtomicCounters =
        new TVariable(BuiltInId::gl_MaxComputeAtomicCounters,
                      BuiltInName::gl_MaxComputeAtomicCounters, SymbolType::BuiltIn,
                      TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxComputeAtomicCounters);
        static_cast<TVariable *>(m_gl_MaxComputeAtomicCounters)->shareConstPointer(unionArray);
    }
    m_gl_MaxComputeAtomicCounterBuffers =
        new TVariable(BuiltInId::gl_MaxComputeAtomicCounterBuffers,
                      BuiltInName::gl_MaxComputeAtomicCounterBuffers, SymbolType::BuiltIn,
                      TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxComputeAtomicCounterBuffers);
        static_cast<TVariable *>(m_gl_MaxComputeAtomicCounterBuffers)
            ->shareConstPointer(unionArray);
    }
    m_gl_MaxVertexAtomicCounters =
        new TVariable(BuiltInId::gl_MaxVertexAtomicCounters,
                      BuiltInName::gl_MaxVertexAtomicCounters, SymbolType::BuiltIn,
                      TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxVertexAtomicCounters);
        static_cast<TVariable *>(m_gl_MaxVertexAtomicCounters)->shareConstPointer(unionArray);
    }
    m_gl_MaxFragmentAtomicCounters =
        new TVariable(BuiltInId::gl_MaxFragmentAtomicCounters,
                      BuiltInName::gl_MaxFragmentAtomicCounters, SymbolType::BuiltIn,
                      TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxFragmentAtomicCounters);
        static_cast<TVariable *>(m_gl_MaxFragmentAtomicCounters)->shareConstPointer(unionArray);
    }
    m_gl_MaxCombinedAtomicCounters =
        new TVariable(BuiltInId::gl_MaxCombinedAtomicCounters,
                      BuiltInName::gl_MaxCombinedAtomicCounters, SymbolType::BuiltIn,
                      TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxCombinedAtomicCounters);
        static_cast<TVariable *>(m_gl_MaxCombinedAtomicCounters)->shareConstPointer(unionArray);
    }
    m_gl_MaxAtomicCounterBindings =
        new TVariable(BuiltInId::gl_MaxAtomicCounterBindings,
                      BuiltInName::gl_MaxAtomicCounterBindings, SymbolType::BuiltIn,
                      TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxAtomicCounterBindings);
        static_cast<TVariable *>(m_gl_MaxAtomicCounterBindings)->shareConstPointer(unionArray);
    }
    m_gl_MaxVertexAtomicCounterBuffers =
        new TVariable(BuiltInId::gl_MaxVertexAtomicCounterBuffers,
                      BuiltInName::gl_MaxVertexAtomicCounterBuffers, SymbolType::BuiltIn,
                      TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxVertexAtomicCounterBuffers);
        static_cast<TVariable *>(m_gl_MaxVertexAtomicCounterBuffers)->shareConstPointer(unionArray);
    }
    m_gl_MaxFragmentAtomicCounterBuffers =
        new TVariable(BuiltInId::gl_MaxFragmentAtomicCounterBuffers,
                      BuiltInName::gl_MaxFragmentAtomicCounterBuffers, SymbolType::BuiltIn,
                      TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxFragmentAtomicCounterBuffers);
        static_cast<TVariable *>(m_gl_MaxFragmentAtomicCounterBuffers)
            ->shareConstPointer(unionArray);
    }
    m_gl_MaxCombinedAtomicCounterBuffers =
        new TVariable(BuiltInId::gl_MaxCombinedAtomicCounterBuffers,
                      BuiltInName::gl_MaxCombinedAtomicCounterBuffers, SymbolType::BuiltIn,
                      TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxCombinedAtomicCounterBuffers);
        static_cast<TVariable *>(m_gl_MaxCombinedAtomicCounterBuffers)
            ->shareConstPointer(unionArray);
    }
    m_gl_MaxAtomicCounterBufferSize =
        new TVariable(BuiltInId::gl_MaxAtomicCounterBufferSize,
                      BuiltInName::gl_MaxAtomicCounterBufferSize, SymbolType::BuiltIn,
                      TExtension::UNDEFINED, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxAtomicCounterBufferSize);
        static_cast<TVariable *>(m_gl_MaxAtomicCounterBufferSize)->shareConstPointer(unionArray);
    }
    m_gl_MaxGeometryInputComponents = new TVariable(
        BuiltInId::gl_MaxGeometryInputComponents, BuiltInName::gl_MaxGeometryInputComponents,
        SymbolType::BuiltIn, TExtension::EXT_geometry_shader,
        StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxGeometryInputComponents);
        static_cast<TVariable *>(m_gl_MaxGeometryInputComponents)->shareConstPointer(unionArray);
    }
    m_gl_MaxGeometryOutputComponents = new TVariable(
        BuiltInId::gl_MaxGeometryOutputComponents, BuiltInName::gl_MaxGeometryOutputComponents,
        SymbolType::BuiltIn, TExtension::EXT_geometry_shader,
        StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxGeometryOutputComponents);
        static_cast<TVariable *>(m_gl_MaxGeometryOutputComponents)->shareConstPointer(unionArray);
    }
    m_gl_MaxGeometryImageUniforms = new TVariable(
        BuiltInId::gl_MaxGeometryImageUniforms, BuiltInName::gl_MaxGeometryImageUniforms,
        SymbolType::BuiltIn, TExtension::EXT_geometry_shader,
        StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxGeometryImageUniforms);
        static_cast<TVariable *>(m_gl_MaxGeometryImageUniforms)->shareConstPointer(unionArray);
    }
    m_gl_MaxGeometryTextureImageUnits = new TVariable(
        BuiltInId::gl_MaxGeometryTextureImageUnits, BuiltInName::gl_MaxGeometryTextureImageUnits,
        SymbolType::BuiltIn, TExtension::EXT_geometry_shader,
        StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxGeometryTextureImageUnits);
        static_cast<TVariable *>(m_gl_MaxGeometryTextureImageUnits)->shareConstPointer(unionArray);
    }
    m_gl_MaxGeometryOutputVertices = new TVariable(
        BuiltInId::gl_MaxGeometryOutputVertices, BuiltInName::gl_MaxGeometryOutputVertices,
        SymbolType::BuiltIn, TExtension::EXT_geometry_shader,
        StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxGeometryOutputVertices);
        static_cast<TVariable *>(m_gl_MaxGeometryOutputVertices)->shareConstPointer(unionArray);
    }
    m_gl_MaxGeometryTotalOutputComponents = new TVariable(
        BuiltInId::gl_MaxGeometryTotalOutputComponents,
        BuiltInName::gl_MaxGeometryTotalOutputComponents, SymbolType::BuiltIn,
        TExtension::EXT_geometry_shader, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxGeometryTotalOutputComponents);
        static_cast<TVariable *>(m_gl_MaxGeometryTotalOutputComponents)
            ->shareConstPointer(unionArray);
    }
    m_gl_MaxGeometryUniformComponents = new TVariable(
        BuiltInId::gl_MaxGeometryUniformComponents, BuiltInName::gl_MaxGeometryUniformComponents,
        SymbolType::BuiltIn, TExtension::EXT_geometry_shader,
        StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxGeometryUniformComponents);
        static_cast<TVariable *>(m_gl_MaxGeometryUniformComponents)->shareConstPointer(unionArray);
    }
    m_gl_MaxGeometryAtomicCounters = new TVariable(
        BuiltInId::gl_MaxGeometryAtomicCounters, BuiltInName::gl_MaxGeometryAtomicCounters,
        SymbolType::BuiltIn, TExtension::EXT_geometry_shader,
        StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxGeometryAtomicCounters);
        static_cast<TVariable *>(m_gl_MaxGeometryAtomicCounters)->shareConstPointer(unionArray);
    }
    m_gl_MaxGeometryAtomicCounterBuffers = new TVariable(
        BuiltInId::gl_MaxGeometryAtomicCounterBuffers,
        BuiltInName::gl_MaxGeometryAtomicCounterBuffers, SymbolType::BuiltIn,
        TExtension::EXT_geometry_shader, StaticType::Get<EbtInt, EbpMedium, EvqConst, 1, 1>());
    {
        TConstantUnion *unionArray = new TConstantUnion[1];
        unionArray[0].setIConst(resources.MaxGeometryAtomicCounterBuffers);
        static_cast<TVariable *>(m_gl_MaxGeometryAtomicCounterBuffers)
            ->shareConstPointer(unionArray);
    }
    TType *type_gl_FragData = new TType(EbtFloat, EbpMedium, EvqFragData, 4);
    if (spec != SH_WEBGL2_SPEC && spec != SH_WEBGL3_SPEC)
    {
        type_gl_FragData->makeArray(resources.MaxDrawBuffers);
    }
    else
    {
        type_gl_FragData->makeArray(1u);
    }
    type_gl_FragData->realize();
    m_gl_FragData = new TVariable(BuiltInId::gl_FragData, BuiltInName::gl_FragData,
                                  SymbolType::BuiltIn, TExtension::UNDEFINED, type_gl_FragData);
    TType *type_gl_SecondaryFragDataEXT =
        new TType(EbtFloat, EbpMedium, EvqSecondaryFragDataEXT, 4, 1);
    type_gl_SecondaryFragDataEXT->makeArray(resources.MaxDualSourceDrawBuffers);
    type_gl_SecondaryFragDataEXT->realize();
    m_gl_SecondaryFragDataEXT = new TVariable(
        BuiltInId::gl_SecondaryFragDataEXT, BuiltInName::gl_SecondaryFragDataEXT,
        SymbolType::BuiltIn, TExtension::EXT_blend_func_extended, type_gl_SecondaryFragDataEXT);
    TType *type_gl_FragDepthEXT = new TType(
        EbtFloat, resources.FragmentPrecisionHigh ? EbpHigh : EbpMedium, EvqFragDepthEXT, 1);
    type_gl_FragDepthEXT->realize();
    m_gl_FragDepthEXT =
        new TVariable(BuiltInId::gl_FragDepthEXT, BuiltInName::gl_FragDepthEXT, SymbolType::BuiltIn,
                      TExtension::EXT_frag_depth, type_gl_FragDepthEXT);
    TType *type_gl_LastFragData = new TType(EbtFloat, EbpMedium, EvqLastFragData, 4, 1);
    type_gl_LastFragData->makeArray(resources.MaxDrawBuffers);
    type_gl_LastFragData->realize();
    m_gl_LastFragData =
        new TVariable(BuiltInId::gl_LastFragData, BuiltInName::gl_LastFragData, SymbolType::BuiltIn,
                      TExtension::EXT_shader_framebuffer_fetch, type_gl_LastFragData);
    TType *type_gl_LastFragDataNV = new TType(EbtFloat, EbpMedium, EvqLastFragData, 4, 1);
    type_gl_LastFragDataNV->makeArray(resources.MaxDrawBuffers);
    type_gl_LastFragDataNV->realize();
    m_gl_LastFragDataNV = new TVariable(
        BuiltInId::gl_LastFragDataNV, BuiltInName::gl_LastFragData, SymbolType::BuiltIn,
        TExtension::NV_shader_framebuffer_fetch, type_gl_LastFragDataNV);
    TFieldList *fields_gl_PerVertex = new TFieldList();
    fields_gl_PerVertex->push_back(new TField(new TType(EbtFloat, EbpHigh, EvqPosition, 4, 1),
                                              BuiltInName::gl_Position, zeroSourceLoc,
                                              SymbolType::BuiltIn));
    TInterfaceBlock *gl_PerVertex =
        new TInterfaceBlock(BuiltInId::gl_PerVertex, BuiltInName::gl_PerVertex,
                            TExtension::EXT_geometry_shader, fields_gl_PerVertex);
    m_gl_PerVertex    = gl_PerVertex;
    TType *type_gl_in = new TType(gl_PerVertex, EvqPerVertexIn, TLayoutQualifier::Create());
    type_gl_in->makeArray(0u);
    type_gl_in->realize();
    m_gl_in = new TVariable(BuiltInId::gl_in, BuiltInName::gl_in, SymbolType::BuiltIn,
                            TExtension::EXT_geometry_shader, type_gl_in);
    TFieldList *fields_gl_PerVertexOutBlock = new TFieldList();
    fields_gl_PerVertexOutBlock->push_back(
        new TField(new TType(EbtFloat, EbpHigh, EvqPosition, 4, 1), BuiltInName::gl_Position,
                   zeroSourceLoc, SymbolType::BuiltIn));
    TInterfaceBlock *gl_PerVertexOutBlock =
        new TInterfaceBlock(BuiltInId::gl_PerVertexOutBlock, BuiltInName::gl_PerVertex,
                            TExtension::EXT_geometry_shader, fields_gl_PerVertexOutBlock);
    TType *type_gl_PositionGS = new TType(EbtFloat, EbpHigh, EvqPosition, 4);
    type_gl_PositionGS->setInterfaceBlock(gl_PerVertexOutBlock);
    type_gl_PositionGS->realize();
    m_gl_PositionGS =
        new TVariable(BuiltInId::gl_PositionGS, BuiltInName::gl_Position, SymbolType::BuiltIn,
                      TExtension::EXT_geometry_shader, type_gl_PositionGS);
}

namespace
{
uint16_t GetNextRuleIndex(uint32_t nameHash)
{
    if (nameHash == 968 - 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 >= 968)
        return nullptr;

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

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

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

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

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

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

}  // namespace sh
