// 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.
const TSymbolUniqueId BuiltInId::radians_Float1                           = TSymbolUniqueId(2300);
const TSymbolUniqueId BuiltInId::pt00B                                    = TSymbolUniqueId(2301);
const TSymbolUniqueId BuiltInId::radians_Float2                           = TSymbolUniqueId(2302);
const TSymbolUniqueId BuiltInId::pt10B                                    = TSymbolUniqueId(2303);
const TSymbolUniqueId BuiltInId::radians_Float3                           = TSymbolUniqueId(2304);
const TSymbolUniqueId BuiltInId::pt20B                                    = TSymbolUniqueId(2305);
const TSymbolUniqueId BuiltInId::radians_Float4                           = TSymbolUniqueId(2306);
const TSymbolUniqueId BuiltInId::pt30B                                    = TSymbolUniqueId(2307);
const TSymbolUniqueId BuiltInId::degrees_Float1                           = TSymbolUniqueId(2308);
const TSymbolUniqueId BuiltInId::degrees_Float2                           = TSymbolUniqueId(2309);
const TSymbolUniqueId BuiltInId::degrees_Float3                           = TSymbolUniqueId(2310);
const TSymbolUniqueId BuiltInId::degrees_Float4                           = TSymbolUniqueId(2311);
const TSymbolUniqueId BuiltInId::sin_Float1                               = TSymbolUniqueId(2312);
const TSymbolUniqueId BuiltInId::sin_Float2                               = TSymbolUniqueId(2313);
const TSymbolUniqueId BuiltInId::sin_Float3                               = TSymbolUniqueId(2314);
const TSymbolUniqueId BuiltInId::sin_Float4                               = TSymbolUniqueId(2315);
const TSymbolUniqueId BuiltInId::cos_Float1                               = TSymbolUniqueId(2316);
const TSymbolUniqueId BuiltInId::cos_Float2                               = TSymbolUniqueId(2317);
const TSymbolUniqueId BuiltInId::cos_Float3                               = TSymbolUniqueId(2318);
const TSymbolUniqueId BuiltInId::cos_Float4                               = TSymbolUniqueId(2319);
const TSymbolUniqueId BuiltInId::tan_Float1                               = TSymbolUniqueId(2320);
const TSymbolUniqueId BuiltInId::tan_Float2                               = TSymbolUniqueId(2321);
const TSymbolUniqueId BuiltInId::tan_Float3                               = TSymbolUniqueId(2322);
const TSymbolUniqueId BuiltInId::tan_Float4                               = TSymbolUniqueId(2323);
const TSymbolUniqueId BuiltInId::asin_Float1                              = TSymbolUniqueId(2324);
const TSymbolUniqueId BuiltInId::asin_Float2                              = TSymbolUniqueId(2325);
const TSymbolUniqueId BuiltInId::asin_Float3                              = TSymbolUniqueId(2326);
const TSymbolUniqueId BuiltInId::asin_Float4                              = TSymbolUniqueId(2327);
const TSymbolUniqueId BuiltInId::acos_Float1                              = TSymbolUniqueId(2328);
const TSymbolUniqueId BuiltInId::acos_Float2                              = TSymbolUniqueId(2329);
const TSymbolUniqueId BuiltInId::acos_Float3                              = TSymbolUniqueId(2330);
const TSymbolUniqueId BuiltInId::acos_Float4                              = TSymbolUniqueId(2331);
const TSymbolUniqueId BuiltInId::atan_Float1_Float1                       = TSymbolUniqueId(2332);
const TSymbolUniqueId BuiltInId::atan_Float2_Float2                       = TSymbolUniqueId(2333);
const TSymbolUniqueId BuiltInId::atan_Float3_Float3                       = TSymbolUniqueId(2334);
const TSymbolUniqueId BuiltInId::atan_Float4_Float4                       = TSymbolUniqueId(2335);
const TSymbolUniqueId BuiltInId::atan_Float1                              = TSymbolUniqueId(2336);
const TSymbolUniqueId BuiltInId::atan_Float2                              = TSymbolUniqueId(2337);
const TSymbolUniqueId BuiltInId::atan_Float3                              = TSymbolUniqueId(2338);
const TSymbolUniqueId BuiltInId::atan_Float4                              = TSymbolUniqueId(2339);
const TSymbolUniqueId BuiltInId::sinh_Float1                              = TSymbolUniqueId(2340);
const TSymbolUniqueId BuiltInId::sinh_Float2                              = TSymbolUniqueId(2341);
const TSymbolUniqueId BuiltInId::sinh_Float3                              = TSymbolUniqueId(2342);
const TSymbolUniqueId BuiltInId::sinh_Float4                              = TSymbolUniqueId(2343);
const TSymbolUniqueId BuiltInId::cosh_Float1                              = TSymbolUniqueId(2344);
const TSymbolUniqueId BuiltInId::cosh_Float2                              = TSymbolUniqueId(2345);
const TSymbolUniqueId BuiltInId::cosh_Float3                              = TSymbolUniqueId(2346);
const TSymbolUniqueId BuiltInId::cosh_Float4                              = TSymbolUniqueId(2347);
const TSymbolUniqueId BuiltInId::tanh_Float1                              = TSymbolUniqueId(2348);
const TSymbolUniqueId BuiltInId::tanh_Float2                              = TSymbolUniqueId(2349);
const TSymbolUniqueId BuiltInId::tanh_Float3                              = TSymbolUniqueId(2350);
const TSymbolUniqueId BuiltInId::tanh_Float4                              = TSymbolUniqueId(2351);
const TSymbolUniqueId BuiltInId::asinh_Float1                             = TSymbolUniqueId(2352);
const TSymbolUniqueId BuiltInId::asinh_Float2                             = TSymbolUniqueId(2353);
const TSymbolUniqueId BuiltInId::asinh_Float3                             = TSymbolUniqueId(2354);
const TSymbolUniqueId BuiltInId::asinh_Float4                             = TSymbolUniqueId(2355);
const TSymbolUniqueId BuiltInId::acosh_Float1                             = TSymbolUniqueId(2356);
const TSymbolUniqueId BuiltInId::acosh_Float2                             = TSymbolUniqueId(2357);
const TSymbolUniqueId BuiltInId::acosh_Float3                             = TSymbolUniqueId(2358);
const TSymbolUniqueId BuiltInId::acosh_Float4                             = TSymbolUniqueId(2359);
const TSymbolUniqueId BuiltInId::atanh_Float1                             = TSymbolUniqueId(2360);
const TSymbolUniqueId BuiltInId::atanh_Float2                             = TSymbolUniqueId(2361);
const TSymbolUniqueId BuiltInId::atanh_Float3                             = TSymbolUniqueId(2362);
const TSymbolUniqueId BuiltInId::atanh_Float4                             = TSymbolUniqueId(2363);
const TSymbolUniqueId BuiltInId::pow_Float1_Float1                        = TSymbolUniqueId(2364);
const TSymbolUniqueId BuiltInId::pow_Float2_Float2                        = TSymbolUniqueId(2365);
const TSymbolUniqueId BuiltInId::pow_Float3_Float3                        = TSymbolUniqueId(2366);
const TSymbolUniqueId BuiltInId::pow_Float4_Float4                        = TSymbolUniqueId(2367);
const TSymbolUniqueId BuiltInId::exp_Float1                               = TSymbolUniqueId(2368);
const TSymbolUniqueId BuiltInId::exp_Float2                               = TSymbolUniqueId(2369);
const TSymbolUniqueId BuiltInId::exp_Float3                               = TSymbolUniqueId(2370);
const TSymbolUniqueId BuiltInId::exp_Float4                               = TSymbolUniqueId(2371);
const TSymbolUniqueId BuiltInId::log_Float1                               = TSymbolUniqueId(2372);
const TSymbolUniqueId BuiltInId::log_Float2                               = TSymbolUniqueId(2373);
const TSymbolUniqueId BuiltInId::log_Float3                               = TSymbolUniqueId(2374);
const TSymbolUniqueId BuiltInId::log_Float4                               = TSymbolUniqueId(2375);
const TSymbolUniqueId BuiltInId::exp2_Float1                              = TSymbolUniqueId(2376);
const TSymbolUniqueId BuiltInId::exp2_Float2                              = TSymbolUniqueId(2377);
const TSymbolUniqueId BuiltInId::exp2_Float3                              = TSymbolUniqueId(2378);
const TSymbolUniqueId BuiltInId::exp2_Float4                              = TSymbolUniqueId(2379);
const TSymbolUniqueId BuiltInId::log2_Float1                              = TSymbolUniqueId(2380);
const TSymbolUniqueId BuiltInId::log2_Float2                              = TSymbolUniqueId(2381);
const TSymbolUniqueId BuiltInId::log2_Float3                              = TSymbolUniqueId(2382);
const TSymbolUniqueId BuiltInId::log2_Float4                              = TSymbolUniqueId(2383);
const TSymbolUniqueId BuiltInId::sqrt_Float1                              = TSymbolUniqueId(2384);
const TSymbolUniqueId BuiltInId::sqrt_Float2                              = TSymbolUniqueId(2385);
const TSymbolUniqueId BuiltInId::sqrt_Float3                              = TSymbolUniqueId(2386);
const TSymbolUniqueId BuiltInId::sqrt_Float4                              = TSymbolUniqueId(2387);
const TSymbolUniqueId BuiltInId::inversesqrt_Float1                       = TSymbolUniqueId(2388);
const TSymbolUniqueId BuiltInId::inversesqrt_Float2                       = TSymbolUniqueId(2389);
const TSymbolUniqueId BuiltInId::inversesqrt_Float3                       = TSymbolUniqueId(2390);
const TSymbolUniqueId BuiltInId::inversesqrt_Float4                       = TSymbolUniqueId(2391);
const TSymbolUniqueId BuiltInId::abs_Float1                               = TSymbolUniqueId(2392);
const TSymbolUniqueId BuiltInId::abs_Float2                               = TSymbolUniqueId(2393);
const TSymbolUniqueId BuiltInId::abs_Float3                               = TSymbolUniqueId(2394);
const TSymbolUniqueId BuiltInId::abs_Float4                               = TSymbolUniqueId(2395);
const TSymbolUniqueId BuiltInId::abs_Int1                                 = TSymbolUniqueId(2396);
const TSymbolUniqueId BuiltInId::pt00D                                    = TSymbolUniqueId(2397);
const TSymbolUniqueId BuiltInId::abs_Int2                                 = TSymbolUniqueId(2398);
const TSymbolUniqueId BuiltInId::pt10D                                    = TSymbolUniqueId(2399);
const TSymbolUniqueId BuiltInId::abs_Int3                                 = TSymbolUniqueId(2400);
const TSymbolUniqueId BuiltInId::pt20D                                    = TSymbolUniqueId(2401);
const TSymbolUniqueId BuiltInId::abs_Int4                                 = TSymbolUniqueId(2402);
const TSymbolUniqueId BuiltInId::pt30D                                    = TSymbolUniqueId(2403);
const TSymbolUniqueId BuiltInId::sign_Float1                              = TSymbolUniqueId(2404);
const TSymbolUniqueId BuiltInId::sign_Float2                              = TSymbolUniqueId(2405);
const TSymbolUniqueId BuiltInId::sign_Float3                              = TSymbolUniqueId(2406);
const TSymbolUniqueId BuiltInId::sign_Float4                              = TSymbolUniqueId(2407);
const TSymbolUniqueId BuiltInId::sign_Int1                                = TSymbolUniqueId(2408);
const TSymbolUniqueId BuiltInId::sign_Int2                                = TSymbolUniqueId(2409);
const TSymbolUniqueId BuiltInId::sign_Int3                                = TSymbolUniqueId(2410);
const TSymbolUniqueId BuiltInId::sign_Int4                                = TSymbolUniqueId(2411);
const TSymbolUniqueId BuiltInId::floor_Float1                             = TSymbolUniqueId(2412);
const TSymbolUniqueId BuiltInId::floor_Float2                             = TSymbolUniqueId(2413);
const TSymbolUniqueId BuiltInId::floor_Float3                             = TSymbolUniqueId(2414);
const TSymbolUniqueId BuiltInId::floor_Float4                             = TSymbolUniqueId(2415);
const TSymbolUniqueId BuiltInId::trunc_Float1                             = TSymbolUniqueId(2416);
const TSymbolUniqueId BuiltInId::trunc_Float2                             = TSymbolUniqueId(2417);
const TSymbolUniqueId BuiltInId::trunc_Float3                             = TSymbolUniqueId(2418);
const TSymbolUniqueId BuiltInId::trunc_Float4                             = TSymbolUniqueId(2419);
const TSymbolUniqueId BuiltInId::round_Float1                             = TSymbolUniqueId(2420);
const TSymbolUniqueId BuiltInId::round_Float2                             = TSymbolUniqueId(2421);
const TSymbolUniqueId BuiltInId::round_Float3                             = TSymbolUniqueId(2422);
const TSymbolUniqueId BuiltInId::round_Float4                             = TSymbolUniqueId(2423);
const TSymbolUniqueId BuiltInId::roundEven_Float1                         = TSymbolUniqueId(2424);
const TSymbolUniqueId BuiltInId::roundEven_Float2                         = TSymbolUniqueId(2425);
const TSymbolUniqueId BuiltInId::roundEven_Float3                         = TSymbolUniqueId(2426);
const TSymbolUniqueId BuiltInId::roundEven_Float4                         = TSymbolUniqueId(2427);
const TSymbolUniqueId BuiltInId::ceil_Float1                              = TSymbolUniqueId(2428);
const TSymbolUniqueId BuiltInId::ceil_Float2                              = TSymbolUniqueId(2429);
const TSymbolUniqueId BuiltInId::ceil_Float3                              = TSymbolUniqueId(2430);
const TSymbolUniqueId BuiltInId::ceil_Float4                              = TSymbolUniqueId(2431);
const TSymbolUniqueId BuiltInId::fract_Float1                             = TSymbolUniqueId(2432);
const TSymbolUniqueId BuiltInId::fract_Float2                             = TSymbolUniqueId(2433);
const TSymbolUniqueId BuiltInId::fract_Float3                             = TSymbolUniqueId(2434);
const TSymbolUniqueId BuiltInId::fract_Float4                             = TSymbolUniqueId(2435);
const TSymbolUniqueId BuiltInId::mod_Float1_Float1                        = TSymbolUniqueId(2436);
const TSymbolUniqueId BuiltInId::mod_Float2_Float1                        = TSymbolUniqueId(2437);
const TSymbolUniqueId BuiltInId::mod_Float3_Float1                        = TSymbolUniqueId(2438);
const TSymbolUniqueId BuiltInId::mod_Float4_Float1                        = TSymbolUniqueId(2439);
const TSymbolUniqueId BuiltInId::mod_Float2_Float2                        = TSymbolUniqueId(2440);
const TSymbolUniqueId BuiltInId::mod_Float3_Float3                        = TSymbolUniqueId(2441);
const TSymbolUniqueId BuiltInId::mod_Float4_Float4                        = TSymbolUniqueId(2442);
const TSymbolUniqueId BuiltInId::min_Float1_Float1                        = TSymbolUniqueId(2443);
const TSymbolUniqueId BuiltInId::min_Float2_Float1                        = TSymbolUniqueId(2444);
const TSymbolUniqueId BuiltInId::min_Float3_Float1                        = TSymbolUniqueId(2445);
const TSymbolUniqueId BuiltInId::min_Float4_Float1                        = TSymbolUniqueId(2446);
const TSymbolUniqueId BuiltInId::min_Float2_Float2                        = TSymbolUniqueId(2447);
const TSymbolUniqueId BuiltInId::min_Float3_Float3                        = TSymbolUniqueId(2448);
const TSymbolUniqueId BuiltInId::min_Float4_Float4                        = TSymbolUniqueId(2449);
const TSymbolUniqueId BuiltInId::min_Int1_Int1                            = TSymbolUniqueId(2450);
const TSymbolUniqueId BuiltInId::min_Int2_Int2                            = TSymbolUniqueId(2451);
const TSymbolUniqueId BuiltInId::min_Int3_Int3                            = TSymbolUniqueId(2452);
const TSymbolUniqueId BuiltInId::min_Int4_Int4                            = TSymbolUniqueId(2453);
const TSymbolUniqueId BuiltInId::min_Int2_Int1                            = TSymbolUniqueId(2454);
const TSymbolUniqueId BuiltInId::min_Int3_Int1                            = TSymbolUniqueId(2455);
const TSymbolUniqueId BuiltInId::min_Int4_Int1                            = TSymbolUniqueId(2456);
const TSymbolUniqueId BuiltInId::min_UInt1_UInt1                          = TSymbolUniqueId(2457);
const TSymbolUniqueId BuiltInId::pt00E                                    = TSymbolUniqueId(2458);
const TSymbolUniqueId BuiltInId::min_UInt2_UInt2                          = TSymbolUniqueId(2459);
const TSymbolUniqueId BuiltInId::pt10E                                    = TSymbolUniqueId(2460);
const TSymbolUniqueId BuiltInId::min_UInt3_UInt3                          = TSymbolUniqueId(2461);
const TSymbolUniqueId BuiltInId::pt20E                                    = TSymbolUniqueId(2462);
const TSymbolUniqueId BuiltInId::min_UInt4_UInt4                          = TSymbolUniqueId(2463);
const TSymbolUniqueId BuiltInId::pt30E                                    = TSymbolUniqueId(2464);
const TSymbolUniqueId BuiltInId::min_UInt2_UInt1                          = TSymbolUniqueId(2465);
const TSymbolUniqueId BuiltInId::min_UInt3_UInt1                          = TSymbolUniqueId(2466);
const TSymbolUniqueId BuiltInId::min_UInt4_UInt1                          = TSymbolUniqueId(2467);
const TSymbolUniqueId BuiltInId::max_Float1_Float1                        = TSymbolUniqueId(2468);
const TSymbolUniqueId BuiltInId::max_Float2_Float1                        = TSymbolUniqueId(2469);
const TSymbolUniqueId BuiltInId::max_Float3_Float1                        = TSymbolUniqueId(2470);
const TSymbolUniqueId BuiltInId::max_Float4_Float1                        = TSymbolUniqueId(2471);
const TSymbolUniqueId BuiltInId::max_Float2_Float2                        = TSymbolUniqueId(2472);
const TSymbolUniqueId BuiltInId::max_Float3_Float3                        = TSymbolUniqueId(2473);
const TSymbolUniqueId BuiltInId::max_Float4_Float4                        = TSymbolUniqueId(2474);
const TSymbolUniqueId BuiltInId::max_Int1_Int1                            = TSymbolUniqueId(2475);
const TSymbolUniqueId BuiltInId::max_Int2_Int2                            = TSymbolUniqueId(2476);
const TSymbolUniqueId BuiltInId::max_Int3_Int3                            = TSymbolUniqueId(2477);
const TSymbolUniqueId BuiltInId::max_Int4_Int4                            = TSymbolUniqueId(2478);
const TSymbolUniqueId BuiltInId::max_Int2_Int1                            = TSymbolUniqueId(2479);
const TSymbolUniqueId BuiltInId::max_Int3_Int1                            = TSymbolUniqueId(2480);
const TSymbolUniqueId BuiltInId::max_Int4_Int1                            = TSymbolUniqueId(2481);
const TSymbolUniqueId BuiltInId::max_UInt1_UInt1                          = TSymbolUniqueId(2482);
const TSymbolUniqueId BuiltInId::max_UInt2_UInt2                          = TSymbolUniqueId(2483);
const TSymbolUniqueId BuiltInId::max_UInt3_UInt3                          = TSymbolUniqueId(2484);
const TSymbolUniqueId BuiltInId::max_UInt4_UInt4                          = TSymbolUniqueId(2485);
const TSymbolUniqueId BuiltInId::max_UInt2_UInt1                          = TSymbolUniqueId(2486);
const TSymbolUniqueId BuiltInId::max_UInt3_UInt1                          = TSymbolUniqueId(2487);
const TSymbolUniqueId BuiltInId::max_UInt4_UInt1                          = TSymbolUniqueId(2488);
const TSymbolUniqueId BuiltInId::clamp_Float1_Float1_Float1               = TSymbolUniqueId(2489);
const TSymbolUniqueId BuiltInId::clamp_Float2_Float1_Float1               = TSymbolUniqueId(2490);
const TSymbolUniqueId BuiltInId::clamp_Float3_Float1_Float1               = TSymbolUniqueId(2491);
const TSymbolUniqueId BuiltInId::clamp_Float4_Float1_Float1               = TSymbolUniqueId(2492);
const TSymbolUniqueId BuiltInId::clamp_Float2_Float2_Float2               = TSymbolUniqueId(2493);
const TSymbolUniqueId BuiltInId::clamp_Float3_Float3_Float3               = TSymbolUniqueId(2494);
const TSymbolUniqueId BuiltInId::clamp_Float4_Float4_Float4               = TSymbolUniqueId(2495);
const TSymbolUniqueId BuiltInId::clamp_Int1_Int1_Int1                     = TSymbolUniqueId(2496);
const TSymbolUniqueId BuiltInId::clamp_Int2_Int1_Int1                     = TSymbolUniqueId(2497);
const TSymbolUniqueId BuiltInId::clamp_Int3_Int1_Int1                     = TSymbolUniqueId(2498);
const TSymbolUniqueId BuiltInId::clamp_Int4_Int1_Int1                     = TSymbolUniqueId(2499);
const TSymbolUniqueId BuiltInId::clamp_Int2_Int2_Int2                     = TSymbolUniqueId(2500);
const TSymbolUniqueId BuiltInId::clamp_Int3_Int3_Int3                     = TSymbolUniqueId(2501);
const TSymbolUniqueId BuiltInId::clamp_Int4_Int4_Int4                     = TSymbolUniqueId(2502);
const TSymbolUniqueId BuiltInId::clamp_UInt1_UInt1_UInt1                  = TSymbolUniqueId(2503);
const TSymbolUniqueId BuiltInId::clamp_UInt2_UInt1_UInt1                  = TSymbolUniqueId(2504);
const TSymbolUniqueId BuiltInId::clamp_UInt3_UInt1_UInt1                  = TSymbolUniqueId(2505);
const TSymbolUniqueId BuiltInId::clamp_UInt4_UInt1_UInt1                  = TSymbolUniqueId(2506);
const TSymbolUniqueId BuiltInId::clamp_UInt2_UInt2_UInt2                  = TSymbolUniqueId(2507);
const TSymbolUniqueId BuiltInId::clamp_UInt3_UInt3_UInt3                  = TSymbolUniqueId(2508);
const TSymbolUniqueId BuiltInId::clamp_UInt4_UInt4_UInt4                  = TSymbolUniqueId(2509);
const TSymbolUniqueId BuiltInId::mix_Float1_Float1_Float1                 = TSymbolUniqueId(2510);
const TSymbolUniqueId BuiltInId::mix_Float2_Float2_Float1                 = TSymbolUniqueId(2511);
const TSymbolUniqueId BuiltInId::mix_Float3_Float3_Float1                 = TSymbolUniqueId(2512);
const TSymbolUniqueId BuiltInId::mix_Float4_Float4_Float1                 = TSymbolUniqueId(2513);
const TSymbolUniqueId BuiltInId::mix_Float2_Float2_Float2                 = TSymbolUniqueId(2514);
const TSymbolUniqueId BuiltInId::mix_Float3_Float3_Float3                 = TSymbolUniqueId(2515);
const TSymbolUniqueId BuiltInId::mix_Float4_Float4_Float4                 = TSymbolUniqueId(2516);
const TSymbolUniqueId BuiltInId::mix_Float1_Float1_Bool1                  = TSymbolUniqueId(2517);
const TSymbolUniqueId BuiltInId::pt00F                                    = TSymbolUniqueId(2518);
const TSymbolUniqueId BuiltInId::mix_Float2_Float2_Bool2                  = TSymbolUniqueId(2519);
const TSymbolUniqueId BuiltInId::pt10F                                    = TSymbolUniqueId(2520);
const TSymbolUniqueId BuiltInId::mix_Float3_Float3_Bool3                  = TSymbolUniqueId(2521);
const TSymbolUniqueId BuiltInId::pt20F                                    = TSymbolUniqueId(2522);
const TSymbolUniqueId BuiltInId::mix_Float4_Float4_Bool4                  = TSymbolUniqueId(2523);
const TSymbolUniqueId BuiltInId::pt30F                                    = TSymbolUniqueId(2524);
const TSymbolUniqueId BuiltInId::step_Float1_Float1                       = TSymbolUniqueId(2525);
const TSymbolUniqueId BuiltInId::step_Float2_Float2                       = TSymbolUniqueId(2526);
const TSymbolUniqueId BuiltInId::step_Float3_Float3                       = TSymbolUniqueId(2527);
const TSymbolUniqueId BuiltInId::step_Float4_Float4                       = TSymbolUniqueId(2528);
const TSymbolUniqueId BuiltInId::step_Float1_Float2                       = TSymbolUniqueId(2529);
const TSymbolUniqueId BuiltInId::step_Float1_Float3                       = TSymbolUniqueId(2530);
const TSymbolUniqueId BuiltInId::step_Float1_Float4                       = TSymbolUniqueId(2531);
const TSymbolUniqueId BuiltInId::smoothstep_Float1_Float1_Float1          = TSymbolUniqueId(2532);
const TSymbolUniqueId BuiltInId::smoothstep_Float2_Float2_Float2          = TSymbolUniqueId(2533);
const TSymbolUniqueId BuiltInId::smoothstep_Float3_Float3_Float3          = TSymbolUniqueId(2534);
const TSymbolUniqueId BuiltInId::smoothstep_Float4_Float4_Float4          = TSymbolUniqueId(2535);
const TSymbolUniqueId BuiltInId::smoothstep_Float1_Float1_Float2          = TSymbolUniqueId(2536);
const TSymbolUniqueId BuiltInId::smoothstep_Float1_Float1_Float3          = TSymbolUniqueId(2537);
const TSymbolUniqueId BuiltInId::smoothstep_Float1_Float1_Float4          = TSymbolUniqueId(2538);
const TSymbolUniqueId BuiltInId::modf_Float1_Float1                       = TSymbolUniqueId(2539);
const TSymbolUniqueId BuiltInId::pt_o_00B                                 = TSymbolUniqueId(2540);
const TSymbolUniqueId BuiltInId::modf_Float2_Float2                       = TSymbolUniqueId(2541);
const TSymbolUniqueId BuiltInId::pt_o_10B                                 = TSymbolUniqueId(2542);
const TSymbolUniqueId BuiltInId::modf_Float3_Float3                       = TSymbolUniqueId(2543);
const TSymbolUniqueId BuiltInId::pt_o_20B                                 = TSymbolUniqueId(2544);
const TSymbolUniqueId BuiltInId::modf_Float4_Float4                       = TSymbolUniqueId(2545);
const TSymbolUniqueId BuiltInId::pt_o_30B                                 = TSymbolUniqueId(2546);
const TSymbolUniqueId BuiltInId::isnan_Float1                             = TSymbolUniqueId(2547);
const TSymbolUniqueId BuiltInId::isnan_Float2                             = TSymbolUniqueId(2548);
const TSymbolUniqueId BuiltInId::isnan_Float3                             = TSymbolUniqueId(2549);
const TSymbolUniqueId BuiltInId::isnan_Float4                             = TSymbolUniqueId(2550);
const TSymbolUniqueId BuiltInId::isinf_Float1                             = TSymbolUniqueId(2551);
const TSymbolUniqueId BuiltInId::isinf_Float2                             = TSymbolUniqueId(2552);
const TSymbolUniqueId BuiltInId::isinf_Float3                             = TSymbolUniqueId(2553);
const TSymbolUniqueId BuiltInId::isinf_Float4                             = TSymbolUniqueId(2554);
const TSymbolUniqueId BuiltInId::floatBitsToInt_Float1                    = TSymbolUniqueId(2555);
const TSymbolUniqueId BuiltInId::floatBitsToInt_Float2                    = TSymbolUniqueId(2556);
const TSymbolUniqueId BuiltInId::floatBitsToInt_Float3                    = TSymbolUniqueId(2557);
const TSymbolUniqueId BuiltInId::floatBitsToInt_Float4                    = TSymbolUniqueId(2558);
const TSymbolUniqueId BuiltInId::floatBitsToUint_Float1                   = TSymbolUniqueId(2559);
const TSymbolUniqueId BuiltInId::floatBitsToUint_Float2                   = TSymbolUniqueId(2560);
const TSymbolUniqueId BuiltInId::floatBitsToUint_Float3                   = TSymbolUniqueId(2561);
const TSymbolUniqueId BuiltInId::floatBitsToUint_Float4                   = TSymbolUniqueId(2562);
const TSymbolUniqueId BuiltInId::intBitsToFloat_Int1                      = TSymbolUniqueId(2563);
const TSymbolUniqueId BuiltInId::intBitsToFloat_Int2                      = TSymbolUniqueId(2564);
const TSymbolUniqueId BuiltInId::intBitsToFloat_Int3                      = TSymbolUniqueId(2565);
const TSymbolUniqueId BuiltInId::intBitsToFloat_Int4                      = TSymbolUniqueId(2566);
const TSymbolUniqueId BuiltInId::uintBitsToFloat_UInt1                    = TSymbolUniqueId(2567);
const TSymbolUniqueId BuiltInId::uintBitsToFloat_UInt2                    = TSymbolUniqueId(2568);
const TSymbolUniqueId BuiltInId::uintBitsToFloat_UInt3                    = TSymbolUniqueId(2569);
const TSymbolUniqueId BuiltInId::uintBitsToFloat_UInt4                    = TSymbolUniqueId(2570);
const TSymbolUniqueId BuiltInId::frexp_Float1_Int1                        = TSymbolUniqueId(2571);
const TSymbolUniqueId BuiltInId::pt_o_00D                                 = TSymbolUniqueId(2572);
const TSymbolUniqueId BuiltInId::frexp_Float2_Int2                        = TSymbolUniqueId(2573);
const TSymbolUniqueId BuiltInId::pt_o_10D                                 = TSymbolUniqueId(2574);
const TSymbolUniqueId BuiltInId::frexp_Float3_Int3                        = TSymbolUniqueId(2575);
const TSymbolUniqueId BuiltInId::pt_o_20D                                 = TSymbolUniqueId(2576);
const TSymbolUniqueId BuiltInId::frexp_Float4_Int4                        = TSymbolUniqueId(2577);
const TSymbolUniqueId BuiltInId::pt_o_30D                                 = TSymbolUniqueId(2578);
const TSymbolUniqueId BuiltInId::ldexp_Float1_Int1                        = TSymbolUniqueId(2579);
const TSymbolUniqueId BuiltInId::ldexp_Float2_Int2                        = TSymbolUniqueId(2580);
const TSymbolUniqueId BuiltInId::ldexp_Float3_Int3                        = TSymbolUniqueId(2581);
const TSymbolUniqueId BuiltInId::ldexp_Float4_Int4                        = TSymbolUniqueId(2582);
const TSymbolUniqueId BuiltInId::packSnorm2x16_Float2                     = TSymbolUniqueId(2583);
const TSymbolUniqueId BuiltInId::packHalf2x16_Float2                      = TSymbolUniqueId(2584);
const TSymbolUniqueId BuiltInId::unpackSnorm2x16_UInt1                    = TSymbolUniqueId(2585);
const TSymbolUniqueId BuiltInId::unpackHalf2x16_UInt1                     = TSymbolUniqueId(2586);
const TSymbolUniqueId BuiltInId::packUnorm2x16_Float2                     = TSymbolUniqueId(2587);
const TSymbolUniqueId BuiltInId::unpackUnorm2x16_UInt1                    = TSymbolUniqueId(2588);
const TSymbolUniqueId BuiltInId::packUnorm4x8_Float4                      = TSymbolUniqueId(2589);
const TSymbolUniqueId BuiltInId::packSnorm4x8_Float4                      = TSymbolUniqueId(2590);
const TSymbolUniqueId BuiltInId::unpackUnorm4x8_UInt1                     = TSymbolUniqueId(2591);
const TSymbolUniqueId BuiltInId::unpackSnorm4x8_UInt1                     = TSymbolUniqueId(2592);
const TSymbolUniqueId BuiltInId::length_Float1                            = TSymbolUniqueId(2593);
const TSymbolUniqueId BuiltInId::length_Float2                            = TSymbolUniqueId(2594);
const TSymbolUniqueId BuiltInId::length_Float3                            = TSymbolUniqueId(2595);
const TSymbolUniqueId BuiltInId::length_Float4                            = TSymbolUniqueId(2596);
const TSymbolUniqueId BuiltInId::distance_Float1_Float1                   = TSymbolUniqueId(2597);
const TSymbolUniqueId BuiltInId::distance_Float2_Float2                   = TSymbolUniqueId(2598);
const TSymbolUniqueId BuiltInId::distance_Float3_Float3                   = TSymbolUniqueId(2599);
const TSymbolUniqueId BuiltInId::distance_Float4_Float4                   = TSymbolUniqueId(2600);
const TSymbolUniqueId BuiltInId::dot_Float1_Float1                        = TSymbolUniqueId(2601);
const TSymbolUniqueId BuiltInId::dot_Float2_Float2                        = TSymbolUniqueId(2602);
const TSymbolUniqueId BuiltInId::dot_Float3_Float3                        = TSymbolUniqueId(2603);
const TSymbolUniqueId BuiltInId::dot_Float4_Float4                        = TSymbolUniqueId(2604);
const TSymbolUniqueId BuiltInId::cross_Float3_Float3                      = TSymbolUniqueId(2605);
const TSymbolUniqueId BuiltInId::normalize_Float1                         = TSymbolUniqueId(2606);
const TSymbolUniqueId BuiltInId::normalize_Float2                         = TSymbolUniqueId(2607);
const TSymbolUniqueId BuiltInId::normalize_Float3                         = TSymbolUniqueId(2608);
const TSymbolUniqueId BuiltInId::normalize_Float4                         = TSymbolUniqueId(2609);
const TSymbolUniqueId BuiltInId::faceforward_Float1_Float1_Float1         = TSymbolUniqueId(2610);
const TSymbolUniqueId BuiltInId::faceforward_Float2_Float2_Float2         = TSymbolUniqueId(2611);
const TSymbolUniqueId BuiltInId::faceforward_Float3_Float3_Float3         = TSymbolUniqueId(2612);
const TSymbolUniqueId BuiltInId::faceforward_Float4_Float4_Float4         = TSymbolUniqueId(2613);
const TSymbolUniqueId BuiltInId::reflect_Float1_Float1                    = TSymbolUniqueId(2614);
const TSymbolUniqueId BuiltInId::reflect_Float2_Float2                    = TSymbolUniqueId(2615);
const TSymbolUniqueId BuiltInId::reflect_Float3_Float3                    = TSymbolUniqueId(2616);
const TSymbolUniqueId BuiltInId::reflect_Float4_Float4                    = TSymbolUniqueId(2617);
const TSymbolUniqueId BuiltInId::refract_Float1_Float1_Float1             = TSymbolUniqueId(2618);
const TSymbolUniqueId BuiltInId::refract_Float2_Float2_Float1             = TSymbolUniqueId(2619);
const TSymbolUniqueId BuiltInId::refract_Float3_Float3_Float1             = TSymbolUniqueId(2620);
const TSymbolUniqueId BuiltInId::refract_Float4_Float4_Float1             = TSymbolUniqueId(2621);
const TSymbolUniqueId BuiltInId::matrixCompMult_Float2x2_Float2x2         = TSymbolUniqueId(2622);
const TSymbolUniqueId BuiltInId::pt50B                                    = TSymbolUniqueId(2623);
const TSymbolUniqueId BuiltInId::matrixCompMult_Float3x3_Float3x3         = TSymbolUniqueId(2624);
const TSymbolUniqueId BuiltInId::ptA0B                                    = TSymbolUniqueId(2625);
const TSymbolUniqueId BuiltInId::matrixCompMult_Float4x4_Float4x4         = TSymbolUniqueId(2626);
const TSymbolUniqueId BuiltInId::ptF0B                                    = TSymbolUniqueId(2627);
const TSymbolUniqueId BuiltInId::matrixCompMult_Float2x3_Float2x3         = TSymbolUniqueId(2628);
const TSymbolUniqueId BuiltInId::pt90B                                    = TSymbolUniqueId(2629);
const TSymbolUniqueId BuiltInId::matrixCompMult_Float3x2_Float3x2         = TSymbolUniqueId(2630);
const TSymbolUniqueId BuiltInId::pt60B                                    = TSymbolUniqueId(2631);
const TSymbolUniqueId BuiltInId::matrixCompMult_Float2x4_Float2x4         = TSymbolUniqueId(2632);
const TSymbolUniqueId BuiltInId::ptD0B                                    = TSymbolUniqueId(2633);
const TSymbolUniqueId BuiltInId::matrixCompMult_Float4x2_Float4x2         = TSymbolUniqueId(2634);
const TSymbolUniqueId BuiltInId::pt70B                                    = TSymbolUniqueId(2635);
const TSymbolUniqueId BuiltInId::matrixCompMult_Float3x4_Float3x4         = TSymbolUniqueId(2636);
const TSymbolUniqueId BuiltInId::ptE0B                                    = TSymbolUniqueId(2637);
const TSymbolUniqueId BuiltInId::matrixCompMult_Float4x3_Float4x3         = TSymbolUniqueId(2638);
const TSymbolUniqueId BuiltInId::ptB0B                                    = TSymbolUniqueId(2639);
const TSymbolUniqueId BuiltInId::outerProduct_Float2_Float2               = TSymbolUniqueId(2640);
const TSymbolUniqueId BuiltInId::outerProduct_Float3_Float3               = TSymbolUniqueId(2641);
const TSymbolUniqueId BuiltInId::outerProduct_Float4_Float4               = TSymbolUniqueId(2642);
const TSymbolUniqueId BuiltInId::outerProduct_Float3_Float2               = TSymbolUniqueId(2643);
const TSymbolUniqueId BuiltInId::outerProduct_Float2_Float3               = TSymbolUniqueId(2644);
const TSymbolUniqueId BuiltInId::outerProduct_Float4_Float2               = TSymbolUniqueId(2645);
const TSymbolUniqueId BuiltInId::outerProduct_Float2_Float4               = TSymbolUniqueId(2646);
const TSymbolUniqueId BuiltInId::outerProduct_Float4_Float3               = TSymbolUniqueId(2647);
const TSymbolUniqueId BuiltInId::outerProduct_Float3_Float4               = TSymbolUniqueId(2648);
const TSymbolUniqueId BuiltInId::transpose_Float2x2                       = TSymbolUniqueId(2649);
const TSymbolUniqueId BuiltInId::transpose_Float3x3                       = TSymbolUniqueId(2650);
const TSymbolUniqueId BuiltInId::transpose_Float4x4                       = TSymbolUniqueId(2651);
const TSymbolUniqueId BuiltInId::transpose_Float3x2                       = TSymbolUniqueId(2652);
const TSymbolUniqueId BuiltInId::transpose_Float2x3                       = TSymbolUniqueId(2653);
const TSymbolUniqueId BuiltInId::transpose_Float4x2                       = TSymbolUniqueId(2654);
const TSymbolUniqueId BuiltInId::transpose_Float2x4                       = TSymbolUniqueId(2655);
const TSymbolUniqueId BuiltInId::transpose_Float4x3                       = TSymbolUniqueId(2656);
const TSymbolUniqueId BuiltInId::transpose_Float3x4                       = TSymbolUniqueId(2657);
const TSymbolUniqueId BuiltInId::determinant_Float2x2                     = TSymbolUniqueId(2658);
const TSymbolUniqueId BuiltInId::determinant_Float3x3                     = TSymbolUniqueId(2659);
const TSymbolUniqueId BuiltInId::determinant_Float4x4                     = TSymbolUniqueId(2660);
const TSymbolUniqueId BuiltInId::inverse_Float2x2                         = TSymbolUniqueId(2661);
const TSymbolUniqueId BuiltInId::inverse_Float3x3                         = TSymbolUniqueId(2662);
const TSymbolUniqueId BuiltInId::inverse_Float4x4                         = TSymbolUniqueId(2663);
const TSymbolUniqueId BuiltInId::lessThan_Float2_Float2                   = TSymbolUniqueId(2664);
const TSymbolUniqueId BuiltInId::lessThan_Float3_Float3                   = TSymbolUniqueId(2665);
const TSymbolUniqueId BuiltInId::lessThan_Float4_Float4                   = TSymbolUniqueId(2666);
const TSymbolUniqueId BuiltInId::lessThan_Int2_Int2                       = TSymbolUniqueId(2667);
const TSymbolUniqueId BuiltInId::lessThan_Int3_Int3                       = TSymbolUniqueId(2668);
const TSymbolUniqueId BuiltInId::lessThan_Int4_Int4                       = TSymbolUniqueId(2669);
const TSymbolUniqueId BuiltInId::lessThan_UInt2_UInt2                     = TSymbolUniqueId(2670);
const TSymbolUniqueId BuiltInId::lessThan_UInt3_UInt3                     = TSymbolUniqueId(2671);
const TSymbolUniqueId BuiltInId::lessThan_UInt4_UInt4                     = TSymbolUniqueId(2672);
const TSymbolUniqueId BuiltInId::lessThanEqual_Float2_Float2              = TSymbolUniqueId(2673);
const TSymbolUniqueId BuiltInId::lessThanEqual_Float3_Float3              = TSymbolUniqueId(2674);
const TSymbolUniqueId BuiltInId::lessThanEqual_Float4_Float4              = TSymbolUniqueId(2675);
const TSymbolUniqueId BuiltInId::lessThanEqual_Int2_Int2                  = TSymbolUniqueId(2676);
const TSymbolUniqueId BuiltInId::lessThanEqual_Int3_Int3                  = TSymbolUniqueId(2677);
const TSymbolUniqueId BuiltInId::lessThanEqual_Int4_Int4                  = TSymbolUniqueId(2678);
const TSymbolUniqueId BuiltInId::lessThanEqual_UInt2_UInt2                = TSymbolUniqueId(2679);
const TSymbolUniqueId BuiltInId::lessThanEqual_UInt3_UInt3                = TSymbolUniqueId(2680);
const TSymbolUniqueId BuiltInId::lessThanEqual_UInt4_UInt4                = TSymbolUniqueId(2681);
const TSymbolUniqueId BuiltInId::greaterThan_Float2_Float2                = TSymbolUniqueId(2682);
const TSymbolUniqueId BuiltInId::greaterThan_Float3_Float3                = TSymbolUniqueId(2683);
const TSymbolUniqueId BuiltInId::greaterThan_Float4_Float4                = TSymbolUniqueId(2684);
const TSymbolUniqueId BuiltInId::greaterThan_Int2_Int2                    = TSymbolUniqueId(2685);
const TSymbolUniqueId BuiltInId::greaterThan_Int3_Int3                    = TSymbolUniqueId(2686);
const TSymbolUniqueId BuiltInId::greaterThan_Int4_Int4                    = TSymbolUniqueId(2687);
const TSymbolUniqueId BuiltInId::greaterThan_UInt2_UInt2                  = TSymbolUniqueId(2688);
const TSymbolUniqueId BuiltInId::greaterThan_UInt3_UInt3                  = TSymbolUniqueId(2689);
const TSymbolUniqueId BuiltInId::greaterThan_UInt4_UInt4                  = TSymbolUniqueId(2690);
const TSymbolUniqueId BuiltInId::greaterThanEqual_Float2_Float2           = TSymbolUniqueId(2691);
const TSymbolUniqueId BuiltInId::greaterThanEqual_Float3_Float3           = TSymbolUniqueId(2692);
const TSymbolUniqueId BuiltInId::greaterThanEqual_Float4_Float4           = TSymbolUniqueId(2693);
const TSymbolUniqueId BuiltInId::greaterThanEqual_Int2_Int2               = TSymbolUniqueId(2694);
const TSymbolUniqueId BuiltInId::greaterThanEqual_Int3_Int3               = TSymbolUniqueId(2695);
const TSymbolUniqueId BuiltInId::greaterThanEqual_Int4_Int4               = TSymbolUniqueId(2696);
const TSymbolUniqueId BuiltInId::greaterThanEqual_UInt2_UInt2             = TSymbolUniqueId(2697);
const TSymbolUniqueId BuiltInId::greaterThanEqual_UInt3_UInt3             = TSymbolUniqueId(2698);
const TSymbolUniqueId BuiltInId::greaterThanEqual_UInt4_UInt4             = TSymbolUniqueId(2699);
const TSymbolUniqueId BuiltInId::equal_Float2_Float2                      = TSymbolUniqueId(2700);
const TSymbolUniqueId BuiltInId::equal_Float3_Float3                      = TSymbolUniqueId(2701);
const TSymbolUniqueId BuiltInId::equal_Float4_Float4                      = TSymbolUniqueId(2702);
const TSymbolUniqueId BuiltInId::equal_Int2_Int2                          = TSymbolUniqueId(2703);
const TSymbolUniqueId BuiltInId::equal_Int3_Int3                          = TSymbolUniqueId(2704);
const TSymbolUniqueId BuiltInId::equal_Int4_Int4                          = TSymbolUniqueId(2705);
const TSymbolUniqueId BuiltInId::equal_UInt2_UInt2                        = TSymbolUniqueId(2706);
const TSymbolUniqueId BuiltInId::equal_UInt3_UInt3                        = TSymbolUniqueId(2707);
const TSymbolUniqueId BuiltInId::equal_UInt4_UInt4                        = TSymbolUniqueId(2708);
const TSymbolUniqueId BuiltInId::equal_Bool2_Bool2                        = TSymbolUniqueId(2709);
const TSymbolUniqueId BuiltInId::equal_Bool3_Bool3                        = TSymbolUniqueId(2710);
const TSymbolUniqueId BuiltInId::equal_Bool4_Bool4                        = TSymbolUniqueId(2711);
const TSymbolUniqueId BuiltInId::notEqual_Float2_Float2                   = TSymbolUniqueId(2712);
const TSymbolUniqueId BuiltInId::notEqual_Float3_Float3                   = TSymbolUniqueId(2713);
const TSymbolUniqueId BuiltInId::notEqual_Float4_Float4                   = TSymbolUniqueId(2714);
const TSymbolUniqueId BuiltInId::notEqual_Int2_Int2                       = TSymbolUniqueId(2715);
const TSymbolUniqueId BuiltInId::notEqual_Int3_Int3                       = TSymbolUniqueId(2716);
const TSymbolUniqueId BuiltInId::notEqual_Int4_Int4                       = TSymbolUniqueId(2717);
const TSymbolUniqueId BuiltInId::notEqual_UInt2_UInt2                     = TSymbolUniqueId(2718);
const TSymbolUniqueId BuiltInId::notEqual_UInt3_UInt3                     = TSymbolUniqueId(2719);
const TSymbolUniqueId BuiltInId::notEqual_UInt4_UInt4                     = TSymbolUniqueId(2720);
const TSymbolUniqueId BuiltInId::notEqual_Bool2_Bool2                     = TSymbolUniqueId(2721);
const TSymbolUniqueId BuiltInId::notEqual_Bool3_Bool3                     = TSymbolUniqueId(2722);
const TSymbolUniqueId BuiltInId::notEqual_Bool4_Bool4                     = TSymbolUniqueId(2723);
const TSymbolUniqueId BuiltInId::any_Bool2                                = TSymbolUniqueId(2724);
const TSymbolUniqueId BuiltInId::any_Bool3                                = TSymbolUniqueId(2725);
const TSymbolUniqueId BuiltInId::any_Bool4                                = TSymbolUniqueId(2726);
const TSymbolUniqueId BuiltInId::all_Bool2                                = TSymbolUniqueId(2727);
const TSymbolUniqueId BuiltInId::all_Bool3                                = TSymbolUniqueId(2728);
const TSymbolUniqueId BuiltInId::all_Bool4                                = TSymbolUniqueId(2729);
const TSymbolUniqueId BuiltInId::notFunc_Bool2                            = TSymbolUniqueId(2730);
const TSymbolUniqueId BuiltInId::notFunc_Bool3                            = TSymbolUniqueId(2731);
const TSymbolUniqueId BuiltInId::notFunc_Bool4                            = TSymbolUniqueId(2732);
const TSymbolUniqueId BuiltInId::bitfieldExtract_Int1_Int1_Int1           = TSymbolUniqueId(2733);
const TSymbolUniqueId BuiltInId::bitfieldExtract_Int2_Int1_Int1           = TSymbolUniqueId(2734);
const TSymbolUniqueId BuiltInId::bitfieldExtract_Int3_Int1_Int1           = TSymbolUniqueId(2735);
const TSymbolUniqueId BuiltInId::bitfieldExtract_Int4_Int1_Int1           = TSymbolUniqueId(2736);
const TSymbolUniqueId BuiltInId::bitfieldExtract_UInt1_Int1_Int1          = TSymbolUniqueId(2737);
const TSymbolUniqueId BuiltInId::bitfieldExtract_UInt2_Int1_Int1          = TSymbolUniqueId(2738);
const TSymbolUniqueId BuiltInId::bitfieldExtract_UInt3_Int1_Int1          = TSymbolUniqueId(2739);
const TSymbolUniqueId BuiltInId::bitfieldExtract_UInt4_Int1_Int1          = TSymbolUniqueId(2740);
const TSymbolUniqueId BuiltInId::bitfieldInsert_Int1_Int1_Int1_Int1       = TSymbolUniqueId(2741);
const TSymbolUniqueId BuiltInId::bitfieldInsert_Int2_Int2_Int1_Int1       = TSymbolUniqueId(2742);
const TSymbolUniqueId BuiltInId::bitfieldInsert_Int3_Int3_Int1_Int1       = TSymbolUniqueId(2743);
const TSymbolUniqueId BuiltInId::bitfieldInsert_Int4_Int4_Int1_Int1       = TSymbolUniqueId(2744);
const TSymbolUniqueId BuiltInId::bitfieldInsert_UInt1_UInt1_Int1_Int1     = TSymbolUniqueId(2745);
const TSymbolUniqueId BuiltInId::bitfieldInsert_UInt2_UInt2_Int1_Int1     = TSymbolUniqueId(2746);
const TSymbolUniqueId BuiltInId::bitfieldInsert_UInt3_UInt3_Int1_Int1     = TSymbolUniqueId(2747);
const TSymbolUniqueId BuiltInId::bitfieldInsert_UInt4_UInt4_Int1_Int1     = TSymbolUniqueId(2748);
const TSymbolUniqueId BuiltInId::bitfieldReverse_Int1                     = TSymbolUniqueId(2749);
const TSymbolUniqueId BuiltInId::bitfieldReverse_Int2                     = TSymbolUniqueId(2750);
const TSymbolUniqueId BuiltInId::bitfieldReverse_Int3                     = TSymbolUniqueId(2751);
const TSymbolUniqueId BuiltInId::bitfieldReverse_Int4                     = TSymbolUniqueId(2752);
const TSymbolUniqueId BuiltInId::bitfieldReverse_UInt1                    = TSymbolUniqueId(2753);
const TSymbolUniqueId BuiltInId::bitfieldReverse_UInt2                    = TSymbolUniqueId(2754);
const TSymbolUniqueId BuiltInId::bitfieldReverse_UInt3                    = TSymbolUniqueId(2755);
const TSymbolUniqueId BuiltInId::bitfieldReverse_UInt4                    = TSymbolUniqueId(2756);
const TSymbolUniqueId BuiltInId::bitCount_Int1                            = TSymbolUniqueId(2757);
const TSymbolUniqueId BuiltInId::bitCount_Int2                            = TSymbolUniqueId(2758);
const TSymbolUniqueId BuiltInId::bitCount_Int3                            = TSymbolUniqueId(2759);
const TSymbolUniqueId BuiltInId::bitCount_Int4                            = TSymbolUniqueId(2760);
const TSymbolUniqueId BuiltInId::bitCount_UInt1                           = TSymbolUniqueId(2761);
const TSymbolUniqueId BuiltInId::bitCount_UInt2                           = TSymbolUniqueId(2762);
const TSymbolUniqueId BuiltInId::bitCount_UInt3                           = TSymbolUniqueId(2763);
const TSymbolUniqueId BuiltInId::bitCount_UInt4                           = TSymbolUniqueId(2764);
const TSymbolUniqueId BuiltInId::findLSB_Int1                             = TSymbolUniqueId(2765);
const TSymbolUniqueId BuiltInId::findLSB_Int2                             = TSymbolUniqueId(2766);
const TSymbolUniqueId BuiltInId::findLSB_Int3                             = TSymbolUniqueId(2767);
const TSymbolUniqueId BuiltInId::findLSB_Int4                             = TSymbolUniqueId(2768);
const TSymbolUniqueId BuiltInId::findLSB_UInt1                            = TSymbolUniqueId(2769);
const TSymbolUniqueId BuiltInId::findLSB_UInt2                            = TSymbolUniqueId(2770);
const TSymbolUniqueId BuiltInId::findLSB_UInt3                            = TSymbolUniqueId(2771);
const TSymbolUniqueId BuiltInId::findLSB_UInt4                            = TSymbolUniqueId(2772);
const TSymbolUniqueId BuiltInId::findMSB_Int1                             = TSymbolUniqueId(2773);
const TSymbolUniqueId BuiltInId::findMSB_Int2                             = TSymbolUniqueId(2774);
const TSymbolUniqueId BuiltInId::findMSB_Int3                             = TSymbolUniqueId(2775);
const TSymbolUniqueId BuiltInId::findMSB_Int4                             = TSymbolUniqueId(2776);
const TSymbolUniqueId BuiltInId::findMSB_UInt1                            = TSymbolUniqueId(2777);
const TSymbolUniqueId BuiltInId::findMSB_UInt2                            = TSymbolUniqueId(2778);
const TSymbolUniqueId BuiltInId::findMSB_UInt3                            = TSymbolUniqueId(2779);
const TSymbolUniqueId BuiltInId::findMSB_UInt4                            = TSymbolUniqueId(2780);
const TSymbolUniqueId BuiltInId::uaddCarry_UInt1_UInt1_UInt1              = TSymbolUniqueId(2781);
const TSymbolUniqueId BuiltInId::pt_o_00E                                 = TSymbolUniqueId(2782);
const TSymbolUniqueId BuiltInId::uaddCarry_UInt2_UInt2_UInt2              = TSymbolUniqueId(2783);
const TSymbolUniqueId BuiltInId::pt_o_10E                                 = TSymbolUniqueId(2784);
const TSymbolUniqueId BuiltInId::uaddCarry_UInt3_UInt3_UInt3              = TSymbolUniqueId(2785);
const TSymbolUniqueId BuiltInId::pt_o_20E                                 = TSymbolUniqueId(2786);
const TSymbolUniqueId BuiltInId::uaddCarry_UInt4_UInt4_UInt4              = TSymbolUniqueId(2787);
const TSymbolUniqueId BuiltInId::pt_o_30E                                 = TSymbolUniqueId(2788);
const TSymbolUniqueId BuiltInId::usubBorrow_UInt1_UInt1_UInt1             = TSymbolUniqueId(2789);
const TSymbolUniqueId BuiltInId::usubBorrow_UInt2_UInt2_UInt2             = TSymbolUniqueId(2790);
const TSymbolUniqueId BuiltInId::usubBorrow_UInt3_UInt3_UInt3             = TSymbolUniqueId(2791);
const TSymbolUniqueId BuiltInId::usubBorrow_UInt4_UInt4_UInt4             = TSymbolUniqueId(2792);
const TSymbolUniqueId BuiltInId::umulExtended_UInt1_UInt1_UInt1_UInt1     = TSymbolUniqueId(2793);
const TSymbolUniqueId BuiltInId::umulExtended_UInt2_UInt2_UInt2_UInt2     = TSymbolUniqueId(2794);
const TSymbolUniqueId BuiltInId::umulExtended_UInt3_UInt3_UInt3_UInt3     = TSymbolUniqueId(2795);
const TSymbolUniqueId BuiltInId::umulExtended_UInt4_UInt4_UInt4_UInt4     = TSymbolUniqueId(2796);
const TSymbolUniqueId BuiltInId::imulExtended_Int1_Int1_Int1_Int1         = TSymbolUniqueId(2797);
const TSymbolUniqueId BuiltInId::imulExtended_Int2_Int2_Int2_Int2         = TSymbolUniqueId(2798);
const TSymbolUniqueId BuiltInId::imulExtended_Int3_Int3_Int3_Int3         = TSymbolUniqueId(2799);
const TSymbolUniqueId BuiltInId::imulExtended_Int4_Int4_Int4_Int4         = TSymbolUniqueId(2800);
const TSymbolUniqueId BuiltInId::texture2D_Sampler2D1_Float2              = TSymbolUniqueId(2801);
const TSymbolUniqueId BuiltInId::pt00I                                    = TSymbolUniqueId(2802);
const TSymbolUniqueId BuiltInId::texture2DProj_Sampler2D1_Float3          = TSymbolUniqueId(2803);
const TSymbolUniqueId BuiltInId::texture2DProj_Sampler2D1_Float4          = TSymbolUniqueId(2804);
const TSymbolUniqueId BuiltInId::textureCube_SamplerCube1_Float3          = TSymbolUniqueId(2805);
const TSymbolUniqueId BuiltInId::pt00K                                    = TSymbolUniqueId(2806);
const TSymbolUniqueId BuiltInId::texture2D_SamplerExternalOES1_Float2     = TSymbolUniqueId(2807);
const TSymbolUniqueId BuiltInId::pt00M                                    = TSymbolUniqueId(2808);
const TSymbolUniqueId BuiltInId::texture2DProj_SamplerExternalOES1_Float3 = TSymbolUniqueId(2809);
const TSymbolUniqueId BuiltInId::texture2DProj_SamplerExternalOES1_Float4 = TSymbolUniqueId(2810);
const TSymbolUniqueId BuiltInId::texture2DRect_Sampler2DRect1_Float2      = TSymbolUniqueId(2811);
const TSymbolUniqueId BuiltInId::pt00O                                    = TSymbolUniqueId(2812);
const TSymbolUniqueId BuiltInId::texture2DRectProj_Sampler2DRect1_Float3  = TSymbolUniqueId(2813);
const TSymbolUniqueId BuiltInId::texture2DRectProj_Sampler2DRect1_Float4  = TSymbolUniqueId(2814);
const TSymbolUniqueId BuiltInId::texture_Sampler2DRect1_Float2            = TSymbolUniqueId(2815);
const TSymbolUniqueId BuiltInId::textureProj_Sampler2DRect1_Float3        = TSymbolUniqueId(2816);
const TSymbolUniqueId BuiltInId::textureProj_Sampler2DRect1_Float4        = TSymbolUniqueId(2817);
const TSymbolUniqueId BuiltInId::texture2DGradEXT_Sampler2D1_Float2_Float2_Float2 =
    TSymbolUniqueId(2818);
const TSymbolUniqueId BuiltInId::texture2DProjGradEXT_Sampler2D1_Float3_Float2_Float2 =
    TSymbolUniqueId(2819);
const TSymbolUniqueId BuiltInId::texture2DProjGradEXT_Sampler2D1_Float4_Float2_Float2 =
    TSymbolUniqueId(2820);
const TSymbolUniqueId BuiltInId::textureCubeGradEXT_SamplerCube1_Float3_Float3_Float3 =
    TSymbolUniqueId(2821);
const TSymbolUniqueId BuiltInId::texture2D_Sampler2D1_Float2_Float1       = TSymbolUniqueId(2822);
const TSymbolUniqueId BuiltInId::texture2DProj_Sampler2D1_Float3_Float1   = TSymbolUniqueId(2823);
const TSymbolUniqueId BuiltInId::texture2DProj_Sampler2D1_Float4_Float1   = TSymbolUniqueId(2824);
const TSymbolUniqueId BuiltInId::textureCube_SamplerCube1_Float3_Float1   = TSymbolUniqueId(2825);
const TSymbolUniqueId BuiltInId::dFdxExt_Float1                           = TSymbolUniqueId(2826);
const TSymbolUniqueId BuiltInId::dFdxExt_Float2                           = TSymbolUniqueId(2827);
const TSymbolUniqueId BuiltInId::dFdxExt_Float3                           = TSymbolUniqueId(2828);
const TSymbolUniqueId BuiltInId::dFdxExt_Float4                           = TSymbolUniqueId(2829);
const TSymbolUniqueId BuiltInId::dFdyExt_Float1                           = TSymbolUniqueId(2830);
const TSymbolUniqueId BuiltInId::dFdyExt_Float2                           = TSymbolUniqueId(2831);
const TSymbolUniqueId BuiltInId::dFdyExt_Float3                           = TSymbolUniqueId(2832);
const TSymbolUniqueId BuiltInId::dFdyExt_Float4                           = TSymbolUniqueId(2833);
const TSymbolUniqueId BuiltInId::fwidthExt_Float1                         = TSymbolUniqueId(2834);
const TSymbolUniqueId BuiltInId::fwidthExt_Float2                         = TSymbolUniqueId(2835);
const TSymbolUniqueId BuiltInId::fwidthExt_Float3                         = TSymbolUniqueId(2836);
const TSymbolUniqueId BuiltInId::fwidthExt_Float4                         = TSymbolUniqueId(2837);
const TSymbolUniqueId BuiltInId::texture2DLodEXT_Sampler2D1_Float2_Float1 = TSymbolUniqueId(2838);
const TSymbolUniqueId BuiltInId::texture2DProjLodEXT_Sampler2D1_Float3_Float1 =
    TSymbolUniqueId(2839);
const TSymbolUniqueId BuiltInId::texture2DProjLodEXT_Sampler2D1_Float4_Float1 =
    TSymbolUniqueId(2840);
const TSymbolUniqueId BuiltInId::textureCubeLodEXT_SamplerCube1_Float3_Float1 =
    TSymbolUniqueId(2841);
const TSymbolUniqueId BuiltInId::texture3D_Sampler3D1_Float3               = TSymbolUniqueId(2842);
const TSymbolUniqueId BuiltInId::pt00J                                     = TSymbolUniqueId(2843);
const TSymbolUniqueId BuiltInId::texture3DProj_Sampler3D1_Float4           = TSymbolUniqueId(2844);
const TSymbolUniqueId BuiltInId::texture3D_Sampler3D1_Float3_Float1        = TSymbolUniqueId(2845);
const TSymbolUniqueId BuiltInId::texture3DProj_Sampler3D1_Float4_Float1    = TSymbolUniqueId(2846);
const TSymbolUniqueId BuiltInId::texture3DLod_Sampler3D1_Float3_Float1     = TSymbolUniqueId(2847);
const TSymbolUniqueId BuiltInId::texture3DProjLod_Sampler3D1_Float4_Float1 = TSymbolUniqueId(2848);
const TSymbolUniqueId BuiltInId::texture2DLod_Sampler2D1_Float2_Float1     = TSymbolUniqueId(2849);
const TSymbolUniqueId BuiltInId::texture2DProjLod_Sampler2D1_Float3_Float1 = TSymbolUniqueId(2850);
const TSymbolUniqueId BuiltInId::texture2DProjLod_Sampler2D1_Float4_Float1 = TSymbolUniqueId(2851);
const TSymbolUniqueId BuiltInId::textureCubeLod_SamplerCube1_Float3_Float1 = TSymbolUniqueId(2852);
const TSymbolUniqueId BuiltInId::texture_Sampler2D1_Float2                 = TSymbolUniqueId(2853);
const TSymbolUniqueId BuiltInId::texture_ISampler2D1_Float2                = TSymbolUniqueId(2854);
const TSymbolUniqueId BuiltInId::pt00R                                     = TSymbolUniqueId(2855);
const TSymbolUniqueId BuiltInId::texture_USampler2D1_Float2                = TSymbolUniqueId(2856);
const TSymbolUniqueId BuiltInId::pt00X                                     = TSymbolUniqueId(2857);
const TSymbolUniqueId BuiltInId::texture_Sampler3D1_Float3                 = TSymbolUniqueId(2858);
const TSymbolUniqueId BuiltInId::texture_ISampler3D1_Float3                = TSymbolUniqueId(2859);
const TSymbolUniqueId BuiltInId::pt00S                                     = TSymbolUniqueId(2860);
const TSymbolUniqueId BuiltInId::texture_USampler3D1_Float3                = TSymbolUniqueId(2861);
const TSymbolUniqueId BuiltInId::pt00Y                                     = TSymbolUniqueId(2862);
const TSymbolUniqueId BuiltInId::texture_SamplerCube1_Float3               = TSymbolUniqueId(2863);
const TSymbolUniqueId BuiltInId::texture_ISamplerCube1_Float3              = TSymbolUniqueId(2864);
const TSymbolUniqueId BuiltInId::pt00T                                     = TSymbolUniqueId(2865);
const TSymbolUniqueId BuiltInId::texture_USamplerCube1_Float3              = TSymbolUniqueId(2866);
const TSymbolUniqueId BuiltInId::pt00Z                                     = TSymbolUniqueId(2867);
const TSymbolUniqueId BuiltInId::texture_Sampler2DArray1_Float3            = TSymbolUniqueId(2868);
const TSymbolUniqueId BuiltInId::pt00L                                     = TSymbolUniqueId(2869);
const TSymbolUniqueId BuiltInId::texture_ISampler2DArray1_Float3           = TSymbolUniqueId(2870);
const TSymbolUniqueId BuiltInId::pt00U                                     = TSymbolUniqueId(2871);
const TSymbolUniqueId BuiltInId::texture_USampler2DArray1_Float3           = TSymbolUniqueId(2872);
const TSymbolUniqueId BuiltInId::pt00a                                     = TSymbolUniqueId(2873);
const TSymbolUniqueId BuiltInId::texture_Sampler2DShadow1_Float3           = TSymbolUniqueId(2874);
const TSymbolUniqueId BuiltInId::pt00d                                     = TSymbolUniqueId(2875);
const TSymbolUniqueId BuiltInId::texture_SamplerCubeShadow1_Float4         = TSymbolUniqueId(2876);
const TSymbolUniqueId BuiltInId::pt00e                                     = TSymbolUniqueId(2877);
const TSymbolUniqueId BuiltInId::texture_Sampler2DArrayShadow1_Float4      = TSymbolUniqueId(2878);
const TSymbolUniqueId BuiltInId::pt00f                                     = TSymbolUniqueId(2879);
const TSymbolUniqueId BuiltInId::textureProj_Sampler2D1_Float3             = TSymbolUniqueId(2880);
const TSymbolUniqueId BuiltInId::textureProj_ISampler2D1_Float3            = TSymbolUniqueId(2881);
const TSymbolUniqueId BuiltInId::textureProj_USampler2D1_Float3            = TSymbolUniqueId(2882);
const TSymbolUniqueId BuiltInId::textureProj_Sampler2D1_Float4             = TSymbolUniqueId(2883);
const TSymbolUniqueId BuiltInId::textureProj_ISampler2D1_Float4            = TSymbolUniqueId(2884);
const TSymbolUniqueId BuiltInId::textureProj_USampler2D1_Float4            = TSymbolUniqueId(2885);
const TSymbolUniqueId BuiltInId::textureProj_Sampler3D1_Float4             = TSymbolUniqueId(2886);
const TSymbolUniqueId BuiltInId::textureProj_ISampler3D1_Float4            = TSymbolUniqueId(2887);
const TSymbolUniqueId BuiltInId::textureProj_USampler3D1_Float4            = TSymbolUniqueId(2888);
const TSymbolUniqueId BuiltInId::textureProj_Sampler2DShadow1_Float4       = TSymbolUniqueId(2889);
const TSymbolUniqueId BuiltInId::textureLod_Sampler2D1_Float2_Float1       = TSymbolUniqueId(2890);
const TSymbolUniqueId BuiltInId::textureLod_ISampler2D1_Float2_Float1      = TSymbolUniqueId(2891);
const TSymbolUniqueId BuiltInId::textureLod_USampler2D1_Float2_Float1      = TSymbolUniqueId(2892);
const TSymbolUniqueId BuiltInId::textureLod_Sampler3D1_Float3_Float1       = TSymbolUniqueId(2893);
const TSymbolUniqueId BuiltInId::textureLod_ISampler3D1_Float3_Float1      = TSymbolUniqueId(2894);
const TSymbolUniqueId BuiltInId::textureLod_USampler3D1_Float3_Float1      = TSymbolUniqueId(2895);
const TSymbolUniqueId BuiltInId::textureLod_SamplerCube1_Float3_Float1     = TSymbolUniqueId(2896);
const TSymbolUniqueId BuiltInId::textureLod_ISamplerCube1_Float3_Float1    = TSymbolUniqueId(2897);
const TSymbolUniqueId BuiltInId::textureLod_USamplerCube1_Float3_Float1    = TSymbolUniqueId(2898);
const TSymbolUniqueId BuiltInId::textureLod_Sampler2DArray1_Float3_Float1  = TSymbolUniqueId(2899);
const TSymbolUniqueId BuiltInId::textureLod_ISampler2DArray1_Float3_Float1 = TSymbolUniqueId(2900);
const TSymbolUniqueId BuiltInId::textureLod_USampler2DArray1_Float3_Float1 = TSymbolUniqueId(2901);
const TSymbolUniqueId BuiltInId::textureLod_Sampler2DShadow1_Float3_Float1 = TSymbolUniqueId(2902);
const TSymbolUniqueId BuiltInId::textureSize_Sampler2D1_Int1               = TSymbolUniqueId(2903);
const TSymbolUniqueId BuiltInId::textureSize_ISampler2D1_Int1              = TSymbolUniqueId(2904);
const TSymbolUniqueId BuiltInId::textureSize_USampler2D1_Int1              = TSymbolUniqueId(2905);
const TSymbolUniqueId BuiltInId::textureSize_Sampler3D1_Int1               = TSymbolUniqueId(2906);
const TSymbolUniqueId BuiltInId::textureSize_ISampler3D1_Int1              = TSymbolUniqueId(2907);
const TSymbolUniqueId BuiltInId::textureSize_USampler3D1_Int1              = TSymbolUniqueId(2908);
const TSymbolUniqueId BuiltInId::textureSize_SamplerCube1_Int1             = TSymbolUniqueId(2909);
const TSymbolUniqueId BuiltInId::textureSize_ISamplerCube1_Int1            = TSymbolUniqueId(2910);
const TSymbolUniqueId BuiltInId::textureSize_USamplerCube1_Int1            = TSymbolUniqueId(2911);
const TSymbolUniqueId BuiltInId::textureSize_Sampler2DArray1_Int1          = TSymbolUniqueId(2912);
const TSymbolUniqueId BuiltInId::textureSize_ISampler2DArray1_Int1         = TSymbolUniqueId(2913);
const TSymbolUniqueId BuiltInId::textureSize_USampler2DArray1_Int1         = TSymbolUniqueId(2914);
const TSymbolUniqueId BuiltInId::textureSize_Sampler2DShadow1_Int1         = TSymbolUniqueId(2915);
const TSymbolUniqueId BuiltInId::textureSize_SamplerCubeShadow1_Int1       = TSymbolUniqueId(2916);
const TSymbolUniqueId BuiltInId::textureSize_Sampler2DArrayShadow1_Int1    = TSymbolUniqueId(2917);
const TSymbolUniqueId BuiltInId::textureProjLod_Sampler2D1_Float3_Float1   = TSymbolUniqueId(2918);
const TSymbolUniqueId BuiltInId::textureProjLod_ISampler2D1_Float3_Float1  = TSymbolUniqueId(2919);
const TSymbolUniqueId BuiltInId::textureProjLod_USampler2D1_Float3_Float1  = TSymbolUniqueId(2920);
const TSymbolUniqueId BuiltInId::textureProjLod_Sampler2D1_Float4_Float1   = TSymbolUniqueId(2921);
const TSymbolUniqueId BuiltInId::textureProjLod_ISampler2D1_Float4_Float1  = TSymbolUniqueId(2922);
const TSymbolUniqueId BuiltInId::textureProjLod_USampler2D1_Float4_Float1  = TSymbolUniqueId(2923);
const TSymbolUniqueId BuiltInId::textureProjLod_Sampler3D1_Float4_Float1   = TSymbolUniqueId(2924);
const TSymbolUniqueId BuiltInId::textureProjLod_ISampler3D1_Float4_Float1  = TSymbolUniqueId(2925);
const TSymbolUniqueId BuiltInId::textureProjLod_USampler3D1_Float4_Float1  = TSymbolUniqueId(2926);
const TSymbolUniqueId BuiltInId::textureProjLod_Sampler2DShadow1_Float4_Float1 =
    TSymbolUniqueId(2927);
const TSymbolUniqueId BuiltInId::texelFetch_Sampler2D1_Int2_Int1       = TSymbolUniqueId(2928);
const TSymbolUniqueId BuiltInId::texelFetch_ISampler2D1_Int2_Int1      = TSymbolUniqueId(2929);
const TSymbolUniqueId BuiltInId::texelFetch_USampler2D1_Int2_Int1      = TSymbolUniqueId(2930);
const TSymbolUniqueId BuiltInId::texelFetch_Sampler3D1_Int3_Int1       = TSymbolUniqueId(2931);
const TSymbolUniqueId BuiltInId::texelFetch_ISampler3D1_Int3_Int1      = TSymbolUniqueId(2932);
const TSymbolUniqueId BuiltInId::texelFetch_USampler3D1_Int3_Int1      = TSymbolUniqueId(2933);
const TSymbolUniqueId BuiltInId::texelFetch_Sampler2DArray1_Int3_Int1  = TSymbolUniqueId(2934);
const TSymbolUniqueId BuiltInId::texelFetch_ISampler2DArray1_Int3_Int1 = TSymbolUniqueId(2935);
const TSymbolUniqueId BuiltInId::texelFetch_USampler2DArray1_Int3_Int1 = TSymbolUniqueId(2936);
const TSymbolUniqueId BuiltInId::textureGrad_Sampler2D1_Float2_Float2_Float2 =
    TSymbolUniqueId(2937);
const TSymbolUniqueId BuiltInId::textureGrad_ISampler2D1_Float2_Float2_Float2 =
    TSymbolUniqueId(2938);
const TSymbolUniqueId BuiltInId::textureGrad_USampler2D1_Float2_Float2_Float2 =
    TSymbolUniqueId(2939);
const TSymbolUniqueId BuiltInId::textureGrad_Sampler3D1_Float3_Float3_Float3 =
    TSymbolUniqueId(2940);
const TSymbolUniqueId BuiltInId::textureGrad_ISampler3D1_Float3_Float3_Float3 =
    TSymbolUniqueId(2941);
const TSymbolUniqueId BuiltInId::textureGrad_USampler3D1_Float3_Float3_Float3 =
    TSymbolUniqueId(2942);
const TSymbolUniqueId BuiltInId::textureGrad_SamplerCube1_Float3_Float3_Float3 =
    TSymbolUniqueId(2943);
const TSymbolUniqueId BuiltInId::textureGrad_ISamplerCube1_Float3_Float3_Float3 =
    TSymbolUniqueId(2944);
const TSymbolUniqueId BuiltInId::textureGrad_USamplerCube1_Float3_Float3_Float3 =
    TSymbolUniqueId(2945);
const TSymbolUniqueId BuiltInId::textureGrad_Sampler2DShadow1_Float3_Float2_Float2 =
    TSymbolUniqueId(2946);
const TSymbolUniqueId BuiltInId::textureGrad_SamplerCubeShadow1_Float4_Float3_Float3 =
    TSymbolUniqueId(2947);
const TSymbolUniqueId BuiltInId::textureGrad_Sampler2DArray1_Float3_Float2_Float2 =
    TSymbolUniqueId(2948);
const TSymbolUniqueId BuiltInId::textureGrad_ISampler2DArray1_Float3_Float2_Float2 =
    TSymbolUniqueId(2949);
const TSymbolUniqueId BuiltInId::textureGrad_USampler2DArray1_Float3_Float2_Float2 =
    TSymbolUniqueId(2950);
const TSymbolUniqueId BuiltInId::textureGrad_Sampler2DArrayShadow1_Float4_Float2_Float2 =
    TSymbolUniqueId(2951);
const TSymbolUniqueId BuiltInId::textureProjGrad_Sampler2D1_Float3_Float2_Float2 =
    TSymbolUniqueId(2952);
const TSymbolUniqueId BuiltInId::textureProjGrad_ISampler2D1_Float3_Float2_Float2 =
    TSymbolUniqueId(2953);
const TSymbolUniqueId BuiltInId::textureProjGrad_USampler2D1_Float3_Float2_Float2 =
    TSymbolUniqueId(2954);
const TSymbolUniqueId BuiltInId::textureProjGrad_Sampler2D1_Float4_Float2_Float2 =
    TSymbolUniqueId(2955);
const TSymbolUniqueId BuiltInId::textureProjGrad_ISampler2D1_Float4_Float2_Float2 =
    TSymbolUniqueId(2956);
const TSymbolUniqueId BuiltInId::textureProjGrad_USampler2D1_Float4_Float2_Float2 =
    TSymbolUniqueId(2957);
const TSymbolUniqueId BuiltInId::textureProjGrad_Sampler3D1_Float4_Float3_Float3 =
    TSymbolUniqueId(2958);
const TSymbolUniqueId BuiltInId::textureProjGrad_ISampler3D1_Float4_Float3_Float3 =
    TSymbolUniqueId(2959);
const TSymbolUniqueId BuiltInId::textureProjGrad_USampler3D1_Float4_Float3_Float3 =
    TSymbolUniqueId(2960);
const TSymbolUniqueId BuiltInId::textureProjGrad_Sampler2DShadow1_Float4_Float2_Float2 =
    TSymbolUniqueId(2961);
const TSymbolUniqueId BuiltInId::textureSize_Sampler2DMS1                   = TSymbolUniqueId(2962);
const TSymbolUniqueId BuiltInId::pt00P                                      = TSymbolUniqueId(2963);
const TSymbolUniqueId BuiltInId::textureSize_ISampler2DMS1                  = TSymbolUniqueId(2964);
const TSymbolUniqueId BuiltInId::pt00V                                      = TSymbolUniqueId(2965);
const TSymbolUniqueId BuiltInId::textureSize_USampler2DMS1                  = TSymbolUniqueId(2966);
const TSymbolUniqueId BuiltInId::pt00b                                      = TSymbolUniqueId(2967);
const TSymbolUniqueId BuiltInId::textureSizeExt_Sampler2DMS1                = TSymbolUniqueId(2968);
const TSymbolUniqueId BuiltInId::textureSizeExt_ISampler2DMS1               = TSymbolUniqueId(2969);
const TSymbolUniqueId BuiltInId::textureSizeExt_USampler2DMS1               = TSymbolUniqueId(2970);
const TSymbolUniqueId BuiltInId::textureSizeExt_Sampler2DMSArray1           = TSymbolUniqueId(2971);
const TSymbolUniqueId BuiltInId::pt00Q                                      = TSymbolUniqueId(2972);
const TSymbolUniqueId BuiltInId::textureSizeExt_ISampler2DMSArray1          = TSymbolUniqueId(2973);
const TSymbolUniqueId BuiltInId::pt00W                                      = TSymbolUniqueId(2974);
const TSymbolUniqueId BuiltInId::textureSizeExt_USampler2DMSArray1          = TSymbolUniqueId(2975);
const TSymbolUniqueId BuiltInId::pt00c                                      = TSymbolUniqueId(2976);
const TSymbolUniqueId BuiltInId::texelFetch_Sampler2DMS1_Int2_Int1          = TSymbolUniqueId(2977);
const TSymbolUniqueId BuiltInId::texelFetch_ISampler2DMS1_Int2_Int1         = TSymbolUniqueId(2978);
const TSymbolUniqueId BuiltInId::texelFetch_USampler2DMS1_Int2_Int1         = TSymbolUniqueId(2979);
const TSymbolUniqueId BuiltInId::texelFetchExt_Sampler2DMS1_Int2_Int1       = TSymbolUniqueId(2980);
const TSymbolUniqueId BuiltInId::texelFetchExt_ISampler2DMS1_Int2_Int1      = TSymbolUniqueId(2981);
const TSymbolUniqueId BuiltInId::texelFetchExt_USampler2DMS1_Int2_Int1      = TSymbolUniqueId(2982);
const TSymbolUniqueId BuiltInId::texelFetchExt_Sampler2DMSArray1_Int3_Int1  = TSymbolUniqueId(2983);
const TSymbolUniqueId BuiltInId::texelFetchExt_ISampler2DMSArray1_Int3_Int1 = TSymbolUniqueId(2984);
const TSymbolUniqueId BuiltInId::texelFetchExt_USampler2DMSArray1_Int3_Int1 = TSymbolUniqueId(2985);
const TSymbolUniqueId BuiltInId::texture_Sampler2D1_Float2_Float1           = TSymbolUniqueId(2986);
const TSymbolUniqueId BuiltInId::texture_ISampler2D1_Float2_Float1          = TSymbolUniqueId(2987);
const TSymbolUniqueId BuiltInId::texture_USampler2D1_Float2_Float1          = TSymbolUniqueId(2988);
const TSymbolUniqueId BuiltInId::texture_Sampler3D1_Float3_Float1           = TSymbolUniqueId(2989);
const TSymbolUniqueId BuiltInId::texture_ISampler3D1_Float3_Float1          = TSymbolUniqueId(2990);
const TSymbolUniqueId BuiltInId::texture_USampler3D1_Float3_Float1          = TSymbolUniqueId(2991);
const TSymbolUniqueId BuiltInId::texture_SamplerCube1_Float3_Float1         = TSymbolUniqueId(2992);
const TSymbolUniqueId BuiltInId::texture_ISamplerCube1_Float3_Float1        = TSymbolUniqueId(2993);
const TSymbolUniqueId BuiltInId::texture_USamplerCube1_Float3_Float1        = TSymbolUniqueId(2994);
const TSymbolUniqueId BuiltInId::texture_Sampler2DArray1_Float3_Float1      = TSymbolUniqueId(2995);
const TSymbolUniqueId BuiltInId::texture_ISampler2DArray1_Float3_Float1     = TSymbolUniqueId(2996);
const TSymbolUniqueId BuiltInId::texture_USampler2DArray1_Float3_Float1     = TSymbolUniqueId(2997);
const TSymbolUniqueId BuiltInId::textureProj_Sampler2D1_Float3_Float1       = TSymbolUniqueId(2998);
const TSymbolUniqueId BuiltInId::textureProj_ISampler2D1_Float3_Float1      = TSymbolUniqueId(2999);
const TSymbolUniqueId BuiltInId::textureProj_USampler2D1_Float3_Float1      = TSymbolUniqueId(3000);
const TSymbolUniqueId BuiltInId::textureProj_Sampler2D1_Float4_Float1       = TSymbolUniqueId(3001);
const TSymbolUniqueId BuiltInId::textureProj_ISampler2D1_Float4_Float1      = TSymbolUniqueId(3002);
const TSymbolUniqueId BuiltInId::textureProj_USampler2D1_Float4_Float1      = TSymbolUniqueId(3003);
const TSymbolUniqueId BuiltInId::textureProj_Sampler3D1_Float4_Float1       = TSymbolUniqueId(3004);
const TSymbolUniqueId BuiltInId::textureProj_ISampler3D1_Float4_Float1      = TSymbolUniqueId(3005);
const TSymbolUniqueId BuiltInId::textureProj_USampler3D1_Float4_Float1      = TSymbolUniqueId(3006);
const TSymbolUniqueId BuiltInId::texture_Sampler2DShadow1_Float3_Float1     = TSymbolUniqueId(3007);
const TSymbolUniqueId BuiltInId::texture_SamplerCubeShadow1_Float4_Float1   = TSymbolUniqueId(3008);
const TSymbolUniqueId BuiltInId::textureProj_Sampler2DShadow1_Float4_Float1 = TSymbolUniqueId(3009);
const TSymbolUniqueId BuiltInId::texture_SamplerExternalOES1_Float2_Float1  = TSymbolUniqueId(3010);
const TSymbolUniqueId BuiltInId::textureProj_SamplerExternalOES1_Float3_Float1 =
    TSymbolUniqueId(3011);
const TSymbolUniqueId BuiltInId::textureProj_SamplerExternalOES1_Float4_Float1 =
    TSymbolUniqueId(3012);
const TSymbolUniqueId BuiltInId::texture_SamplerExternal2DY2YEXT1_Float2_Float1 =
    TSymbolUniqueId(3013);
const TSymbolUniqueId BuiltInId::pt00N = TSymbolUniqueId(3014);
const TSymbolUniqueId BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float3_Float1 =
    TSymbolUniqueId(3015);
const TSymbolUniqueId BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float4_Float1 =
    TSymbolUniqueId(3016);
const TSymbolUniqueId BuiltInId::textureOffset_Sampler2D1_Float2_Int2       = TSymbolUniqueId(3017);
const TSymbolUniqueId BuiltInId::textureOffset_ISampler2D1_Float2_Int2      = TSymbolUniqueId(3018);
const TSymbolUniqueId BuiltInId::textureOffset_USampler2D1_Float2_Int2      = TSymbolUniqueId(3019);
const TSymbolUniqueId BuiltInId::textureOffset_Sampler3D1_Float3_Int3       = TSymbolUniqueId(3020);
const TSymbolUniqueId BuiltInId::textureOffset_ISampler3D1_Float3_Int3      = TSymbolUniqueId(3021);
const TSymbolUniqueId BuiltInId::textureOffset_USampler3D1_Float3_Int3      = TSymbolUniqueId(3022);
const TSymbolUniqueId BuiltInId::textureOffset_Sampler2DShadow1_Float3_Int2 = TSymbolUniqueId(3023);
const TSymbolUniqueId BuiltInId::textureOffset_Sampler2DArray1_Float3_Int2  = TSymbolUniqueId(3024);
const TSymbolUniqueId BuiltInId::textureOffset_ISampler2DArray1_Float3_Int2 = TSymbolUniqueId(3025);
const TSymbolUniqueId BuiltInId::textureOffset_USampler2DArray1_Float3_Int2 = TSymbolUniqueId(3026);
const TSymbolUniqueId BuiltInId::textureProjOffset_Sampler2D1_Float3_Int2   = TSymbolUniqueId(3027);
const TSymbolUniqueId BuiltInId::textureProjOffset_ISampler2D1_Float3_Int2  = TSymbolUniqueId(3028);
const TSymbolUniqueId BuiltInId::textureProjOffset_USampler2D1_Float3_Int2  = TSymbolUniqueId(3029);
const TSymbolUniqueId BuiltInId::textureProjOffset_Sampler2D1_Float4_Int2   = TSymbolUniqueId(3030);
const TSymbolUniqueId BuiltInId::textureProjOffset_ISampler2D1_Float4_Int2  = TSymbolUniqueId(3031);
const TSymbolUniqueId BuiltInId::textureProjOffset_USampler2D1_Float4_Int2  = TSymbolUniqueId(3032);
const TSymbolUniqueId BuiltInId::textureProjOffset_Sampler3D1_Float4_Int3   = TSymbolUniqueId(3033);
const TSymbolUniqueId BuiltInId::textureProjOffset_ISampler3D1_Float4_Int3  = TSymbolUniqueId(3034);
const TSymbolUniqueId BuiltInId::textureProjOffset_USampler3D1_Float4_Int3  = TSymbolUniqueId(3035);
const TSymbolUniqueId BuiltInId::textureProjOffset_Sampler2DShadow1_Float4_Int2 =
    TSymbolUniqueId(3036);
const TSymbolUniqueId BuiltInId::textureLodOffset_Sampler2D1_Float2_Float1_Int2 =
    TSymbolUniqueId(3037);
const TSymbolUniqueId BuiltInId::textureLodOffset_ISampler2D1_Float2_Float1_Int2 =
    TSymbolUniqueId(3038);
const TSymbolUniqueId BuiltInId::textureLodOffset_USampler2D1_Float2_Float1_Int2 =
    TSymbolUniqueId(3039);
const TSymbolUniqueId BuiltInId::textureLodOffset_Sampler3D1_Float3_Float1_Int3 =
    TSymbolUniqueId(3040);
const TSymbolUniqueId BuiltInId::textureLodOffset_ISampler3D1_Float3_Float1_Int3 =
    TSymbolUniqueId(3041);
const TSymbolUniqueId BuiltInId::textureLodOffset_USampler3D1_Float3_Float1_Int3 =
    TSymbolUniqueId(3042);
const TSymbolUniqueId BuiltInId::textureLodOffset_Sampler2DShadow1_Float3_Float1_Int2 =
    TSymbolUniqueId(3043);
const TSymbolUniqueId BuiltInId::textureLodOffset_Sampler2DArray1_Float3_Float1_Int2 =
    TSymbolUniqueId(3044);
const TSymbolUniqueId BuiltInId::textureLodOffset_ISampler2DArray1_Float3_Float1_Int2 =
    TSymbolUniqueId(3045);
const TSymbolUniqueId BuiltInId::textureLodOffset_USampler2DArray1_Float3_Float1_Int2 =
    TSymbolUniqueId(3046);
const TSymbolUniqueId BuiltInId::textureProjLodOffset_Sampler2D1_Float3_Float1_Int2 =
    TSymbolUniqueId(3047);
const TSymbolUniqueId BuiltInId::textureProjLodOffset_ISampler2D1_Float3_Float1_Int2 =
    TSymbolUniqueId(3048);
const TSymbolUniqueId BuiltInId::textureProjLodOffset_USampler2D1_Float3_Float1_Int2 =
    TSymbolUniqueId(3049);
const TSymbolUniqueId BuiltInId::textureProjLodOffset_Sampler2D1_Float4_Float1_Int2 =
    TSymbolUniqueId(3050);
const TSymbolUniqueId BuiltInId::textureProjLodOffset_ISampler2D1_Float4_Float1_Int2 =
    TSymbolUniqueId(3051);
const TSymbolUniqueId BuiltInId::textureProjLodOffset_USampler2D1_Float4_Float1_Int2 =
    TSymbolUniqueId(3052);
const TSymbolUniqueId BuiltInId::textureProjLodOffset_Sampler3D1_Float4_Float1_Int3 =
    TSymbolUniqueId(3053);
const TSymbolUniqueId BuiltInId::textureProjLodOffset_ISampler3D1_Float4_Float1_Int3 =
    TSymbolUniqueId(3054);
const TSymbolUniqueId BuiltInId::textureProjLodOffset_USampler3D1_Float4_Float1_Int3 =
    TSymbolUniqueId(3055);
const TSymbolUniqueId BuiltInId::textureProjLodOffset_Sampler2DShadow1_Float4_Float1_Int2 =
    TSymbolUniqueId(3056);
const TSymbolUniqueId BuiltInId::texelFetchOffset_Sampler2D1_Int2_Int1_Int2 = TSymbolUniqueId(3057);
const TSymbolUniqueId BuiltInId::texelFetchOffset_ISampler2D1_Int2_Int1_Int2 =
    TSymbolUniqueId(3058);
const TSymbolUniqueId BuiltInId::texelFetchOffset_USampler2D1_Int2_Int1_Int2 =
    TSymbolUniqueId(3059);
const TSymbolUniqueId BuiltInId::texelFetchOffset_Sampler3D1_Int3_Int1_Int3 = TSymbolUniqueId(3060);
const TSymbolUniqueId BuiltInId::texelFetchOffset_ISampler3D1_Int3_Int1_Int3 =
    TSymbolUniqueId(3061);
const TSymbolUniqueId BuiltInId::texelFetchOffset_USampler3D1_Int3_Int1_Int3 =
    TSymbolUniqueId(3062);
const TSymbolUniqueId BuiltInId::texelFetchOffset_Sampler2DArray1_Int3_Int1_Int2 =
    TSymbolUniqueId(3063);
const TSymbolUniqueId BuiltInId::texelFetchOffset_ISampler2DArray1_Int3_Int1_Int2 =
    TSymbolUniqueId(3064);
const TSymbolUniqueId BuiltInId::texelFetchOffset_USampler2DArray1_Int3_Int1_Int2 =
    TSymbolUniqueId(3065);
const TSymbolUniqueId BuiltInId::textureGradOffset_Sampler2D1_Float2_Float2_Float2_Int2 =
    TSymbolUniqueId(3066);
const TSymbolUniqueId BuiltInId::textureGradOffset_ISampler2D1_Float2_Float2_Float2_Int2 =
    TSymbolUniqueId(3067);
const TSymbolUniqueId BuiltInId::textureGradOffset_USampler2D1_Float2_Float2_Float2_Int2 =
    TSymbolUniqueId(3068);
const TSymbolUniqueId BuiltInId::textureGradOffset_Sampler3D1_Float3_Float3_Float3_Int3 =
    TSymbolUniqueId(3069);
const TSymbolUniqueId BuiltInId::textureGradOffset_ISampler3D1_Float3_Float3_Float3_Int3 =
    TSymbolUniqueId(3070);
const TSymbolUniqueId BuiltInId::textureGradOffset_USampler3D1_Float3_Float3_Float3_Int3 =
    TSymbolUniqueId(3071);
const TSymbolUniqueId BuiltInId::textureGradOffset_Sampler2DShadow1_Float3_Float2_Float2_Int2 =
    TSymbolUniqueId(3072);
const TSymbolUniqueId BuiltInId::textureGradOffset_Sampler2DArray1_Float3_Float2_Float2_Int2 =
    TSymbolUniqueId(3073);
const TSymbolUniqueId BuiltInId::textureGradOffset_ISampler2DArray1_Float3_Float2_Float2_Int2 =
    TSymbolUniqueId(3074);
const TSymbolUniqueId BuiltInId::textureGradOffset_USampler2DArray1_Float3_Float2_Float2_Int2 =
    TSymbolUniqueId(3075);
const TSymbolUniqueId BuiltInId::textureGradOffset_Sampler2DArrayShadow1_Float4_Float2_Float2_Int2 =
    TSymbolUniqueId(3076);
const TSymbolUniqueId BuiltInId::textureProjGradOffset_Sampler2D1_Float3_Float2_Float2_Int2 =
    TSymbolUniqueId(3077);
const TSymbolUniqueId BuiltInId::textureProjGradOffset_ISampler2D1_Float3_Float2_Float2_Int2 =
    TSymbolUniqueId(3078);
const TSymbolUniqueId BuiltInId::textureProjGradOffset_USampler2D1_Float3_Float2_Float2_Int2 =
    TSymbolUniqueId(3079);
const TSymbolUniqueId BuiltInId::textureProjGradOffset_Sampler2D1_Float4_Float2_Float2_Int2 =
    TSymbolUniqueId(3080);
const TSymbolUniqueId BuiltInId::textureProjGradOffset_ISampler2D1_Float4_Float2_Float2_Int2 =
    TSymbolUniqueId(3081);
const TSymbolUniqueId BuiltInId::textureProjGradOffset_USampler2D1_Float4_Float2_Float2_Int2 =
    TSymbolUniqueId(3082);
const TSymbolUniqueId BuiltInId::textureProjGradOffset_Sampler3D1_Float4_Float3_Float3_Int3 =
    TSymbolUniqueId(3083);
const TSymbolUniqueId BuiltInId::textureProjGradOffset_ISampler3D1_Float4_Float3_Float3_Int3 =
    TSymbolUniqueId(3084);
const TSymbolUniqueId BuiltInId::textureProjGradOffset_USampler3D1_Float4_Float3_Float3_Int3 =
    TSymbolUniqueId(3085);
const TSymbolUniqueId BuiltInId::textureProjGradOffset_Sampler2DShadow1_Float4_Float2_Float2_Int2 =
    TSymbolUniqueId(3086);
const TSymbolUniqueId BuiltInId::textureOffset_Sampler2D1_Float2_Int2_Float1 =
    TSymbolUniqueId(3087);
const TSymbolUniqueId BuiltInId::textureOffset_ISampler2D1_Float2_Int2_Float1 =
    TSymbolUniqueId(3088);
const TSymbolUniqueId BuiltInId::textureOffset_USampler2D1_Float2_Int2_Float1 =
    TSymbolUniqueId(3089);
const TSymbolUniqueId BuiltInId::textureOffset_Sampler3D1_Float3_Int3_Float1 =
    TSymbolUniqueId(3090);
const TSymbolUniqueId BuiltInId::textureOffset_ISampler3D1_Float3_Int3_Float1 =
    TSymbolUniqueId(3091);
const TSymbolUniqueId BuiltInId::textureOffset_USampler3D1_Float3_Int3_Float1 =
    TSymbolUniqueId(3092);
const TSymbolUniqueId BuiltInId::textureOffset_Sampler2DShadow1_Float3_Int2_Float1 =
    TSymbolUniqueId(3093);
const TSymbolUniqueId BuiltInId::textureOffset_Sampler2DArray1_Float3_Int2_Float1 =
    TSymbolUniqueId(3094);
const TSymbolUniqueId BuiltInId::textureOffset_ISampler2DArray1_Float3_Int2_Float1 =
    TSymbolUniqueId(3095);
const TSymbolUniqueId BuiltInId::textureOffset_USampler2DArray1_Float3_Int2_Float1 =
    TSymbolUniqueId(3096);
const TSymbolUniqueId BuiltInId::textureProjOffset_Sampler2D1_Float3_Int2_Float1 =
    TSymbolUniqueId(3097);
const TSymbolUniqueId BuiltInId::textureProjOffset_ISampler2D1_Float3_Int2_Float1 =
    TSymbolUniqueId(3098);
const TSymbolUniqueId BuiltInId::textureProjOffset_USampler2D1_Float3_Int2_Float1 =
    TSymbolUniqueId(3099);
const TSymbolUniqueId BuiltInId::textureProjOffset_Sampler2D1_Float4_Int2_Float1 =
    TSymbolUniqueId(3100);
const TSymbolUniqueId BuiltInId::textureProjOffset_ISampler2D1_Float4_Int2_Float1 =
    TSymbolUniqueId(3101);
const TSymbolUniqueId BuiltInId::textureProjOffset_USampler2D1_Float4_Int2_Float1 =
    TSymbolUniqueId(3102);
const TSymbolUniqueId BuiltInId::textureProjOffset_Sampler3D1_Float4_Int3_Float1 =
    TSymbolUniqueId(3103);
const TSymbolUniqueId BuiltInId::textureProjOffset_ISampler3D1_Float4_Int3_Float1 =
    TSymbolUniqueId(3104);
const TSymbolUniqueId BuiltInId::textureProjOffset_USampler3D1_Float4_Int3_Float1 =
    TSymbolUniqueId(3105);
const TSymbolUniqueId BuiltInId::textureProjOffset_Sampler2DShadow1_Float4_Int2_Float1 =
    TSymbolUniqueId(3106);
const TSymbolUniqueId BuiltInId::texture_SamplerExternalOES1_Float2       = TSymbolUniqueId(3107);
const TSymbolUniqueId BuiltInId::textureProj_SamplerExternalOES1_Float3   = TSymbolUniqueId(3108);
const TSymbolUniqueId BuiltInId::textureProj_SamplerExternalOES1_Float4   = TSymbolUniqueId(3109);
const TSymbolUniqueId BuiltInId::textureSize_SamplerExternalOES1_Int1     = TSymbolUniqueId(3110);
const TSymbolUniqueId BuiltInId::texelFetch_SamplerExternalOES1_Int2_Int1 = TSymbolUniqueId(3111);
const TSymbolUniqueId BuiltInId::texture_SamplerExternal2DY2YEXT1_Float2  = TSymbolUniqueId(3112);
const TSymbolUniqueId BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float3 =
    TSymbolUniqueId(3113);
const TSymbolUniqueId BuiltInId::textureProj_SamplerExternal2DY2YEXT1_Float4 =
    TSymbolUniqueId(3114);
const TSymbolUniqueId BuiltInId::rgb_2_yuv_Float3_YuvCscStandardEXT1       = TSymbolUniqueId(3115);
const TSymbolUniqueId BuiltInId::pt00H                                     = TSymbolUniqueId(3116);
const TSymbolUniqueId BuiltInId::yuv_2_rgb_Float3_YuvCscStandardEXT1       = TSymbolUniqueId(3117);
const TSymbolUniqueId BuiltInId::textureSize_SamplerExternal2DY2YEXT1_Int1 = TSymbolUniqueId(3118);
const TSymbolUniqueId BuiltInId::texelFetch_SamplerExternal2DY2YEXT1_Int2_Int1 =
    TSymbolUniqueId(3119);
const TSymbolUniqueId BuiltInId::textureGather_Sampler2D1_Float2            = TSymbolUniqueId(3120);
const TSymbolUniqueId BuiltInId::textureGather_ISampler2D1_Float2           = TSymbolUniqueId(3121);
const TSymbolUniqueId BuiltInId::textureGather_USampler2D1_Float2           = TSymbolUniqueId(3122);
const TSymbolUniqueId BuiltInId::textureGather_Sampler2D1_Float2_Int1       = TSymbolUniqueId(3123);
const TSymbolUniqueId BuiltInId::textureGather_ISampler2D1_Float2_Int1      = TSymbolUniqueId(3124);
const TSymbolUniqueId BuiltInId::textureGather_USampler2D1_Float2_Int1      = TSymbolUniqueId(3125);
const TSymbolUniqueId BuiltInId::textureGather_Sampler2DArray1_Float3       = TSymbolUniqueId(3126);
const TSymbolUniqueId BuiltInId::textureGather_ISampler2DArray1_Float3      = TSymbolUniqueId(3127);
const TSymbolUniqueId BuiltInId::textureGather_USampler2DArray1_Float3      = TSymbolUniqueId(3128);
const TSymbolUniqueId BuiltInId::textureGather_Sampler2DArray1_Float3_Int1  = TSymbolUniqueId(3129);
const TSymbolUniqueId BuiltInId::textureGather_ISampler2DArray1_Float3_Int1 = TSymbolUniqueId(3130);
const TSymbolUniqueId BuiltInId::textureGather_USampler2DArray1_Float3_Int1 = TSymbolUniqueId(3131);
const TSymbolUniqueId BuiltInId::textureGather_SamplerCube1_Float3          = TSymbolUniqueId(3132);
const TSymbolUniqueId BuiltInId::textureGather_ISamplerCube1_Float3         = TSymbolUniqueId(3133);
const TSymbolUniqueId BuiltInId::textureGather_USamplerCube1_Float3         = TSymbolUniqueId(3134);
const TSymbolUniqueId BuiltInId::textureGather_SamplerCube1_Float3_Int1     = TSymbolUniqueId(3135);
const TSymbolUniqueId BuiltInId::textureGather_ISamplerCube1_Float3_Int1    = TSymbolUniqueId(3136);
const TSymbolUniqueId BuiltInId::textureGather_USamplerCube1_Float3_Int1    = TSymbolUniqueId(3137);
const TSymbolUniqueId BuiltInId::textureGather_Sampler2DShadow1_Float2      = TSymbolUniqueId(3138);
const TSymbolUniqueId BuiltInId::textureGather_Sampler2DShadow1_Float2_Float1 =
    TSymbolUniqueId(3139);
const TSymbolUniqueId BuiltInId::textureGather_Sampler2DArrayShadow1_Float3 = TSymbolUniqueId(3140);
const TSymbolUniqueId BuiltInId::textureGather_Sampler2DArrayShadow1_Float3_Float1 =
    TSymbolUniqueId(3141);
const TSymbolUniqueId BuiltInId::textureGather_SamplerCubeShadow1_Float3 = TSymbolUniqueId(3142);
const TSymbolUniqueId BuiltInId::textureGather_SamplerCubeShadow1_Float3_Float1 =
    TSymbolUniqueId(3143);
const TSymbolUniqueId BuiltInId::textureGatherOffset_Sampler2D1_Float2_Int2 = TSymbolUniqueId(3144);
const TSymbolUniqueId BuiltInId::textureGatherOffset_ISampler2D1_Float2_Int2 =
    TSymbolUniqueId(3145);
const TSymbolUniqueId BuiltInId::textureGatherOffset_USampler2D1_Float2_Int2 =
    TSymbolUniqueId(3146);
const TSymbolUniqueId BuiltInId::textureGatherOffset_Sampler2D1_Float2_Int2_Int1 =
    TSymbolUniqueId(3147);
const TSymbolUniqueId BuiltInId::textureGatherOffset_ISampler2D1_Float2_Int2_Int1 =
    TSymbolUniqueId(3148);
const TSymbolUniqueId BuiltInId::textureGatherOffset_USampler2D1_Float2_Int2_Int1 =
    TSymbolUniqueId(3149);
const TSymbolUniqueId BuiltInId::textureGatherOffset_Sampler2DArray1_Float3_Int2 =
    TSymbolUniqueId(3150);
const TSymbolUniqueId BuiltInId::textureGatherOffset_ISampler2DArray1_Float3_Int2 =
    TSymbolUniqueId(3151);
const TSymbolUniqueId BuiltInId::textureGatherOffset_USampler2DArray1_Float3_Int2 =
    TSymbolUniqueId(3152);
const TSymbolUniqueId BuiltInId::textureGatherOffset_Sampler2DArray1_Float3_Int2_Int1 =
    TSymbolUniqueId(3153);
const TSymbolUniqueId BuiltInId::textureGatherOffset_ISampler2DArray1_Float3_Int2_Int1 =
    TSymbolUniqueId(3154);
const TSymbolUniqueId BuiltInId::textureGatherOffset_USampler2DArray1_Float3_Int2_Int1 =
    TSymbolUniqueId(3155);
const TSymbolUniqueId BuiltInId::textureGatherOffset_Sampler2DShadow1_Float2_Float1_Int2 =
    TSymbolUniqueId(3156);
const TSymbolUniqueId BuiltInId::textureGatherOffset_Sampler2DArrayShadow1_Float3_Float1_Int2 =
    TSymbolUniqueId(3157);
const TSymbolUniqueId BuiltInId::dFdx_Float1                           = TSymbolUniqueId(3158);
const TSymbolUniqueId BuiltInId::dFdx_Float2                           = TSymbolUniqueId(3159);
const TSymbolUniqueId BuiltInId::dFdx_Float3                           = TSymbolUniqueId(3160);
const TSymbolUniqueId BuiltInId::dFdx_Float4                           = TSymbolUniqueId(3161);
const TSymbolUniqueId BuiltInId::dFdy_Float1                           = TSymbolUniqueId(3162);
const TSymbolUniqueId BuiltInId::dFdy_Float2                           = TSymbolUniqueId(3163);
const TSymbolUniqueId BuiltInId::dFdy_Float3                           = TSymbolUniqueId(3164);
const TSymbolUniqueId BuiltInId::dFdy_Float4                           = TSymbolUniqueId(3165);
const TSymbolUniqueId BuiltInId::fwidth_Float1                         = TSymbolUniqueId(3166);
const TSymbolUniqueId BuiltInId::fwidth_Float2                         = TSymbolUniqueId(3167);
const TSymbolUniqueId BuiltInId::fwidth_Float3                         = TSymbolUniqueId(3168);
const TSymbolUniqueId BuiltInId::fwidth_Float4                         = TSymbolUniqueId(3169);
const TSymbolUniqueId BuiltInId::atomicCounter_AtomicCounter1          = TSymbolUniqueId(3170);
const TSymbolUniqueId BuiltInId::pt00G                                 = TSymbolUniqueId(3171);
const TSymbolUniqueId BuiltInId::atomicCounterIncrement_AtomicCounter1 = TSymbolUniqueId(3172);
const TSymbolUniqueId BuiltInId::atomicCounterDecrement_AtomicCounter1 = TSymbolUniqueId(3173);
const TSymbolUniqueId BuiltInId::atomicAdd_UInt1_UInt1                 = TSymbolUniqueId(3174);
const TSymbolUniqueId BuiltInId::pt_io_00E                             = TSymbolUniqueId(3175);
const TSymbolUniqueId BuiltInId::atomicAdd_Int1_Int1                   = TSymbolUniqueId(3176);
const TSymbolUniqueId BuiltInId::pt_io_00D                             = TSymbolUniqueId(3177);
const TSymbolUniqueId BuiltInId::atomicMin_UInt1_UInt1                 = TSymbolUniqueId(3178);
const TSymbolUniqueId BuiltInId::atomicMin_Int1_Int1                   = TSymbolUniqueId(3179);
const TSymbolUniqueId BuiltInId::atomicMax_UInt1_UInt1                 = TSymbolUniqueId(3180);
const TSymbolUniqueId BuiltInId::atomicMax_Int1_Int1                   = TSymbolUniqueId(3181);
const TSymbolUniqueId BuiltInId::atomicAnd_UInt1_UInt1                 = TSymbolUniqueId(3182);
const TSymbolUniqueId BuiltInId::atomicAnd_Int1_Int1                   = TSymbolUniqueId(3183);
const TSymbolUniqueId BuiltInId::atomicOr_UInt1_UInt1                  = TSymbolUniqueId(3184);
const TSymbolUniqueId BuiltInId::atomicOr_Int1_Int1                    = TSymbolUniqueId(3185);
const TSymbolUniqueId BuiltInId::atomicXor_UInt1_UInt1                 = TSymbolUniqueId(3186);
const TSymbolUniqueId BuiltInId::atomicXor_Int1_Int1                   = TSymbolUniqueId(3187);
const TSymbolUniqueId BuiltInId::atomicExchange_UInt1_UInt1            = TSymbolUniqueId(3188);
const TSymbolUniqueId BuiltInId::atomicExchange_Int1_Int1              = TSymbolUniqueId(3189);
const TSymbolUniqueId BuiltInId::atomicCompSwap_UInt1_UInt1_UInt1      = TSymbolUniqueId(3190);
const TSymbolUniqueId BuiltInId::atomicCompSwap_Int1_Int1_Int1         = TSymbolUniqueId(3191);
const TSymbolUniqueId BuiltInId::imageSize_Image2D1                    = TSymbolUniqueId(3192);
const TSymbolUniqueId BuiltInId::pt00y                                 = TSymbolUniqueId(3193);
const TSymbolUniqueId BuiltInId::imageSize_IImage2D1                   = TSymbolUniqueId(3194);
const TSymbolUniqueId BuiltInId::pt00z                                 = TSymbolUniqueId(3195);
const TSymbolUniqueId BuiltInId::imageSize_UImage2D1                   = TSymbolUniqueId(3196);
const TSymbolUniqueId BuiltInId::pt01A                                 = TSymbolUniqueId(3197);
const TSymbolUniqueId BuiltInId::imageSize_Image3D1                    = TSymbolUniqueId(3198);
const TSymbolUniqueId BuiltInId::pt01B                                 = TSymbolUniqueId(3199);
const TSymbolUniqueId BuiltInId::imageSize_IImage3D1                   = TSymbolUniqueId(3200);
const TSymbolUniqueId BuiltInId::pt01C                                 = TSymbolUniqueId(3201);
const TSymbolUniqueId BuiltInId::imageSize_UImage3D1                   = TSymbolUniqueId(3202);
const TSymbolUniqueId BuiltInId::pt01D                                 = TSymbolUniqueId(3203);
const TSymbolUniqueId BuiltInId::imageSize_Image2DArray1               = TSymbolUniqueId(3204);
const TSymbolUniqueId BuiltInId::pt01E                                 = TSymbolUniqueId(3205);
const TSymbolUniqueId BuiltInId::imageSize_IImage2DArray1              = TSymbolUniqueId(3206);
const TSymbolUniqueId BuiltInId::pt01F                                 = TSymbolUniqueId(3207);
const TSymbolUniqueId BuiltInId::imageSize_UImage2DArray1              = TSymbolUniqueId(3208);
const TSymbolUniqueId BuiltInId::pt01G                                 = TSymbolUniqueId(3209);
const TSymbolUniqueId BuiltInId::imageSize_ImageCube1                  = TSymbolUniqueId(3210);
const TSymbolUniqueId BuiltInId::pt01H                                 = TSymbolUniqueId(3211);
const TSymbolUniqueId BuiltInId::imageSize_IImageCube1                 = TSymbolUniqueId(3212);
const TSymbolUniqueId BuiltInId::pt01I                                 = TSymbolUniqueId(3213);
const TSymbolUniqueId BuiltInId::imageSize_UImageCube1                 = TSymbolUniqueId(3214);
const TSymbolUniqueId BuiltInId::pt01J                                 = TSymbolUniqueId(3215);
const TSymbolUniqueId BuiltInId::imageLoad_Image2D1_Int2               = TSymbolUniqueId(3216);
const TSymbolUniqueId BuiltInId::imageLoad_IImage2D1_Int2              = TSymbolUniqueId(3217);
const TSymbolUniqueId BuiltInId::imageLoad_UImage2D1_Int2              = TSymbolUniqueId(3218);
const TSymbolUniqueId BuiltInId::imageLoad_Image3D1_Int3               = TSymbolUniqueId(3219);
const TSymbolUniqueId BuiltInId::imageLoad_IImage3D1_Int3              = TSymbolUniqueId(3220);
const TSymbolUniqueId BuiltInId::imageLoad_UImage3D1_Int3              = TSymbolUniqueId(3221);
const TSymbolUniqueId BuiltInId::imageLoad_Image2DArray1_Int3          = TSymbolUniqueId(3222);
const TSymbolUniqueId BuiltInId::imageLoad_IImage2DArray1_Int3         = TSymbolUniqueId(3223);
const TSymbolUniqueId BuiltInId::imageLoad_UImage2DArray1_Int3         = TSymbolUniqueId(3224);
const TSymbolUniqueId BuiltInId::imageLoad_ImageCube1_Int3             = TSymbolUniqueId(3225);
const TSymbolUniqueId BuiltInId::imageLoad_IImageCube1_Int3            = TSymbolUniqueId(3226);
const TSymbolUniqueId BuiltInId::imageLoad_UImageCube1_Int3            = TSymbolUniqueId(3227);
const TSymbolUniqueId BuiltInId::imageStore_Image2D1_Int2_Float4       = TSymbolUniqueId(3228);
const TSymbolUniqueId BuiltInId::imageStore_IImage2D1_Int2_Int4        = TSymbolUniqueId(3229);
const TSymbolUniqueId BuiltInId::imageStore_UImage2D1_Int2_UInt4       = TSymbolUniqueId(3230);
const TSymbolUniqueId BuiltInId::imageStore_Image3D1_Int3_Float4       = TSymbolUniqueId(3231);
const TSymbolUniqueId BuiltInId::imageStore_IImage3D1_Int3_Int4        = TSymbolUniqueId(3232);
const TSymbolUniqueId BuiltInId::imageStore_UImage3D1_Int3_UInt4       = TSymbolUniqueId(3233);
const TSymbolUniqueId BuiltInId::imageStore_Image2DArray1_Int3_Float4  = TSymbolUniqueId(3234);
const TSymbolUniqueId BuiltInId::imageStore_IImage2DArray1_Int3_Int4   = TSymbolUniqueId(3235);
const TSymbolUniqueId BuiltInId::imageStore_UImage2DArray1_Int3_UInt4  = TSymbolUniqueId(3236);
const TSymbolUniqueId BuiltInId::imageStore_ImageCube1_Int3_Float4     = TSymbolUniqueId(3237);
const TSymbolUniqueId BuiltInId::imageStore_IImageCube1_Int3_Int4      = TSymbolUniqueId(3238);
const TSymbolUniqueId BuiltInId::imageStore_UImageCube1_Int3_UInt4     = TSymbolUniqueId(3239);
const TSymbolUniqueId BuiltInId::memoryBarrier                         = TSymbolUniqueId(3240);
const TSymbolUniqueId BuiltInId::memoryBarrierAtomicCounter            = TSymbolUniqueId(3241);
const TSymbolUniqueId BuiltInId::memoryBarrierBuffer                   = TSymbolUniqueId(3242);
const TSymbolUniqueId BuiltInId::memoryBarrierImage                    = TSymbolUniqueId(3243);
const TSymbolUniqueId BuiltInId::barrier                               = TSymbolUniqueId(3244);
const TSymbolUniqueId BuiltInId::memoryBarrierShared                   = TSymbolUniqueId(3245);
const TSymbolUniqueId BuiltInId::groupMemoryBarrier                    = TSymbolUniqueId(3246);
const TSymbolUniqueId BuiltInId::EmitVertex                            = TSymbolUniqueId(3247);
const TSymbolUniqueId BuiltInId::EndPrimitive                          = TSymbolUniqueId(3248);
const TSymbolUniqueId BuiltInId::gl_DepthRangeParameters               = TSymbolUniqueId(3249);
const TSymbolUniqueId BuiltInId::gl_DepthRange                         = TSymbolUniqueId(3250);
const TSymbolUniqueId BuiltInId::gl_MaxVertexAttribs                   = TSymbolUniqueId(3251);
const TSymbolUniqueId BuiltInId::gl_MaxVertexUniformVectors            = TSymbolUniqueId(3252);
const TSymbolUniqueId BuiltInId::gl_MaxVertexTextureImageUnits         = TSymbolUniqueId(3253);
const TSymbolUniqueId BuiltInId::gl_MaxCombinedTextureImageUnits       = TSymbolUniqueId(3254);
const TSymbolUniqueId BuiltInId::gl_MaxTextureImageUnits               = TSymbolUniqueId(3255);
const TSymbolUniqueId BuiltInId::gl_MaxFragmentUniformVectors          = TSymbolUniqueId(3256);
const TSymbolUniqueId BuiltInId::gl_MaxVaryingVectors                  = TSymbolUniqueId(3257);
const TSymbolUniqueId BuiltInId::gl_MaxDrawBuffers                     = TSymbolUniqueId(3258);
const TSymbolUniqueId BuiltInId::gl_MaxDualSourceDrawBuffersEXT        = TSymbolUniqueId(3259);
const TSymbolUniqueId BuiltInId::gl_MaxVertexOutputVectors             = TSymbolUniqueId(3260);
const TSymbolUniqueId BuiltInId::gl_MaxFragmentInputVectors            = TSymbolUniqueId(3261);
const TSymbolUniqueId BuiltInId::gl_MinProgramTexelOffset              = TSymbolUniqueId(3262);
const TSymbolUniqueId BuiltInId::gl_MaxProgramTexelOffset              = TSymbolUniqueId(3263);
const TSymbolUniqueId BuiltInId::gl_MaxImageUnits                      = TSymbolUniqueId(3264);
const TSymbolUniqueId BuiltInId::gl_MaxVertexImageUniforms             = TSymbolUniqueId(3265);
const TSymbolUniqueId BuiltInId::gl_MaxFragmentImageUniforms           = TSymbolUniqueId(3266);
const TSymbolUniqueId BuiltInId::gl_MaxComputeImageUniforms            = TSymbolUniqueId(3267);
const TSymbolUniqueId BuiltInId::gl_MaxCombinedImageUniforms           = TSymbolUniqueId(3268);
const TSymbolUniqueId BuiltInId::gl_MaxCombinedShaderOutputResources   = TSymbolUniqueId(3269);
const TSymbolUniqueId BuiltInId::gl_MaxComputeWorkGroupCount           = TSymbolUniqueId(3270);
const TSymbolUniqueId BuiltInId::gl_MaxComputeWorkGroupSize            = TSymbolUniqueId(3271);
const TSymbolUniqueId BuiltInId::gl_MaxComputeUniformComponents        = TSymbolUniqueId(3272);
const TSymbolUniqueId BuiltInId::gl_MaxComputeTextureImageUnits        = TSymbolUniqueId(3273);
const TSymbolUniqueId BuiltInId::gl_MaxComputeAtomicCounters           = TSymbolUniqueId(3274);
const TSymbolUniqueId BuiltInId::gl_MaxComputeAtomicCounterBuffers     = TSymbolUniqueId(3275);
const TSymbolUniqueId BuiltInId::gl_MaxVertexAtomicCounters            = TSymbolUniqueId(3276);
const TSymbolUniqueId BuiltInId::gl_MaxFragmentAtomicCounters          = TSymbolUniqueId(3277);
const TSymbolUniqueId BuiltInId::gl_MaxCombinedAtomicCounters          = TSymbolUniqueId(3278);
const TSymbolUniqueId BuiltInId::gl_MaxAtomicCounterBindings           = TSymbolUniqueId(3279);
const TSymbolUniqueId BuiltInId::gl_MaxVertexAtomicCounterBuffers      = TSymbolUniqueId(3280);
const TSymbolUniqueId BuiltInId::gl_MaxFragmentAtomicCounterBuffers    = TSymbolUniqueId(3281);
const TSymbolUniqueId BuiltInId::gl_MaxCombinedAtomicCounterBuffers    = TSymbolUniqueId(3282);
const TSymbolUniqueId BuiltInId::gl_MaxAtomicCounterBufferSize         = TSymbolUniqueId(3283);
const TSymbolUniqueId BuiltInId::gl_MaxGeometryInputComponents         = TSymbolUniqueId(3284);
const TSymbolUniqueId BuiltInId::gl_MaxGeometryOutputComponents        = TSymbolUniqueId(3285);
const TSymbolUniqueId BuiltInId::gl_MaxGeometryImageUniforms           = TSymbolUniqueId(3286);
const TSymbolUniqueId BuiltInId::gl_MaxGeometryTextureImageUnits       = TSymbolUniqueId(3287);
const TSymbolUniqueId BuiltInId::gl_MaxGeometryOutputVertices          = TSymbolUniqueId(3288);
const TSymbolUniqueId BuiltInId::gl_MaxGeometryTotalOutputComponents   = TSymbolUniqueId(3289);
const TSymbolUniqueId BuiltInId::gl_MaxGeometryUniformComponents       = TSymbolUniqueId(3290);
const TSymbolUniqueId BuiltInId::gl_MaxGeometryAtomicCounters          = TSymbolUniqueId(3291);
const TSymbolUniqueId BuiltInId::gl_MaxGeometryAtomicCounterBuffers    = TSymbolUniqueId(3292);
const TSymbolUniqueId BuiltInId::gl_FragCoord                          = TSymbolUniqueId(3293);
const TSymbolUniqueId BuiltInId::gl_FrontFacing                        = TSymbolUniqueId(3294);
const TSymbolUniqueId BuiltInId::gl_PointCoord                         = TSymbolUniqueId(3295);
const TSymbolUniqueId BuiltInId::gl_FragColor                          = TSymbolUniqueId(3296);
const TSymbolUniqueId BuiltInId::gl_FragData                           = TSymbolUniqueId(3297);
const TSymbolUniqueId BuiltInId::gl_FragDepth                          = TSymbolUniqueId(3298);
const TSymbolUniqueId BuiltInId::gl_HelperInvocation                   = TSymbolUniqueId(3299);
const TSymbolUniqueId BuiltInId::gl_SecondaryFragColorEXT              = TSymbolUniqueId(3300);
const TSymbolUniqueId BuiltInId::gl_SecondaryFragDataEXT               = TSymbolUniqueId(3301);
const TSymbolUniqueId BuiltInId::gl_FragDepthEXT                       = TSymbolUniqueId(3302);
const TSymbolUniqueId BuiltInId::gl_LastFragData                       = TSymbolUniqueId(3303);
const TSymbolUniqueId BuiltInId::gl_LastFragColor                      = TSymbolUniqueId(3304);
const TSymbolUniqueId BuiltInId::gl_LastFragDataNV                     = TSymbolUniqueId(3305);
const TSymbolUniqueId BuiltInId::gl_LastFragColorARM                   = TSymbolUniqueId(3306);
const TSymbolUniqueId BuiltInId::gl_PrimitiveID                        = TSymbolUniqueId(3307);
const TSymbolUniqueId BuiltInId::gl_Layer                              = TSymbolUniqueId(3308);
const TSymbolUniqueId BuiltInId::gl_Position                           = TSymbolUniqueId(3309);
const TSymbolUniqueId BuiltInId::gl_PointSize                          = TSymbolUniqueId(3310);
const TSymbolUniqueId BuiltInId::gl_InstanceID                         = TSymbolUniqueId(3311);
const TSymbolUniqueId BuiltInId::gl_InstanceIndex                      = TSymbolUniqueId(3312);
const TSymbolUniqueId BuiltInId::gl_VertexID                           = TSymbolUniqueId(3313);
const TSymbolUniqueId BuiltInId::gl_VertexIndex                        = TSymbolUniqueId(3314);
const TSymbolUniqueId BuiltInId::gl_ViewportIndex                      = TSymbolUniqueId(3315);
const TSymbolUniqueId BuiltInId::gl_LayerVS                            = TSymbolUniqueId(3316);
const TSymbolUniqueId BuiltInId::gl_DrawID                             = TSymbolUniqueId(3317);
const TSymbolUniqueId BuiltInId::gl_BaseVertex                         = TSymbolUniqueId(3318);
const TSymbolUniqueId BuiltInId::gl_BaseInstance                       = TSymbolUniqueId(3319);
const TSymbolUniqueId BuiltInId::angle_BaseVertex                      = TSymbolUniqueId(3320);
const TSymbolUniqueId BuiltInId::angle_BaseInstance                    = TSymbolUniqueId(3321);
const TSymbolUniqueId BuiltInId::gl_NumWorkGroups                      = TSymbolUniqueId(3322);
const TSymbolUniqueId BuiltInId::gl_WorkGroupSize                      = TSymbolUniqueId(3323);
const TSymbolUniqueId BuiltInId::gl_WorkGroupID                        = TSymbolUniqueId(3324);
const TSymbolUniqueId BuiltInId::gl_LocalInvocationID                  = TSymbolUniqueId(3325);
const TSymbolUniqueId BuiltInId::gl_GlobalInvocationID                 = TSymbolUniqueId(3326);
const TSymbolUniqueId BuiltInId::gl_LocalInvocationIndex               = TSymbolUniqueId(3327);
const TSymbolUniqueId BuiltInId::gl_PrimitiveIDIn                      = TSymbolUniqueId(3328);
const TSymbolUniqueId BuiltInId::gl_InvocationID                       = TSymbolUniqueId(3329);
const TSymbolUniqueId BuiltInId::gl_PrimitiveIDGS                      = TSymbolUniqueId(3330);
const TSymbolUniqueId BuiltInId::gl_LayerGS                            = TSymbolUniqueId(3331);
const TSymbolUniqueId BuiltInId::gl_PerVertex                          = TSymbolUniqueId(3332);
const TSymbolUniqueId BuiltInId::gl_in                                 = TSymbolUniqueId(3333);
const TSymbolUniqueId BuiltInId::gl_PerVertexOutBlock                  = TSymbolUniqueId(3334);
const TSymbolUniqueId BuiltInId::gl_PositionGS                         = TSymbolUniqueId(3335);
const TSymbolUniqueId BuiltInId::gl_ViewID_OVR                         = TSymbolUniqueId(3336);

const int TSymbolTable::kLastBuiltInId = 3336;

namespace BuiltInName
{

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

}  // namespace BuiltInVariable

namespace BuiltInParameters
{

constexpr const TVariable **empty        = nullptr;
constexpr const TVariable *p00B00B00B[3] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt00B,
                                            &BuiltInVariable::kpt00B};
constexpr const TVariable *p00B00B00F[3] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt00B,
                                            &BuiltInVariable::kpt00F};
constexpr const TVariable *p00B00B10B[3] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt00B,
                                            &BuiltInVariable::kpt10B};
constexpr const TVariable *p00B00B20B[3] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt00B,
                                            &BuiltInVariable::kpt20B};
constexpr const TVariable *p00B00B30B[3] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt00B,
                                            &BuiltInVariable::kpt30B};
constexpr const TVariable *p00B00D[2]    = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00B10B[2]    = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt10B};
constexpr const TVariable *p00B20B[2]    = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt20B};
constexpr const TVariable *p00B30B[2]    = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt30B};
constexpr const TVariable *p00B_o_00B[2] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt_o_00B};
constexpr const TVariable *p00B_o_00D[2] = {&BuiltInVariable::kpt00B, &BuiltInVariable::kpt_o_00D};
constexpr const TVariable *p00D00D00D00D[4] = {&BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00D00D_o_00D_o_00D[4] = {
    &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D, &BuiltInVariable::kpt_o_00D,
    &BuiltInVariable::kpt_o_00D};
constexpr const TVariable *p00E00D00D[3]    = {&BuiltInVariable::kpt00E, &BuiltInVariable::kpt00D,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p00E00E00D00D[4] = {&BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00E00E00E[3]    = {&BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E,
                                            &BuiltInVariable::kpt00E};
constexpr const TVariable *p00E00E_o_00E_o_00E[4] = {
    &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E, &BuiltInVariable::kpt_o_00E,
    &BuiltInVariable::kpt_o_00E};
constexpr const TVariable *p00G[1]          = {&BuiltInVariable::kpt00G};
constexpr const TVariable *p00I00D[2]       = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00I10B00B10D[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt10B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00I10B00D[3]    = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt10B,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p00I10B10B10B10D[5] = {
    &BuiltInVariable::kpt00I, &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00I10B10D00B[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt10B,
                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00I10B10D00D[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt10B,
                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00I10D00D10D[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt10D,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00I20B00B10D[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00I20B10B10B10D[5] = {
    &BuiltInVariable::kpt00I, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00I20B10D00B[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00I30B00B10D[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00I30B10B10B10D[5] = {
    &BuiltInVariable::kpt00I, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00I30B10D00B[4] = {&BuiltInVariable::kpt00I, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00J00D[2]       = {&BuiltInVariable::kpt00J, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00J20B00B20D[4] = {&BuiltInVariable::kpt00J, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt20D};
constexpr const TVariable *p00J20B20B20B20D[5] = {
    &BuiltInVariable::kpt00J, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B,
    &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20D};
constexpr const TVariable *p00J20B20D00B[4] = {&BuiltInVariable::kpt00J, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00J20D00D20D[4] = {&BuiltInVariable::kpt00J, &BuiltInVariable::kpt20D,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt20D};
constexpr const TVariable *p00J30B00B20D[4] = {&BuiltInVariable::kpt00J, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt20D};
constexpr const TVariable *p00J30B20B20B20D[5] = {
    &BuiltInVariable::kpt00J, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt20B,
    &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20D};
constexpr const TVariable *p00J30B20D00B[4] = {&BuiltInVariable::kpt00J, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00K00D[2]       = {&BuiltInVariable::kpt00K, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00K20B00B[3]    = {&BuiltInVariable::kpt00K, &BuiltInVariable::kpt20B,
                                            &BuiltInVariable::kpt00B};
constexpr const TVariable *p00K20B00D[3]    = {&BuiltInVariable::kpt00K, &BuiltInVariable::kpt20B,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p00K20B20B20B[4] = {&BuiltInVariable::kpt00K, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B};
constexpr const TVariable *p00L00D[2]       = {&BuiltInVariable::kpt00L, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00L20B00B10D[4] = {&BuiltInVariable::kpt00L, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00L20B00D[3]    = {&BuiltInVariable::kpt00L, &BuiltInVariable::kpt20B,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p00L20B10B10B10D[5] = {
    &BuiltInVariable::kpt00L, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00L20B10D00B[4] = {&BuiltInVariable::kpt00L, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00L20B10D00D[4] = {&BuiltInVariable::kpt00L, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00L20D00D10D[4] = {&BuiltInVariable::kpt00L, &BuiltInVariable::kpt20D,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00M00D[2]       = {&BuiltInVariable::kpt00M, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00M10B00B[3]    = {&BuiltInVariable::kpt00M, &BuiltInVariable::kpt10B,
                                            &BuiltInVariable::kpt00B};
constexpr const TVariable *p00M10D00D[3]    = {&BuiltInVariable::kpt00M, &BuiltInVariable::kpt10D,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p00M20B00B[3]    = {&BuiltInVariable::kpt00M, &BuiltInVariable::kpt20B,
                                            &BuiltInVariable::kpt00B};
constexpr const TVariable *p00M30B00B[3]    = {&BuiltInVariable::kpt00M, &BuiltInVariable::kpt30B,
                                            &BuiltInVariable::kpt00B};
constexpr const TVariable *p00N00D[2]       = {&BuiltInVariable::kpt00N, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00N10B00B[3]    = {&BuiltInVariable::kpt00N, &BuiltInVariable::kpt10B,
                                            &BuiltInVariable::kpt00B};
constexpr const TVariable *p00N10D00D[3]    = {&BuiltInVariable::kpt00N, &BuiltInVariable::kpt10D,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p00N20B00B[3]    = {&BuiltInVariable::kpt00N, &BuiltInVariable::kpt20B,
                                            &BuiltInVariable::kpt00B};
constexpr const TVariable *p00N30B00B[3]    = {&BuiltInVariable::kpt00N, &BuiltInVariable::kpt30B,
                                            &BuiltInVariable::kpt00B};
constexpr const TVariable *p00O10B[2]       = {&BuiltInVariable::kpt00O, &BuiltInVariable::kpt10B};
constexpr const TVariable *p00O20B[2]       = {&BuiltInVariable::kpt00O, &BuiltInVariable::kpt20B};
constexpr const TVariable *p00O30B[2]       = {&BuiltInVariable::kpt00O, &BuiltInVariable::kpt30B};
constexpr const TVariable *p00P10D00D[3]    = {&BuiltInVariable::kpt00P, &BuiltInVariable::kpt10D,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p00Q20D00D[3]    = {&BuiltInVariable::kpt00Q, &BuiltInVariable::kpt20D,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p00R00D[2]       = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00R10B00B10D[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt10B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00R10B00D[3]    = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt10B,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p00R10B10B10B10D[5] = {
    &BuiltInVariable::kpt00R, &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00R10B10D00B[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt10B,
                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00R10B10D00D[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt10B,
                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00R10D00D10D[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt10D,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00R20B00B10D[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00R20B10B10B10D[5] = {
    &BuiltInVariable::kpt00R, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00R20B10D00B[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00R30B00B10D[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00R30B10B10B10D[5] = {
    &BuiltInVariable::kpt00R, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00R30B10D00B[4] = {&BuiltInVariable::kpt00R, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00S00D[2]       = {&BuiltInVariable::kpt00S, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00S20B00B20D[4] = {&BuiltInVariable::kpt00S, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt20D};
constexpr const TVariable *p00S20B20B20B20D[5] = {
    &BuiltInVariable::kpt00S, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B,
    &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20D};
constexpr const TVariable *p00S20B20D00B[4] = {&BuiltInVariable::kpt00S, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00S20D00D20D[4] = {&BuiltInVariable::kpt00S, &BuiltInVariable::kpt20D,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt20D};
constexpr const TVariable *p00S30B00B20D[4] = {&BuiltInVariable::kpt00S, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt20D};
constexpr const TVariable *p00S30B20B20B20D[5] = {
    &BuiltInVariable::kpt00S, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt20B,
    &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20D};
constexpr const TVariable *p00S30B20D00B[4] = {&BuiltInVariable::kpt00S, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00T00D[2]       = {&BuiltInVariable::kpt00T, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00T20B00B[3]    = {&BuiltInVariable::kpt00T, &BuiltInVariable::kpt20B,
                                            &BuiltInVariable::kpt00B};
constexpr const TVariable *p00T20B00D[3]    = {&BuiltInVariable::kpt00T, &BuiltInVariable::kpt20B,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p00T20B20B20B[4] = {&BuiltInVariable::kpt00T, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B};
constexpr const TVariable *p00U00D[2]       = {&BuiltInVariable::kpt00U, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00U20B00B10D[4] = {&BuiltInVariable::kpt00U, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00U20B00D[3]    = {&BuiltInVariable::kpt00U, &BuiltInVariable::kpt20B,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p00U20B10B10B10D[5] = {
    &BuiltInVariable::kpt00U, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00U20B10D00B[4] = {&BuiltInVariable::kpt00U, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00U20B10D00D[4] = {&BuiltInVariable::kpt00U, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00U20D00D10D[4] = {&BuiltInVariable::kpt00U, &BuiltInVariable::kpt20D,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00V10D00D[3]    = {&BuiltInVariable::kpt00V, &BuiltInVariable::kpt10D,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p00W20D00D[3]    = {&BuiltInVariable::kpt00W, &BuiltInVariable::kpt20D,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p00X00D[2]       = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00X10B00B10D[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt10B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00X10B00D[3]    = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt10B,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p00X10B10B10B10D[5] = {
    &BuiltInVariable::kpt00X, &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00X10B10D00B[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt10B,
                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00X10B10D00D[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt10B,
                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00X10D00D10D[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt10D,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00X20B00B10D[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00X20B10B10B10D[5] = {
    &BuiltInVariable::kpt00X, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00X20B10D00B[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00X30B00B10D[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00X30B10B10B10D[5] = {
    &BuiltInVariable::kpt00X, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00X30B10D00B[4] = {&BuiltInVariable::kpt00X, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00Y00D[2]       = {&BuiltInVariable::kpt00Y, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00Y20B00B20D[4] = {&BuiltInVariable::kpt00Y, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt20D};
constexpr const TVariable *p00Y20B20B20B20D[5] = {
    &BuiltInVariable::kpt00Y, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B,
    &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20D};
constexpr const TVariable *p00Y20B20D00B[4] = {&BuiltInVariable::kpt00Y, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00Y20D00D20D[4] = {&BuiltInVariable::kpt00Y, &BuiltInVariable::kpt20D,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt20D};
constexpr const TVariable *p00Y30B00B20D[4] = {&BuiltInVariable::kpt00Y, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt20D};
constexpr const TVariable *p00Y30B20B20B20D[5] = {
    &BuiltInVariable::kpt00Y, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt20B,
    &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20D};
constexpr const TVariable *p00Y30B20D00B[4] = {&BuiltInVariable::kpt00Y, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt20D, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00Z00D[2]       = {&BuiltInVariable::kpt00Z, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00Z20B00B[3]    = {&BuiltInVariable::kpt00Z, &BuiltInVariable::kpt20B,
                                            &BuiltInVariable::kpt00B};
constexpr const TVariable *p00Z20B00D[3]    = {&BuiltInVariable::kpt00Z, &BuiltInVariable::kpt20B,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p00Z20B20B20B[4] = {&BuiltInVariable::kpt00Z, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B};
constexpr const TVariable *p00a00D[2]       = {&BuiltInVariable::kpt00a, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00a20B00B10D[4] = {&BuiltInVariable::kpt00a, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00a20B00D[3]    = {&BuiltInVariable::kpt00a, &BuiltInVariable::kpt20B,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p00a20B10B10B10D[5] = {
    &BuiltInVariable::kpt00a, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00a20B10D00B[4] = {&BuiltInVariable::kpt00a, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00a20B10D00D[4] = {&BuiltInVariable::kpt00a, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00a20D00D10D[4] = {&BuiltInVariable::kpt00a, &BuiltInVariable::kpt20D,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00b10D00D[3]    = {&BuiltInVariable::kpt00b, &BuiltInVariable::kpt10D,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p00c20D00D[3]    = {&BuiltInVariable::kpt00c, &BuiltInVariable::kpt20D,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p00d00D[2]       = {&BuiltInVariable::kpt00d, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00d10B00B10D[4] = {&BuiltInVariable::kpt00d, &BuiltInVariable::kpt10B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00d20B00B10D[4] = {&BuiltInVariable::kpt00d, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00d20B10B10B10D[5] = {
    &BuiltInVariable::kpt00d, &BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00d20B10D00B[4] = {&BuiltInVariable::kpt00d, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00d30B00B10D[4] = {&BuiltInVariable::kpt00d, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00d30B10B10B10D[5] = {
    &BuiltInVariable::kpt00d, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00d30B10D00B[4] = {&BuiltInVariable::kpt00d, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt10D, &BuiltInVariable::kpt00B};
constexpr const TVariable *p00e00D[2]       = {&BuiltInVariable::kpt00e, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00e20B00B[3]    = {&BuiltInVariable::kpt00e, &BuiltInVariable::kpt20B,
                                            &BuiltInVariable::kpt00B};
constexpr const TVariable *p00e30B00B[3]    = {&BuiltInVariable::kpt00e, &BuiltInVariable::kpt30B,
                                            &BuiltInVariable::kpt00B};
constexpr const TVariable *p00e30B20B20B[4] = {&BuiltInVariable::kpt00e, &BuiltInVariable::kpt30B,
                                               &BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B};
constexpr const TVariable *p00f00D[2]       = {&BuiltInVariable::kpt00f, &BuiltInVariable::kpt00D};
constexpr const TVariable *p00f20B00B10D[4] = {&BuiltInVariable::kpt00f, &BuiltInVariable::kpt20B,
                                               &BuiltInVariable::kpt00B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00f30B10B10B10D[5] = {
    &BuiltInVariable::kpt00f, &BuiltInVariable::kpt30B, &BuiltInVariable::kpt10B,
    &BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p00y10D30B[3] = {&BuiltInVariable::kpt00y, &BuiltInVariable::kpt10D,
                                            &BuiltInVariable::kpt30B};
constexpr const TVariable *p00z10D30D[3] = {&BuiltInVariable::kpt00z, &BuiltInVariable::kpt10D,
                                            &BuiltInVariable::kpt30D};
constexpr const TVariable *p01A10D30E[3] = {&BuiltInVariable::kpt01A, &BuiltInVariable::kpt10D,
                                            &BuiltInVariable::kpt30E};
constexpr const TVariable *p01B20D30B[3] = {&BuiltInVariable::kpt01B, &BuiltInVariable::kpt20D,
                                            &BuiltInVariable::kpt30B};
constexpr const TVariable *p01C20D30D[3] = {&BuiltInVariable::kpt01C, &BuiltInVariable::kpt20D,
                                            &BuiltInVariable::kpt30D};
constexpr const TVariable *p01D20D30E[3] = {&BuiltInVariable::kpt01D, &BuiltInVariable::kpt20D,
                                            &BuiltInVariable::kpt30E};
constexpr const TVariable *p01E20D30B[3] = {&BuiltInVariable::kpt01E, &BuiltInVariable::kpt20D,
                                            &BuiltInVariable::kpt30B};
constexpr const TVariable *p01F20D30D[3] = {&BuiltInVariable::kpt01F, &BuiltInVariable::kpt20D,
                                            &BuiltInVariable::kpt30D};
constexpr const TVariable *p01G20D30E[3] = {&BuiltInVariable::kpt01G, &BuiltInVariable::kpt20D,
                                            &BuiltInVariable::kpt30E};
constexpr const TVariable *p01H20D30B[3] = {&BuiltInVariable::kpt01H, &BuiltInVariable::kpt20D,
                                            &BuiltInVariable::kpt30B};
constexpr const TVariable *p01I20D30D[3] = {&BuiltInVariable::kpt01I, &BuiltInVariable::kpt20D,
                                            &BuiltInVariable::kpt30D};
constexpr const TVariable *p01J20D30E[3] = {&BuiltInVariable::kpt01J, &BuiltInVariable::kpt20D,
                                            &BuiltInVariable::kpt30E};
constexpr const TVariable *p10B00B00B[3] = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt00B,
                                            &BuiltInVariable::kpt00B};
constexpr const TVariable *p10B10B00B[3] = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt10B,
                                            &BuiltInVariable::kpt00B};
constexpr const TVariable *p10B10B10B[3] = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt10B,
                                            &BuiltInVariable::kpt10B};
constexpr const TVariable *p10B10B10F[3] = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt10B,
                                            &BuiltInVariable::kpt10F};
constexpr const TVariable *p10B10D[2]    = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt10D};
constexpr const TVariable *p10B20B[2]    = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt20B};
constexpr const TVariable *p10B30B[2]    = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt30B};
constexpr const TVariable *p10B_o_10B[2] = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt_o_10B};
constexpr const TVariable *p10B_o_10D[2] = {&BuiltInVariable::kpt10B, &BuiltInVariable::kpt_o_10D};
constexpr const TVariable *p10D00D00D[3] = {&BuiltInVariable::kpt10D, &BuiltInVariable::kpt00D,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p10D10D00D00D[4] = {&BuiltInVariable::kpt10D, &BuiltInVariable::kpt10D,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p10D10D10D[3]    = {&BuiltInVariable::kpt10D, &BuiltInVariable::kpt10D,
                                            &BuiltInVariable::kpt10D};
constexpr const TVariable *p10D10D_o_10D_o_10D[4] = {
    &BuiltInVariable::kpt10D, &BuiltInVariable::kpt10D, &BuiltInVariable::kpt_o_10D,
    &BuiltInVariable::kpt_o_10D};
constexpr const TVariable *p10E00D00D[3]    = {&BuiltInVariable::kpt10E, &BuiltInVariable::kpt00D,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p10E00E00E[3]    = {&BuiltInVariable::kpt10E, &BuiltInVariable::kpt00E,
                                            &BuiltInVariable::kpt00E};
constexpr const TVariable *p10E10E00D00D[4] = {&BuiltInVariable::kpt10E, &BuiltInVariable::kpt10E,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p10E10E10E[3]    = {&BuiltInVariable::kpt10E, &BuiltInVariable::kpt10E,
                                            &BuiltInVariable::kpt10E};
constexpr const TVariable *p10E10E_o_10E_o_10E[4] = {
    &BuiltInVariable::kpt10E, &BuiltInVariable::kpt10E, &BuiltInVariable::kpt_o_10E,
    &BuiltInVariable::kpt_o_10E};
constexpr const TVariable *p10F10F[2]    = {&BuiltInVariable::kpt10F, &BuiltInVariable::kpt10F};
constexpr const TVariable *p20B00B00B[3] = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt00B,
                                            &BuiltInVariable::kpt00B};
constexpr const TVariable *p20B00H[2]    = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt00H};
constexpr const TVariable *p20B10B[2]    = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt10B};
constexpr const TVariable *p20B20B00B[3] = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B,
                                            &BuiltInVariable::kpt00B};
constexpr const TVariable *p20B20B20B[3] = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B,
                                            &BuiltInVariable::kpt20B};
constexpr const TVariable *p20B20B20F[3] = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt20B,
                                            &BuiltInVariable::kpt20F};
constexpr const TVariable *p20B20D[2]    = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt20D};
constexpr const TVariable *p20B30B[2]    = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt30B};
constexpr const TVariable *p20B_o_20B[2] = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt_o_20B};
constexpr const TVariable *p20B_o_20D[2] = {&BuiltInVariable::kpt20B, &BuiltInVariable::kpt_o_20D};
constexpr const TVariable *p20D00D00D[3] = {&BuiltInVariable::kpt20D, &BuiltInVariable::kpt00D,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p20D20D00D00D[4] = {&BuiltInVariable::kpt20D, &BuiltInVariable::kpt20D,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p20D20D20D[3]    = {&BuiltInVariable::kpt20D, &BuiltInVariable::kpt20D,
                                            &BuiltInVariable::kpt20D};
constexpr const TVariable *p20D20D_o_20D_o_20D[4] = {
    &BuiltInVariable::kpt20D, &BuiltInVariable::kpt20D, &BuiltInVariable::kpt_o_20D,
    &BuiltInVariable::kpt_o_20D};
constexpr const TVariable *p20E00D00D[3]    = {&BuiltInVariable::kpt20E, &BuiltInVariable::kpt00D,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p20E00E00E[3]    = {&BuiltInVariable::kpt20E, &BuiltInVariable::kpt00E,
                                            &BuiltInVariable::kpt00E};
constexpr const TVariable *p20E20E00D00D[4] = {&BuiltInVariable::kpt20E, &BuiltInVariable::kpt20E,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p20E20E20E[3]    = {&BuiltInVariable::kpt20E, &BuiltInVariable::kpt20E,
                                            &BuiltInVariable::kpt20E};
constexpr const TVariable *p20E20E_o_20E_o_20E[4] = {
    &BuiltInVariable::kpt20E, &BuiltInVariable::kpt20E, &BuiltInVariable::kpt_o_20E,
    &BuiltInVariable::kpt_o_20E};
constexpr const TVariable *p20F20F[2]    = {&BuiltInVariable::kpt20F, &BuiltInVariable::kpt20F};
constexpr const TVariable *p30B00B00B[3] = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt00B,
                                            &BuiltInVariable::kpt00B};
constexpr const TVariable *p30B10B[2]    = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt10B};
constexpr const TVariable *p30B20B[2]    = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt20B};
constexpr const TVariable *p30B30B00B[3] = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt30B,
                                            &BuiltInVariable::kpt00B};
constexpr const TVariable *p30B30B30B[3] = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt30B,
                                            &BuiltInVariable::kpt30B};
constexpr const TVariable *p30B30B30F[3] = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt30B,
                                            &BuiltInVariable::kpt30F};
constexpr const TVariable *p30B30D[2]    = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt30D};
constexpr const TVariable *p30B_o_30B[2] = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt_o_30B};
constexpr const TVariable *p30B_o_30D[2] = {&BuiltInVariable::kpt30B, &BuiltInVariable::kpt_o_30D};
constexpr const TVariable *p30D00D00D[3] = {&BuiltInVariable::kpt30D, &BuiltInVariable::kpt00D,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p30D30D00D00D[4] = {&BuiltInVariable::kpt30D, &BuiltInVariable::kpt30D,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p30D30D30D[3]    = {&BuiltInVariable::kpt30D, &BuiltInVariable::kpt30D,
                                            &BuiltInVariable::kpt30D};
constexpr const TVariable *p30D30D_o_30D_o_30D[4] = {
    &BuiltInVariable::kpt30D, &BuiltInVariable::kpt30D, &BuiltInVariable::kpt_o_30D,
    &BuiltInVariable::kpt_o_30D};
constexpr const TVariable *p30E00D00D[3]    = {&BuiltInVariable::kpt30E, &BuiltInVariable::kpt00D,
                                            &BuiltInVariable::kpt00D};
constexpr const TVariable *p30E00E00E[3]    = {&BuiltInVariable::kpt30E, &BuiltInVariable::kpt00E,
                                            &BuiltInVariable::kpt00E};
constexpr const TVariable *p30E30E00D00D[4] = {&BuiltInVariable::kpt30E, &BuiltInVariable::kpt30E,
                                               &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p30E30E30E[3]    = {&BuiltInVariable::kpt30E, &BuiltInVariable::kpt30E,
                                            &BuiltInVariable::kpt30E};
constexpr const TVariable *p30E30E_o_30E_o_30E[4] = {
    &BuiltInVariable::kpt30E, &BuiltInVariable::kpt30E, &BuiltInVariable::kpt_o_30E,
    &BuiltInVariable::kpt_o_30E};
constexpr const TVariable *p30F30F[2]        = {&BuiltInVariable::kpt30F, &BuiltInVariable::kpt30F};
constexpr const TVariable *p50B50B[2]        = {&BuiltInVariable::kpt50B, &BuiltInVariable::kpt50B};
constexpr const TVariable *p60B60B[2]        = {&BuiltInVariable::kpt60B, &BuiltInVariable::kpt60B};
constexpr const TVariable *p70B70B[2]        = {&BuiltInVariable::kpt70B, &BuiltInVariable::kpt70B};
constexpr const TVariable *p90B90B[2]        = {&BuiltInVariable::kpt90B, &BuiltInVariable::kpt90B};
constexpr const TVariable *pA0BA0B[2]        = {&BuiltInVariable::kptA0B, &BuiltInVariable::kptA0B};
constexpr const TVariable *pB0BB0B[2]        = {&BuiltInVariable::kptB0B, &BuiltInVariable::kptB0B};
constexpr const TVariable *pD0BD0B[2]        = {&BuiltInVariable::kptD0B, &BuiltInVariable::kptD0B};
constexpr const TVariable *pE0BE0B[2]        = {&BuiltInVariable::kptE0B, &BuiltInVariable::kptE0B};
constexpr const TVariable *pF0BF0B[2]        = {&BuiltInVariable::kptF0B, &BuiltInVariable::kptF0B};
constexpr const TVariable *p_io_00D00D00D[3] = {&BuiltInVariable::kpt_io_00D,
                                                &BuiltInVariable::kpt00D, &BuiltInVariable::kpt00D};
constexpr const TVariable *p_io_00E00E00E[3] = {&BuiltInVariable::kpt_io_00E,
                                                &BuiltInVariable::kpt00E, &BuiltInVariable::kpt00E};

}  // namespace BuiltInParameters

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

const TFunction radians_00B(BuiltInId::radians_Float1,
                            BuiltInName::radians,
                            TExtension::UNDEFINED,
                            BuiltInParameters::p00B30B,
                            1,
                            StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                            EOpRadians,
                            true);
const TFunction radians_10B(BuiltInId::radians_Float2,
                            BuiltInName::radians,
                            TExtension::UNDEFINED,
                            BuiltInParameters::p10B20B,
                            1,
                            StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                            EOpRadians,
                            true);
const TFunction radians_20B(BuiltInId::radians_Float3,
                            BuiltInName::radians,
                            TExtension::UNDEFINED,
                            BuiltInParameters::p20B10B,
                            1,
                            StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                            EOpRadians,
                            true);
const TFunction radians_30B(BuiltInId::radians_Float4,
                            BuiltInName::radians,
                            TExtension::UNDEFINED,
                            BuiltInParameters::p30B00B00B,
                            1,
                            StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                            EOpRadians,
                            true);
const TFunction degrees_00B(BuiltInId::degrees_Float1,
                            BuiltInName::degrees,
                            TExtension::UNDEFINED,
                            BuiltInParameters::p00B30B,
                            1,
                            StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                            EOpDegrees,
                            true);
const TFunction degrees_10B(BuiltInId::degrees_Float2,
                            BuiltInName::degrees,
                            TExtension::UNDEFINED,
                            BuiltInParameters::p10B20B,
                            1,
                            StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                            EOpDegrees,
                            true);
const TFunction degrees_20B(BuiltInId::degrees_Float3,
                            BuiltInName::degrees,
                            TExtension::UNDEFINED,
                            BuiltInParameters::p20B10B,
                            1,
                            StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                            EOpDegrees,
                            true);
const TFunction degrees_30B(BuiltInId::degrees_Float4,
                            BuiltInName::degrees,
                            TExtension::UNDEFINED,
                            BuiltInParameters::p30B00B00B,
                            1,
                            StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                            EOpDegrees,
                            true);
const TFunction sin_00B(BuiltInId::sin_Float1,
                        BuiltInName::sin,
                        TExtension::UNDEFINED,
                        BuiltInParameters::p00B30B,
                        1,
                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                        EOpSin,
                        true);
const TFunction sin_10B(BuiltInId::sin_Float2,
                        BuiltInName::sin,
                        TExtension::UNDEFINED,
                        BuiltInParameters::p10B20B,
                        1,
                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                        EOpSin,
                        true);
const TFunction sin_20B(BuiltInId::sin_Float3,
                        BuiltInName::sin,
                        TExtension::UNDEFINED,
                        BuiltInParameters::p20B10B,
                        1,
                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                        EOpSin,
                        true);
const TFunction sin_30B(BuiltInId::sin_Float4,
                        BuiltInName::sin,
                        TExtension::UNDEFINED,
                        BuiltInParameters::p30B00B00B,
                        1,
                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                        EOpSin,
                        true);
const TFunction cos_00B(BuiltInId::cos_Float1,
                        BuiltInName::cos,
                        TExtension::UNDEFINED,
                        BuiltInParameters::p00B30B,
                        1,
                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                        EOpCos,
                        true);
const TFunction cos_10B(BuiltInId::cos_Float2,
                        BuiltInName::cos,
                        TExtension::UNDEFINED,
                        BuiltInParameters::p10B20B,
                        1,
                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                        EOpCos,
                        true);
const TFunction cos_20B(BuiltInId::cos_Float3,
                        BuiltInName::cos,
                        TExtension::UNDEFINED,
                        BuiltInParameters::p20B10B,
                        1,
                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                        EOpCos,
                        true);
const TFunction cos_30B(BuiltInId::cos_Float4,
                        BuiltInName::cos,
                        TExtension::UNDEFINED,
                        BuiltInParameters::p30B00B00B,
                        1,
                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                        EOpCos,
                        true);
const TFunction tan_00B(BuiltInId::tan_Float1,
                        BuiltInName::tan,
                        TExtension::UNDEFINED,
                        BuiltInParameters::p00B30B,
                        1,
                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                        EOpTan,
                        true);
const TFunction tan_10B(BuiltInId::tan_Float2,
                        BuiltInName::tan,
                        TExtension::UNDEFINED,
                        BuiltInParameters::p10B20B,
                        1,
                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                        EOpTan,
                        true);
const TFunction tan_20B(BuiltInId::tan_Float3,
                        BuiltInName::tan,
                        TExtension::UNDEFINED,
                        BuiltInParameters::p20B10B,
                        1,
                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                        EOpTan,
                        true);
const TFunction tan_30B(BuiltInId::tan_Float4,
                        BuiltInName::tan,
                        TExtension::UNDEFINED,
                        BuiltInParameters::p30B00B00B,
                        1,
                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                        EOpTan,
                        true);
const TFunction asin_00B(BuiltInId::asin_Float1,
                         BuiltInName::asin,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p00B30B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                         EOpAsin,
                         true);
const TFunction asin_10B(BuiltInId::asin_Float2,
                         BuiltInName::asin,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p10B20B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                         EOpAsin,
                         true);
const TFunction asin_20B(BuiltInId::asin_Float3,
                         BuiltInName::asin,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p20B10B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                         EOpAsin,
                         true);
const TFunction asin_30B(BuiltInId::asin_Float4,
                         BuiltInName::asin,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p30B00B00B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                         EOpAsin,
                         true);
const TFunction acos_00B(BuiltInId::acos_Float1,
                         BuiltInName::acos,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p00B30B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                         EOpAcos,
                         true);
const TFunction acos_10B(BuiltInId::acos_Float2,
                         BuiltInName::acos,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p10B20B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                         EOpAcos,
                         true);
const TFunction acos_20B(BuiltInId::acos_Float3,
                         BuiltInName::acos,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p20B10B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                         EOpAcos,
                         true);
const TFunction acos_30B(BuiltInId::acos_Float4,
                         BuiltInName::acos,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p30B00B00B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                         EOpAcos,
                         true);
const TFunction atan_00B00B(BuiltInId::atan_Float1_Float1,
                            BuiltInName::atan,
                            TExtension::UNDEFINED,
                            BuiltInParameters::p00B00B00F,
                            2,
                            StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                            EOpAtan,
                            true);
const TFunction atan_10B10B(BuiltInId::atan_Float2_Float2,
                            BuiltInName::atan,
                            TExtension::UNDEFINED,
                            BuiltInParameters::p10B10B10F,
                            2,
                            StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                            EOpAtan,
                            true);
const TFunction atan_20B20B(BuiltInId::atan_Float3_Float3,
                            BuiltInName::atan,
                            TExtension::UNDEFINED,
                            BuiltInParameters::p20B20B20F,
                            2,
                            StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                            EOpAtan,
                            true);
const TFunction atan_30B30B(BuiltInId::atan_Float4_Float4,
                            BuiltInName::atan,
                            TExtension::UNDEFINED,
                            BuiltInParameters::p30B30B30F,
                            2,
                            StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                            EOpAtan,
                            true);
const TFunction atan_00B(BuiltInId::atan_Float1,
                         BuiltInName::atan,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p00B30B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                         EOpAtan,
                         true);
const TFunction atan_10B(BuiltInId::atan_Float2,
                         BuiltInName::atan,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p10B20B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                         EOpAtan,
                         true);
const TFunction atan_20B(BuiltInId::atan_Float3,
                         BuiltInName::atan,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p20B10B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                         EOpAtan,
                         true);
const TFunction atan_30B(BuiltInId::atan_Float4,
                         BuiltInName::atan,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p30B00B00B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                         EOpAtan,
                         true);
const TFunction sinh_00B(BuiltInId::sinh_Float1,
                         BuiltInName::sinh,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p00B30B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                         EOpSinh,
                         true);
const TFunction sinh_10B(BuiltInId::sinh_Float2,
                         BuiltInName::sinh,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p10B20B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                         EOpSinh,
                         true);
const TFunction sinh_20B(BuiltInId::sinh_Float3,
                         BuiltInName::sinh,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p20B10B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                         EOpSinh,
                         true);
const TFunction sinh_30B(BuiltInId::sinh_Float4,
                         BuiltInName::sinh,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p30B00B00B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                         EOpSinh,
                         true);
const TFunction cosh_00B(BuiltInId::cosh_Float1,
                         BuiltInName::cosh,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p00B30B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                         EOpCosh,
                         true);
const TFunction cosh_10B(BuiltInId::cosh_Float2,
                         BuiltInName::cosh,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p10B20B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                         EOpCosh,
                         true);
const TFunction cosh_20B(BuiltInId::cosh_Float3,
                         BuiltInName::cosh,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p20B10B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                         EOpCosh,
                         true);
const TFunction cosh_30B(BuiltInId::cosh_Float4,
                         BuiltInName::cosh,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p30B00B00B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                         EOpCosh,
                         true);
const TFunction tanh_00B(BuiltInId::tanh_Float1,
                         BuiltInName::tanh,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p00B30B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                         EOpTanh,
                         true);
const TFunction tanh_10B(BuiltInId::tanh_Float2,
                         BuiltInName::tanh,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p10B20B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                         EOpTanh,
                         true);
const TFunction tanh_20B(BuiltInId::tanh_Float3,
                         BuiltInName::tanh,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p20B10B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                         EOpTanh,
                         true);
const TFunction tanh_30B(BuiltInId::tanh_Float4,
                         BuiltInName::tanh,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p30B00B00B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                         EOpTanh,
                         true);
const TFunction asinh_00B(BuiltInId::asinh_Float1,
                          BuiltInName::asinh,
                          TExtension::UNDEFINED,
                          BuiltInParameters::p00B30B,
                          1,
                          StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                          EOpAsinh,
                          true);
const TFunction asinh_10B(BuiltInId::asinh_Float2,
                          BuiltInName::asinh,
                          TExtension::UNDEFINED,
                          BuiltInParameters::p10B20B,
                          1,
                          StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                          EOpAsinh,
                          true);
const TFunction asinh_20B(BuiltInId::asinh_Float3,
                          BuiltInName::asinh,
                          TExtension::UNDEFINED,
                          BuiltInParameters::p20B10B,
                          1,
                          StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                          EOpAsinh,
                          true);
const TFunction asinh_30B(BuiltInId::asinh_Float4,
                          BuiltInName::asinh,
                          TExtension::UNDEFINED,
                          BuiltInParameters::p30B00B00B,
                          1,
                          StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                          EOpAsinh,
                          true);
const TFunction acosh_00B(BuiltInId::acosh_Float1,
                          BuiltInName::acosh,
                          TExtension::UNDEFINED,
                          BuiltInParameters::p00B30B,
                          1,
                          StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                          EOpAcosh,
                          true);
const TFunction acosh_10B(BuiltInId::acosh_Float2,
                          BuiltInName::acosh,
                          TExtension::UNDEFINED,
                          BuiltInParameters::p10B20B,
                          1,
                          StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                          EOpAcosh,
                          true);
const TFunction acosh_20B(BuiltInId::acosh_Float3,
                          BuiltInName::acosh,
                          TExtension::UNDEFINED,
                          BuiltInParameters::p20B10B,
                          1,
                          StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                          EOpAcosh,
                          true);
const TFunction acosh_30B(BuiltInId::acosh_Float4,
                          BuiltInName::acosh,
                          TExtension::UNDEFINED,
                          BuiltInParameters::p30B00B00B,
                          1,
                          StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                          EOpAcosh,
                          true);
const TFunction atanh_00B(BuiltInId::atanh_Float1,
                          BuiltInName::atanh,
                          TExtension::UNDEFINED,
                          BuiltInParameters::p00B30B,
                          1,
                          StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                          EOpAtanh,
                          true);
const TFunction atanh_10B(BuiltInId::atanh_Float2,
                          BuiltInName::atanh,
                          TExtension::UNDEFINED,
                          BuiltInParameters::p10B20B,
                          1,
                          StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                          EOpAtanh,
                          true);
const TFunction atanh_20B(BuiltInId::atanh_Float3,
                          BuiltInName::atanh,
                          TExtension::UNDEFINED,
                          BuiltInParameters::p20B10B,
                          1,
                          StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                          EOpAtanh,
                          true);
const TFunction atanh_30B(BuiltInId::atanh_Float4,
                          BuiltInName::atanh,
                          TExtension::UNDEFINED,
                          BuiltInParameters::p30B00B00B,
                          1,
                          StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                          EOpAtanh,
                          true);
const TFunction pow_00B00B(BuiltInId::pow_Float1_Float1,
                           BuiltInName::pow,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p00B00B00F,
                           2,
                           StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                           EOpPow,
                           true);
const TFunction pow_10B10B(BuiltInId::pow_Float2_Float2,
                           BuiltInName::pow,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p10B10B10F,
                           2,
                           StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                           EOpPow,
                           true);
const TFunction pow_20B20B(BuiltInId::pow_Float3_Float3,
                           BuiltInName::pow,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p20B20B20F,
                           2,
                           StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                           EOpPow,
                           true);
const TFunction pow_30B30B(BuiltInId::pow_Float4_Float4,
                           BuiltInName::pow,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p30B30B30F,
                           2,
                           StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                           EOpPow,
                           true);
const TFunction exp_00B(BuiltInId::exp_Float1,
                        BuiltInName::exp,
                        TExtension::UNDEFINED,
                        BuiltInParameters::p00B30B,
                        1,
                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                        EOpExp,
                        true);
const TFunction exp_10B(BuiltInId::exp_Float2,
                        BuiltInName::exp,
                        TExtension::UNDEFINED,
                        BuiltInParameters::p10B20B,
                        1,
                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                        EOpExp,
                        true);
const TFunction exp_20B(BuiltInId::exp_Float3,
                        BuiltInName::exp,
                        TExtension::UNDEFINED,
                        BuiltInParameters::p20B10B,
                        1,
                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                        EOpExp,
                        true);
const TFunction exp_30B(BuiltInId::exp_Float4,
                        BuiltInName::exp,
                        TExtension::UNDEFINED,
                        BuiltInParameters::p30B00B00B,
                        1,
                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                        EOpExp,
                        true);
const TFunction log_00B(BuiltInId::log_Float1,
                        BuiltInName::log,
                        TExtension::UNDEFINED,
                        BuiltInParameters::p00B30B,
                        1,
                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                        EOpLog,
                        true);
const TFunction log_10B(BuiltInId::log_Float2,
                        BuiltInName::log,
                        TExtension::UNDEFINED,
                        BuiltInParameters::p10B20B,
                        1,
                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                        EOpLog,
                        true);
const TFunction log_20B(BuiltInId::log_Float3,
                        BuiltInName::log,
                        TExtension::UNDEFINED,
                        BuiltInParameters::p20B10B,
                        1,
                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                        EOpLog,
                        true);
const TFunction log_30B(BuiltInId::log_Float4,
                        BuiltInName::log,
                        TExtension::UNDEFINED,
                        BuiltInParameters::p30B00B00B,
                        1,
                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                        EOpLog,
                        true);
const TFunction exp2_00B(BuiltInId::exp2_Float1,
                         BuiltInName::exp2,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p00B30B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                         EOpExp2,
                         true);
const TFunction exp2_10B(BuiltInId::exp2_Float2,
                         BuiltInName::exp2,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p10B20B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                         EOpExp2,
                         true);
const TFunction exp2_20B(BuiltInId::exp2_Float3,
                         BuiltInName::exp2,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p20B10B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                         EOpExp2,
                         true);
const TFunction exp2_30B(BuiltInId::exp2_Float4,
                         BuiltInName::exp2,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p30B00B00B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                         EOpExp2,
                         true);
const TFunction log2_00B(BuiltInId::log2_Float1,
                         BuiltInName::log2,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p00B30B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                         EOpLog2,
                         true);
const TFunction log2_10B(BuiltInId::log2_Float2,
                         BuiltInName::log2,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p10B20B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                         EOpLog2,
                         true);
const TFunction log2_20B(BuiltInId::log2_Float3,
                         BuiltInName::log2,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p20B10B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                         EOpLog2,
                         true);
const TFunction log2_30B(BuiltInId::log2_Float4,
                         BuiltInName::log2,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p30B00B00B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                         EOpLog2,
                         true);
const TFunction sqrt_00B(BuiltInId::sqrt_Float1,
                         BuiltInName::sqrt,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p00B30B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                         EOpSqrt,
                         true);
const TFunction sqrt_10B(BuiltInId::sqrt_Float2,
                         BuiltInName::sqrt,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p10B20B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                         EOpSqrt,
                         true);
const TFunction sqrt_20B(BuiltInId::sqrt_Float3,
                         BuiltInName::sqrt,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p20B10B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                         EOpSqrt,
                         true);
const TFunction sqrt_30B(BuiltInId::sqrt_Float4,
                         BuiltInName::sqrt,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p30B00B00B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                         EOpSqrt,
                         true);
const TFunction inversesqrt_00B(BuiltInId::inversesqrt_Float1,
                                BuiltInName::inversesqrt,
                                TExtension::UNDEFINED,
                                BuiltInParameters::p00B30B,
                                1,
                                StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                EOpInversesqrt,
                                true);
const TFunction inversesqrt_10B(BuiltInId::inversesqrt_Float2,
                                BuiltInName::inversesqrt,
                                TExtension::UNDEFINED,
                                BuiltInParameters::p10B20B,
                                1,
                                StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                EOpInversesqrt,
                                true);
const TFunction inversesqrt_20B(BuiltInId::inversesqrt_Float3,
                                BuiltInName::inversesqrt,
                                TExtension::UNDEFINED,
                                BuiltInParameters::p20B10B,
                                1,
                                StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                EOpInversesqrt,
                                true);
const TFunction inversesqrt_30B(BuiltInId::inversesqrt_Float4,
                                BuiltInName::inversesqrt,
                                TExtension::UNDEFINED,
                                BuiltInParameters::p30B00B00B,
                                1,
                                StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                EOpInversesqrt,
                                true);
const TFunction abs_00B(BuiltInId::abs_Float1,
                        BuiltInName::abs,
                        TExtension::UNDEFINED,
                        BuiltInParameters::p00B30B,
                        1,
                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                        EOpAbs,
                        true);
const TFunction abs_10B(BuiltInId::abs_Float2,
                        BuiltInName::abs,
                        TExtension::UNDEFINED,
                        BuiltInParameters::p10B20B,
                        1,
                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                        EOpAbs,
                        true);
const TFunction abs_20B(BuiltInId::abs_Float3,
                        BuiltInName::abs,
                        TExtension::UNDEFINED,
                        BuiltInParameters::p20B10B,
                        1,
                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                        EOpAbs,
                        true);
const TFunction abs_30B(BuiltInId::abs_Float4,
                        BuiltInName::abs,
                        TExtension::UNDEFINED,
                        BuiltInParameters::p30B00B00B,
                        1,
                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                        EOpAbs,
                        true);
const TFunction abs_00D(BuiltInId::abs_Int1,
                        BuiltInName::abs,
                        TExtension::UNDEFINED,
                        BuiltInParameters::p00D00D00D00D,
                        1,
                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                        EOpAbs,
                        true);
const TFunction abs_10D(BuiltInId::abs_Int2,
                        BuiltInName::abs,
                        TExtension::UNDEFINED,
                        BuiltInParameters::p10D00D00D,
                        1,
                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                        EOpAbs,
                        true);
const TFunction abs_20D(BuiltInId::abs_Int3,
                        BuiltInName::abs,
                        TExtension::UNDEFINED,
                        BuiltInParameters::p20D20D00D00D,
                        1,
                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                        EOpAbs,
                        true);
const TFunction abs_30D(BuiltInId::abs_Int4,
                        BuiltInName::abs,
                        TExtension::UNDEFINED,
                        BuiltInParameters::p30D00D00D,
                        1,
                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                        EOpAbs,
                        true);
const TFunction sign_00B(BuiltInId::sign_Float1,
                         BuiltInName::sign,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p00B30B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                         EOpSign,
                         true);
const TFunction sign_10B(BuiltInId::sign_Float2,
                         BuiltInName::sign,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p10B20B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                         EOpSign,
                         true);
const TFunction sign_20B(BuiltInId::sign_Float3,
                         BuiltInName::sign,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p20B10B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                         EOpSign,
                         true);
const TFunction sign_30B(BuiltInId::sign_Float4,
                         BuiltInName::sign,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p30B00B00B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                         EOpSign,
                         true);
const TFunction sign_00D(BuiltInId::sign_Int1,
                         BuiltInName::sign,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p00D00D00D00D,
                         1,
                         StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                         EOpSign,
                         true);
const TFunction sign_10D(BuiltInId::sign_Int2,
                         BuiltInName::sign,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p10D00D00D,
                         1,
                         StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                         EOpSign,
                         true);
const TFunction sign_20D(BuiltInId::sign_Int3,
                         BuiltInName::sign,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p20D20D00D00D,
                         1,
                         StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                         EOpSign,
                         true);
const TFunction sign_30D(BuiltInId::sign_Int4,
                         BuiltInName::sign,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p30D00D00D,
                         1,
                         StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                         EOpSign,
                         true);
const TFunction floor_00B(BuiltInId::floor_Float1,
                          BuiltInName::floor,
                          TExtension::UNDEFINED,
                          BuiltInParameters::p00B30B,
                          1,
                          StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                          EOpFloor,
                          true);
const TFunction floor_10B(BuiltInId::floor_Float2,
                          BuiltInName::floor,
                          TExtension::UNDEFINED,
                          BuiltInParameters::p10B20B,
                          1,
                          StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                          EOpFloor,
                          true);
const TFunction floor_20B(BuiltInId::floor_Float3,
                          BuiltInName::floor,
                          TExtension::UNDEFINED,
                          BuiltInParameters::p20B10B,
                          1,
                          StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                          EOpFloor,
                          true);
const TFunction floor_30B(BuiltInId::floor_Float4,
                          BuiltInName::floor,
                          TExtension::UNDEFINED,
                          BuiltInParameters::p30B00B00B,
                          1,
                          StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                          EOpFloor,
                          true);
const TFunction trunc_00B(BuiltInId::trunc_Float1,
                          BuiltInName::trunc,
                          TExtension::UNDEFINED,
                          BuiltInParameters::p00B30B,
                          1,
                          StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                          EOpTrunc,
                          true);
const TFunction trunc_10B(BuiltInId::trunc_Float2,
                          BuiltInName::trunc,
                          TExtension::UNDEFINED,
                          BuiltInParameters::p10B20B,
                          1,
                          StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                          EOpTrunc,
                          true);
const TFunction trunc_20B(BuiltInId::trunc_Float3,
                          BuiltInName::trunc,
                          TExtension::UNDEFINED,
                          BuiltInParameters::p20B10B,
                          1,
                          StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                          EOpTrunc,
                          true);
const TFunction trunc_30B(BuiltInId::trunc_Float4,
                          BuiltInName::trunc,
                          TExtension::UNDEFINED,
                          BuiltInParameters::p30B00B00B,
                          1,
                          StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                          EOpTrunc,
                          true);
const TFunction round_00B(BuiltInId::round_Float1,
                          BuiltInName::round,
                          TExtension::UNDEFINED,
                          BuiltInParameters::p00B30B,
                          1,
                          StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                          EOpRound,
                          true);
const TFunction round_10B(BuiltInId::round_Float2,
                          BuiltInName::round,
                          TExtension::UNDEFINED,
                          BuiltInParameters::p10B20B,
                          1,
                          StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                          EOpRound,
                          true);
const TFunction round_20B(BuiltInId::round_Float3,
                          BuiltInName::round,
                          TExtension::UNDEFINED,
                          BuiltInParameters::p20B10B,
                          1,
                          StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                          EOpRound,
                          true);
const TFunction round_30B(BuiltInId::round_Float4,
                          BuiltInName::round,
                          TExtension::UNDEFINED,
                          BuiltInParameters::p30B00B00B,
                          1,
                          StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                          EOpRound,
                          true);
const TFunction roundEven_00B(BuiltInId::roundEven_Float1,
                              BuiltInName::roundEven,
                              TExtension::UNDEFINED,
                              BuiltInParameters::p00B30B,
                              1,
                              StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                              EOpRoundEven,
                              true);
const TFunction roundEven_10B(BuiltInId::roundEven_Float2,
                              BuiltInName::roundEven,
                              TExtension::UNDEFINED,
                              BuiltInParameters::p10B20B,
                              1,
                              StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                              EOpRoundEven,
                              true);
const TFunction roundEven_20B(BuiltInId::roundEven_Float3,
                              BuiltInName::roundEven,
                              TExtension::UNDEFINED,
                              BuiltInParameters::p20B10B,
                              1,
                              StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                              EOpRoundEven,
                              true);
const TFunction roundEven_30B(BuiltInId::roundEven_Float4,
                              BuiltInName::roundEven,
                              TExtension::UNDEFINED,
                              BuiltInParameters::p30B00B00B,
                              1,
                              StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                              EOpRoundEven,
                              true);
const TFunction ceil_00B(BuiltInId::ceil_Float1,
                         BuiltInName::ceil,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p00B30B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                         EOpCeil,
                         true);
const TFunction ceil_10B(BuiltInId::ceil_Float2,
                         BuiltInName::ceil,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p10B20B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                         EOpCeil,
                         true);
const TFunction ceil_20B(BuiltInId::ceil_Float3,
                         BuiltInName::ceil,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p20B10B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                         EOpCeil,
                         true);
const TFunction ceil_30B(BuiltInId::ceil_Float4,
                         BuiltInName::ceil,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p30B00B00B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                         EOpCeil,
                         true);
const TFunction fract_00B(BuiltInId::fract_Float1,
                          BuiltInName::fract,
                          TExtension::UNDEFINED,
                          BuiltInParameters::p00B30B,
                          1,
                          StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                          EOpFract,
                          true);
const TFunction fract_10B(BuiltInId::fract_Float2,
                          BuiltInName::fract,
                          TExtension::UNDEFINED,
                          BuiltInParameters::p10B20B,
                          1,
                          StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                          EOpFract,
                          true);
const TFunction fract_20B(BuiltInId::fract_Float3,
                          BuiltInName::fract,
                          TExtension::UNDEFINED,
                          BuiltInParameters::p20B10B,
                          1,
                          StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                          EOpFract,
                          true);
const TFunction fract_30B(BuiltInId::fract_Float4,
                          BuiltInName::fract,
                          TExtension::UNDEFINED,
                          BuiltInParameters::p30B00B00B,
                          1,
                          StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                          EOpFract,
                          true);
const TFunction mod_00B00B(BuiltInId::mod_Float1_Float1,
                           BuiltInName::mod,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p00B00B00F,
                           2,
                           StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                           EOpMod,
                           true);
const TFunction mod_10B00B(BuiltInId::mod_Float2_Float1,
                           BuiltInName::mod,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p10B00B00B,
                           2,
                           StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                           EOpMod,
                           true);
const TFunction mod_20B00B(BuiltInId::mod_Float3_Float1,
                           BuiltInName::mod,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p20B00B00B,
                           2,
                           StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                           EOpMod,
                           true);
const TFunction mod_30B00B(BuiltInId::mod_Float4_Float1,
                           BuiltInName::mod,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p30B00B00B,
                           2,
                           StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                           EOpMod,
                           true);
const TFunction mod_10B10B(BuiltInId::mod_Float2_Float2,
                           BuiltInName::mod,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p10B10B10F,
                           2,
                           StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                           EOpMod,
                           true);
const TFunction mod_20B20B(BuiltInId::mod_Float3_Float3,
                           BuiltInName::mod,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p20B20B20F,
                           2,
                           StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                           EOpMod,
                           true);
const TFunction mod_30B30B(BuiltInId::mod_Float4_Float4,
                           BuiltInName::mod,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p30B30B30F,
                           2,
                           StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                           EOpMod,
                           true);
const TFunction min_00B00B(BuiltInId::min_Float1_Float1,
                           BuiltInName::min,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p00B00B00F,
                           2,
                           StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                           EOpMin,
                           true);
const TFunction min_10B00B(BuiltInId::min_Float2_Float1,
                           BuiltInName::min,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p10B00B00B,
                           2,
                           StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                           EOpMin,
                           true);
const TFunction min_20B00B(BuiltInId::min_Float3_Float1,
                           BuiltInName::min,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p20B00B00B,
                           2,
                           StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                           EOpMin,
                           true);
const TFunction min_30B00B(BuiltInId::min_Float4_Float1,
                           BuiltInName::min,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p30B00B00B,
                           2,
                           StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                           EOpMin,
                           true);
const TFunction min_10B10B(BuiltInId::min_Float2_Float2,
                           BuiltInName::min,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p10B10B10F,
                           2,
                           StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                           EOpMin,
                           true);
const TFunction min_20B20B(BuiltInId::min_Float3_Float3,
                           BuiltInName::min,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p20B20B20F,
                           2,
                           StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                           EOpMin,
                           true);
const TFunction min_30B30B(BuiltInId::min_Float4_Float4,
                           BuiltInName::min,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p30B30B30F,
                           2,
                           StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                           EOpMin,
                           true);
const TFunction min_00D00D(BuiltInId::min_Int1_Int1,
                           BuiltInName::min,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p00D00D00D00D,
                           2,
                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                           EOpMin,
                           true);
const TFunction min_10D10D(BuiltInId::min_Int2_Int2,
                           BuiltInName::min,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p10D10D10D,
                           2,
                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                           EOpMin,
                           true);
const TFunction min_20D20D(BuiltInId::min_Int3_Int3,
                           BuiltInName::min,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p20D20D00D00D,
                           2,
                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                           EOpMin,
                           true);
const TFunction min_30D30D(BuiltInId::min_Int4_Int4,
                           BuiltInName::min,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p30D30D30D,
                           2,
                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                           EOpMin,
                           true);
const TFunction min_10D00D(BuiltInId::min_Int2_Int1,
                           BuiltInName::min,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p10D00D00D,
                           2,
                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                           EOpMin,
                           true);
const TFunction min_20D00D(BuiltInId::min_Int3_Int1,
                           BuiltInName::min,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p20D00D00D,
                           2,
                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                           EOpMin,
                           true);
const TFunction min_30D00D(BuiltInId::min_Int4_Int1,
                           BuiltInName::min,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p30D00D00D,
                           2,
                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                           EOpMin,
                           true);
const TFunction min_00E00E(BuiltInId::min_UInt1_UInt1,
                           BuiltInName::min,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p00E00E00E,
                           2,
                           StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
                           EOpMin,
                           true);
const TFunction min_10E10E(BuiltInId::min_UInt2_UInt2,
                           BuiltInName::min,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p10E10E10E,
                           2,
                           StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
                           EOpMin,
                           true);
const TFunction min_20E20E(BuiltInId::min_UInt3_UInt3,
                           BuiltInName::min,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p20E20E00D00D,
                           2,
                           StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
                           EOpMin,
                           true);
const TFunction min_30E30E(BuiltInId::min_UInt4_UInt4,
                           BuiltInName::min,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p30E30E00D00D,
                           2,
                           StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                           EOpMin,
                           true);
const TFunction min_10E00E(BuiltInId::min_UInt2_UInt1,
                           BuiltInName::min,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p10E00E00E,
                           2,
                           StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
                           EOpMin,
                           true);
const TFunction min_20E00E(BuiltInId::min_UInt3_UInt1,
                           BuiltInName::min,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p20E00E00E,
                           2,
                           StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
                           EOpMin,
                           true);
const TFunction min_30E00E(BuiltInId::min_UInt4_UInt1,
                           BuiltInName::min,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p30E00E00E,
                           2,
                           StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                           EOpMin,
                           true);
const TFunction max_00B00B(BuiltInId::max_Float1_Float1,
                           BuiltInName::max,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p00B00B00F,
                           2,
                           StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                           EOpMax,
                           true);
const TFunction max_10B00B(BuiltInId::max_Float2_Float1,
                           BuiltInName::max,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p10B00B00B,
                           2,
                           StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                           EOpMax,
                           true);
const TFunction max_20B00B(BuiltInId::max_Float3_Float1,
                           BuiltInName::max,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p20B00B00B,
                           2,
                           StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                           EOpMax,
                           true);
const TFunction max_30B00B(BuiltInId::max_Float4_Float1,
                           BuiltInName::max,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p30B00B00B,
                           2,
                           StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                           EOpMax,
                           true);
const TFunction max_10B10B(BuiltInId::max_Float2_Float2,
                           BuiltInName::max,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p10B10B10F,
                           2,
                           StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                           EOpMax,
                           true);
const TFunction max_20B20B(BuiltInId::max_Float3_Float3,
                           BuiltInName::max,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p20B20B20F,
                           2,
                           StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                           EOpMax,
                           true);
const TFunction max_30B30B(BuiltInId::max_Float4_Float4,
                           BuiltInName::max,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p30B30B30F,
                           2,
                           StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                           EOpMax,
                           true);
const TFunction max_00D00D(BuiltInId::max_Int1_Int1,
                           BuiltInName::max,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p00D00D00D00D,
                           2,
                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                           EOpMax,
                           true);
const TFunction max_10D10D(BuiltInId::max_Int2_Int2,
                           BuiltInName::max,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p10D10D10D,
                           2,
                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                           EOpMax,
                           true);
const TFunction max_20D20D(BuiltInId::max_Int3_Int3,
                           BuiltInName::max,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p20D20D00D00D,
                           2,
                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                           EOpMax,
                           true);
const TFunction max_30D30D(BuiltInId::max_Int4_Int4,
                           BuiltInName::max,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p30D30D30D,
                           2,
                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                           EOpMax,
                           true);
const TFunction max_10D00D(BuiltInId::max_Int2_Int1,
                           BuiltInName::max,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p10D00D00D,
                           2,
                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                           EOpMax,
                           true);
const TFunction max_20D00D(BuiltInId::max_Int3_Int1,
                           BuiltInName::max,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p20D00D00D,
                           2,
                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                           EOpMax,
                           true);
const TFunction max_30D00D(BuiltInId::max_Int4_Int1,
                           BuiltInName::max,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p30D00D00D,
                           2,
                           StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                           EOpMax,
                           true);
const TFunction max_00E00E(BuiltInId::max_UInt1_UInt1,
                           BuiltInName::max,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p00E00E00E,
                           2,
                           StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
                           EOpMax,
                           true);
const TFunction max_10E10E(BuiltInId::max_UInt2_UInt2,
                           BuiltInName::max,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p10E10E10E,
                           2,
                           StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
                           EOpMax,
                           true);
const TFunction max_20E20E(BuiltInId::max_UInt3_UInt3,
                           BuiltInName::max,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p20E20E00D00D,
                           2,
                           StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
                           EOpMax,
                           true);
const TFunction max_30E30E(BuiltInId::max_UInt4_UInt4,
                           BuiltInName::max,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p30E30E00D00D,
                           2,
                           StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                           EOpMax,
                           true);
const TFunction max_10E00E(BuiltInId::max_UInt2_UInt1,
                           BuiltInName::max,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p10E00E00E,
                           2,
                           StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
                           EOpMax,
                           true);
const TFunction max_20E00E(BuiltInId::max_UInt3_UInt1,
                           BuiltInName::max,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p20E00E00E,
                           2,
                           StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
                           EOpMax,
                           true);
const TFunction max_30E00E(BuiltInId::max_UInt4_UInt1,
                           BuiltInName::max,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p30E00E00E,
                           2,
                           StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                           EOpMax,
                           true);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
const TFunction step_00B00B(BuiltInId::step_Float1_Float1,
                            BuiltInName::step,
                            TExtension::UNDEFINED,
                            BuiltInParameters::p00B00B00F,
                            2,
                            StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                            EOpStep,
                            true);
const TFunction step_10B10B(BuiltInId::step_Float2_Float2,
                            BuiltInName::step,
                            TExtension::UNDEFINED,
                            BuiltInParameters::p10B10B10F,
                            2,
                            StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                            EOpStep,
                            true);
const TFunction step_20B20B(BuiltInId::step_Float3_Float3,
                            BuiltInName::step,
                            TExtension::UNDEFINED,
                            BuiltInParameters::p20B20B20F,
                            2,
                            StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                            EOpStep,
                            true);
const TFunction step_30B30B(BuiltInId::step_Float4_Float4,
                            BuiltInName::step,
                            TExtension::UNDEFINED,
                            BuiltInParameters::p30B30B30F,
                            2,
                            StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                            EOpStep,
                            true);
const TFunction step_00B10B(BuiltInId::step_Float1_Float2,
                            BuiltInName::step,
                            TExtension::UNDEFINED,
                            BuiltInParameters::p00B10B,
                            2,
                            StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                            EOpStep,
                            true);
const TFunction step_00B20B(BuiltInId::step_Float1_Float3,
                            BuiltInName::step,
                            TExtension::UNDEFINED,
                            BuiltInParameters::p00B20B,
                            2,
                            StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                            EOpStep,
                            true);
const TFunction step_00B30B(BuiltInId::step_Float1_Float4,
                            BuiltInName::step,
                            TExtension::UNDEFINED,
                            BuiltInParameters::p00B30B,
                            2,
                            StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                            EOpStep,
                            true);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
const TFunction isnan_00B(BuiltInId::isnan_Float1,
                          BuiltInName::isnan,
                          TExtension::UNDEFINED,
                          BuiltInParameters::p00B30B,
                          1,
                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
                          EOpIsnan,
                          true);
const TFunction isnan_10B(BuiltInId::isnan_Float2,
                          BuiltInName::isnan,
                          TExtension::UNDEFINED,
                          BuiltInParameters::p10B20B,
                          1,
                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                          EOpIsnan,
                          true);
const TFunction isnan_20B(BuiltInId::isnan_Float3,
                          BuiltInName::isnan,
                          TExtension::UNDEFINED,
                          BuiltInParameters::p20B10B,
                          1,
                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                          EOpIsnan,
                          true);
const TFunction isnan_30B(BuiltInId::isnan_Float4,
                          BuiltInName::isnan,
                          TExtension::UNDEFINED,
                          BuiltInParameters::p30B00B00B,
                          1,
                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                          EOpIsnan,
                          true);
const TFunction isinf_00B(BuiltInId::isinf_Float1,
                          BuiltInName::isinf,
                          TExtension::UNDEFINED,
                          BuiltInParameters::p00B30B,
                          1,
                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
                          EOpIsinf,
                          true);
const TFunction isinf_10B(BuiltInId::isinf_Float2,
                          BuiltInName::isinf,
                          TExtension::UNDEFINED,
                          BuiltInParameters::p10B20B,
                          1,
                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                          EOpIsinf,
                          true);
const TFunction isinf_20B(BuiltInId::isinf_Float3,
                          BuiltInName::isinf,
                          TExtension::UNDEFINED,
                          BuiltInParameters::p20B10B,
                          1,
                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                          EOpIsinf,
                          true);
const TFunction isinf_30B(BuiltInId::isinf_Float4,
                          BuiltInName::isinf,
                          TExtension::UNDEFINED,
                          BuiltInParameters::p30B00B00B,
                          1,
                          StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                          EOpIsinf,
                          true);
const TFunction floatBitsToInt_00B(BuiltInId::floatBitsToInt_Float1,
                                   BuiltInName::floatBitsToInt,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00B30B,
                                   1,
                                   StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpFloatBitsToInt,
                                   true);
const TFunction floatBitsToInt_10B(BuiltInId::floatBitsToInt_Float2,
                                   BuiltInName::floatBitsToInt,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p10B20B,
                                   1,
                                   StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpFloatBitsToInt,
                                   true);
const TFunction floatBitsToInt_20B(BuiltInId::floatBitsToInt_Float3,
                                   BuiltInName::floatBitsToInt,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p20B10B,
                                   1,
                                   StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpFloatBitsToInt,
                                   true);
const TFunction floatBitsToInt_30B(BuiltInId::floatBitsToInt_Float4,
                                   BuiltInName::floatBitsToInt,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p30B00B00B,
                                   1,
                                   StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpFloatBitsToInt,
                                   true);
const TFunction floatBitsToUint_00B(BuiltInId::floatBitsToUint_Float1,
                                    BuiltInName::floatBitsToUint,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p00B30B,
                                    1,
                                    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                    EOpFloatBitsToUint,
                                    true);
const TFunction floatBitsToUint_10B(BuiltInId::floatBitsToUint_Float2,
                                    BuiltInName::floatBitsToUint,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p10B20B,
                                    1,
                                    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                    EOpFloatBitsToUint,
                                    true);
const TFunction floatBitsToUint_20B(BuiltInId::floatBitsToUint_Float3,
                                    BuiltInName::floatBitsToUint,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p20B10B,
                                    1,
                                    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                    EOpFloatBitsToUint,
                                    true);
const TFunction floatBitsToUint_30B(BuiltInId::floatBitsToUint_Float4,
                                    BuiltInName::floatBitsToUint,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p30B00B00B,
                                    1,
                                    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                    EOpFloatBitsToUint,
                                    true);
const TFunction intBitsToFloat_00D(BuiltInId::intBitsToFloat_Int1,
                                   BuiltInName::intBitsToFloat,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00D00D00D00D,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpIntBitsToFloat,
                                   true);
const TFunction intBitsToFloat_10D(BuiltInId::intBitsToFloat_Int2,
                                   BuiltInName::intBitsToFloat,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p10D00D00D,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpIntBitsToFloat,
                                   true);
const TFunction intBitsToFloat_20D(BuiltInId::intBitsToFloat_Int3,
                                   BuiltInName::intBitsToFloat,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p20D20D00D00D,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpIntBitsToFloat,
                                   true);
const TFunction intBitsToFloat_30D(BuiltInId::intBitsToFloat_Int4,
                                   BuiltInName::intBitsToFloat,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p30D00D00D,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpIntBitsToFloat,
                                   true);
const TFunction uintBitsToFloat_00E(BuiltInId::uintBitsToFloat_UInt1,
                                    BuiltInName::uintBitsToFloat,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p00E00E00E,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                    EOpUintBitsToFloat,
                                    true);
const TFunction uintBitsToFloat_10E(BuiltInId::uintBitsToFloat_UInt2,
                                    BuiltInName::uintBitsToFloat,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p10E00D00D,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                    EOpUintBitsToFloat,
                                    true);
const TFunction uintBitsToFloat_20E(BuiltInId::uintBitsToFloat_UInt3,
                                    BuiltInName::uintBitsToFloat,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p20E20E00D00D,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                                    EOpUintBitsToFloat,
                                    true);
const TFunction uintBitsToFloat_30E(BuiltInId::uintBitsToFloat_UInt4,
                                    BuiltInName::uintBitsToFloat,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p30E30E00D00D,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                    EOpUintBitsToFloat,
                                    true);
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);
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);
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);
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);
const TFunction ldexp_00B00D(BuiltInId::ldexp_Float1_Int1,
                             BuiltInName::ldexp,
                             TExtension::UNDEFINED,
                             BuiltInParameters::p00B00D,
                             2,
                             StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                             EOpLdexp,
                             true);
const TFunction ldexp_10B10D(BuiltInId::ldexp_Float2_Int2,
                             BuiltInName::ldexp,
                             TExtension::UNDEFINED,
                             BuiltInParameters::p10B10D,
                             2,
                             StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                             EOpLdexp,
                             true);
const TFunction ldexp_20B20D(BuiltInId::ldexp_Float3_Int3,
                             BuiltInName::ldexp,
                             TExtension::UNDEFINED,
                             BuiltInParameters::p20B20D,
                             2,
                             StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                             EOpLdexp,
                             true);
const TFunction ldexp_30B30D(BuiltInId::ldexp_Float4_Int4,
                             BuiltInName::ldexp,
                             TExtension::UNDEFINED,
                             BuiltInParameters::p30B30D,
                             2,
                             StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                             EOpLdexp,
                             true);
const TFunction packSnorm2x16_10B(BuiltInId::packSnorm2x16_Float2,
                                  BuiltInName::packSnorm2x16,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p10B20B,
                                  1,
                                  StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                  EOpPackSnorm2x16,
                                  true);
const TFunction packHalf2x16_10B(BuiltInId::packHalf2x16_Float2,
                                 BuiltInName::packHalf2x16,
                                 TExtension::UNDEFINED,
                                 BuiltInParameters::p10B20B,
                                 1,
                                 StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                 EOpPackHalf2x16,
                                 true);
const TFunction unpackSnorm2x16_00E(BuiltInId::unpackSnorm2x16_UInt1,
                                    BuiltInName::unpackSnorm2x16,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p00E00E00E,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                    EOpUnpackSnorm2x16,
                                    true);
const TFunction unpackHalf2x16_00E(BuiltInId::unpackHalf2x16_UInt1,
                                   BuiltInName::unpackHalf2x16,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00E00E00E,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpUnpackHalf2x16,
                                   true);
const TFunction packUnorm2x16_10B(BuiltInId::packUnorm2x16_Float2,
                                  BuiltInName::packUnorm2x16,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p10B20B,
                                  1,
                                  StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                  EOpPackUnorm2x16,
                                  true);
const TFunction unpackUnorm2x16_00E(BuiltInId::unpackUnorm2x16_UInt1,
                                    BuiltInName::unpackUnorm2x16,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p00E00E00E,
                                    1,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                                    EOpUnpackUnorm2x16,
                                    true);
const TFunction packUnorm4x8_30B(BuiltInId::packUnorm4x8_Float4,
                                 BuiltInName::packUnorm4x8,
                                 TExtension::UNDEFINED,
                                 BuiltInParameters::p30B00B00B,
                                 1,
                                 StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                 EOpPackUnorm4x8,
                                 true);
const TFunction packSnorm4x8_30B(BuiltInId::packSnorm4x8_Float4,
                                 BuiltInName::packSnorm4x8,
                                 TExtension::UNDEFINED,
                                 BuiltInParameters::p30B00B00B,
                                 1,
                                 StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                 EOpPackSnorm4x8,
                                 true);
const TFunction unpackUnorm4x8_00E(BuiltInId::unpackUnorm4x8_UInt1,
                                   BuiltInName::unpackUnorm4x8,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00E00E00E,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpUnpackUnorm4x8,
                                   true);
const TFunction unpackSnorm4x8_00E(BuiltInId::unpackSnorm4x8_UInt1,
                                   BuiltInName::unpackSnorm4x8,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00E00E00E,
                                   1,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpUnpackSnorm4x8,
                                   true);
const TFunction length_00B(BuiltInId::length_Float1,
                           BuiltInName::length,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p00B30B,
                           1,
                           StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                           EOpLength,
                           true);
const TFunction length_10B(BuiltInId::length_Float2,
                           BuiltInName::length,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p10B20B,
                           1,
                           StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                           EOpLength,
                           true);
const TFunction length_20B(BuiltInId::length_Float3,
                           BuiltInName::length,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p20B10B,
                           1,
                           StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                           EOpLength,
                           true);
const TFunction length_30B(BuiltInId::length_Float4,
                           BuiltInName::length,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p30B00B00B,
                           1,
                           StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                           EOpLength,
                           true);
const TFunction distance_00B00B(BuiltInId::distance_Float1_Float1,
                                BuiltInName::distance,
                                TExtension::UNDEFINED,
                                BuiltInParameters::p00B00B00F,
                                2,
                                StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                EOpDistance,
                                true);
const TFunction distance_10B10B(BuiltInId::distance_Float2_Float2,
                                BuiltInName::distance,
                                TExtension::UNDEFINED,
                                BuiltInParameters::p10B10B10F,
                                2,
                                StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                EOpDistance,
                                true);
const TFunction distance_20B20B(BuiltInId::distance_Float3_Float3,
                                BuiltInName::distance,
                                TExtension::UNDEFINED,
                                BuiltInParameters::p20B20B20F,
                                2,
                                StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                EOpDistance,
                                true);
const TFunction distance_30B30B(BuiltInId::distance_Float4_Float4,
                                BuiltInName::distance,
                                TExtension::UNDEFINED,
                                BuiltInParameters::p30B30B30F,
                                2,
                                StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                EOpDistance,
                                true);
const TFunction dot_00B00B(BuiltInId::dot_Float1_Float1,
                           BuiltInName::dot,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p00B00B00F,
                           2,
                           StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                           EOpDot,
                           true);
const TFunction dot_10B10B(BuiltInId::dot_Float2_Float2,
                           BuiltInName::dot,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p10B10B10F,
                           2,
                           StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                           EOpDot,
                           true);
const TFunction dot_20B20B(BuiltInId::dot_Float3_Float3,
                           BuiltInName::dot,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p20B20B20F,
                           2,
                           StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                           EOpDot,
                           true);
const TFunction dot_30B30B(BuiltInId::dot_Float4_Float4,
                           BuiltInName::dot,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p30B30B30F,
                           2,
                           StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                           EOpDot,
                           true);
const TFunction cross_20B20B(BuiltInId::cross_Float3_Float3,
                             BuiltInName::cross,
                             TExtension::UNDEFINED,
                             BuiltInParameters::p20B20B20F,
                             2,
                             StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                             EOpCross,
                             true);
const TFunction normalize_00B(BuiltInId::normalize_Float1,
                              BuiltInName::normalize,
                              TExtension::UNDEFINED,
                              BuiltInParameters::p00B30B,
                              1,
                              StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                              EOpNormalize,
                              true);
const TFunction normalize_10B(BuiltInId::normalize_Float2,
                              BuiltInName::normalize,
                              TExtension::UNDEFINED,
                              BuiltInParameters::p10B20B,
                              1,
                              StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                              EOpNormalize,
                              true);
const TFunction normalize_20B(BuiltInId::normalize_Float3,
                              BuiltInName::normalize,
                              TExtension::UNDEFINED,
                              BuiltInParameters::p20B10B,
                              1,
                              StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                              EOpNormalize,
                              true);
const TFunction normalize_30B(BuiltInId::normalize_Float4,
                              BuiltInName::normalize,
                              TExtension::UNDEFINED,
                              BuiltInParameters::p30B00B00B,
                              1,
                              StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                              EOpNormalize,
                              true);
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);
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);
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);
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);
const TFunction reflect_00B00B(BuiltInId::reflect_Float1_Float1,
                               BuiltInName::reflect,
                               TExtension::UNDEFINED,
                               BuiltInParameters::p00B00B00F,
                               2,
                               StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                               EOpReflect,
                               true);
const TFunction reflect_10B10B(BuiltInId::reflect_Float2_Float2,
                               BuiltInName::reflect,
                               TExtension::UNDEFINED,
                               BuiltInParameters::p10B10B10F,
                               2,
                               StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                               EOpReflect,
                               true);
const TFunction reflect_20B20B(BuiltInId::reflect_Float3_Float3,
                               BuiltInName::reflect,
                               TExtension::UNDEFINED,
                               BuiltInParameters::p20B20B20F,
                               2,
                               StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                               EOpReflect,
                               true);
const TFunction reflect_30B30B(BuiltInId::reflect_Float4_Float4,
                               BuiltInName::reflect,
                               TExtension::UNDEFINED,
                               BuiltInParameters::p30B30B30F,
                               2,
                               StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                               EOpReflect,
                               true);
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);
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);
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);
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);
const TFunction matrixCompMult_50B50B(BuiltInId::matrixCompMult_Float2x2_Float2x2,
                                      BuiltInName::matrixCompMult,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p50B50B,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 2>(),
                                      EOpMulMatrixComponentWise,
                                      true);
const TFunction matrixCompMult_A0BA0B(BuiltInId::matrixCompMult_Float3x3_Float3x3,
                                      BuiltInName::matrixCompMult,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::pA0BA0B,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 3>(),
                                      EOpMulMatrixComponentWise,
                                      true);
const TFunction matrixCompMult_F0BF0B(BuiltInId::matrixCompMult_Float4x4_Float4x4,
                                      BuiltInName::matrixCompMult,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::pF0BF0B,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 4>(),
                                      EOpMulMatrixComponentWise,
                                      true);
const TFunction matrixCompMult_90B90B(BuiltInId::matrixCompMult_Float2x3_Float2x3,
                                      BuiltInName::matrixCompMult,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p90B90B,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 3>(),
                                      EOpMulMatrixComponentWise,
                                      true);
const TFunction matrixCompMult_60B60B(BuiltInId::matrixCompMult_Float3x2_Float3x2,
                                      BuiltInName::matrixCompMult,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p60B60B,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 2>(),
                                      EOpMulMatrixComponentWise,
                                      true);
const TFunction matrixCompMult_D0BD0B(BuiltInId::matrixCompMult_Float2x4_Float2x4,
                                      BuiltInName::matrixCompMult,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::pD0BD0B,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 4>(),
                                      EOpMulMatrixComponentWise,
                                      true);
const TFunction matrixCompMult_70B70B(BuiltInId::matrixCompMult_Float4x2_Float4x2,
                                      BuiltInName::matrixCompMult,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::p70B70B,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 2>(),
                                      EOpMulMatrixComponentWise,
                                      true);
const TFunction matrixCompMult_E0BE0B(BuiltInId::matrixCompMult_Float3x4_Float3x4,
                                      BuiltInName::matrixCompMult,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::pE0BE0B,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 4>(),
                                      EOpMulMatrixComponentWise,
                                      true);
const TFunction matrixCompMult_B0BB0B(BuiltInId::matrixCompMult_Float4x3_Float4x3,
                                      BuiltInName::matrixCompMult,
                                      TExtension::UNDEFINED,
                                      BuiltInParameters::pB0BB0B,
                                      2,
                                      StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 3>(),
                                      EOpMulMatrixComponentWise,
                                      true);
const TFunction outerProduct_10B10B(BuiltInId::outerProduct_Float2_Float2,
                                    BuiltInName::outerProduct,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p10B10B10F,
                                    2,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 2>(),
                                    EOpOuterProduct,
                                    true);
const TFunction outerProduct_20B20B(BuiltInId::outerProduct_Float3_Float3,
                                    BuiltInName::outerProduct,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p20B20B20F,
                                    2,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 3>(),
                                    EOpOuterProduct,
                                    true);
const TFunction outerProduct_30B30B(BuiltInId::outerProduct_Float4_Float4,
                                    BuiltInName::outerProduct,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p30B30B30F,
                                    2,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 4>(),
                                    EOpOuterProduct,
                                    true);
const TFunction outerProduct_20B10B(BuiltInId::outerProduct_Float3_Float2,
                                    BuiltInName::outerProduct,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p20B10B,
                                    2,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 3>(),
                                    EOpOuterProduct,
                                    true);
const TFunction outerProduct_10B20B(BuiltInId::outerProduct_Float2_Float3,
                                    BuiltInName::outerProduct,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p10B20B,
                                    2,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 2>(),
                                    EOpOuterProduct,
                                    true);
const TFunction outerProduct_30B10B(BuiltInId::outerProduct_Float4_Float2,
                                    BuiltInName::outerProduct,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p30B10B,
                                    2,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 4>(),
                                    EOpOuterProduct,
                                    true);
const TFunction outerProduct_10B30B(BuiltInId::outerProduct_Float2_Float4,
                                    BuiltInName::outerProduct,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p10B30B,
                                    2,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 2>(),
                                    EOpOuterProduct,
                                    true);
const TFunction outerProduct_30B20B(BuiltInId::outerProduct_Float4_Float3,
                                    BuiltInName::outerProduct,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p30B20B,
                                    2,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 4>(),
                                    EOpOuterProduct,
                                    true);
const TFunction outerProduct_20B30B(BuiltInId::outerProduct_Float3_Float4,
                                    BuiltInName::outerProduct,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p20B30B,
                                    2,
                                    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 3>(),
                                    EOpOuterProduct,
                                    true);
const TFunction transpose_50B(BuiltInId::transpose_Float2x2,
                              BuiltInName::transpose,
                              TExtension::UNDEFINED,
                              BuiltInParameters::p50B50B,
                              1,
                              StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 2>(),
                              EOpTranspose,
                              true);
const TFunction transpose_A0B(BuiltInId::transpose_Float3x3,
                              BuiltInName::transpose,
                              TExtension::UNDEFINED,
                              BuiltInParameters::pA0BA0B,
                              1,
                              StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 3>(),
                              EOpTranspose,
                              true);
const TFunction transpose_F0B(BuiltInId::transpose_Float4x4,
                              BuiltInName::transpose,
                              TExtension::UNDEFINED,
                              BuiltInParameters::pF0BF0B,
                              1,
                              StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 4>(),
                              EOpTranspose,
                              true);
const TFunction transpose_60B(BuiltInId::transpose_Float3x2,
                              BuiltInName::transpose,
                              TExtension::UNDEFINED,
                              BuiltInParameters::p60B60B,
                              1,
                              StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 3>(),
                              EOpTranspose,
                              true);
const TFunction transpose_90B(BuiltInId::transpose_Float2x3,
                              BuiltInName::transpose,
                              TExtension::UNDEFINED,
                              BuiltInParameters::p90B90B,
                              1,
                              StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 2>(),
                              EOpTranspose,
                              true);
const TFunction transpose_70B(BuiltInId::transpose_Float4x2,
                              BuiltInName::transpose,
                              TExtension::UNDEFINED,
                              BuiltInParameters::p70B70B,
                              1,
                              StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 4>(),
                              EOpTranspose,
                              true);
const TFunction transpose_D0B(BuiltInId::transpose_Float2x4,
                              BuiltInName::transpose,
                              TExtension::UNDEFINED,
                              BuiltInParameters::pD0BD0B,
                              1,
                              StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 2>(),
                              EOpTranspose,
                              true);
const TFunction transpose_B0B(BuiltInId::transpose_Float4x3,
                              BuiltInName::transpose,
                              TExtension::UNDEFINED,
                              BuiltInParameters::pB0BB0B,
                              1,
                              StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 4>(),
                              EOpTranspose,
                              true);
const TFunction transpose_E0B(BuiltInId::transpose_Float3x4,
                              BuiltInName::transpose,
                              TExtension::UNDEFINED,
                              BuiltInParameters::pE0BE0B,
                              1,
                              StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 3>(),
                              EOpTranspose,
                              true);
const TFunction determinant_50B(BuiltInId::determinant_Float2x2,
                                BuiltInName::determinant,
                                TExtension::UNDEFINED,
                                BuiltInParameters::p50B50B,
                                1,
                                StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                EOpDeterminant,
                                true);
const TFunction determinant_A0B(BuiltInId::determinant_Float3x3,
                                BuiltInName::determinant,
                                TExtension::UNDEFINED,
                                BuiltInParameters::pA0BA0B,
                                1,
                                StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                EOpDeterminant,
                                true);
const TFunction determinant_F0B(BuiltInId::determinant_Float4x4,
                                BuiltInName::determinant,
                                TExtension::UNDEFINED,
                                BuiltInParameters::pF0BF0B,
                                1,
                                StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                EOpDeterminant,
                                true);
const TFunction inverse_50B(BuiltInId::inverse_Float2x2,
                            BuiltInName::inverse,
                            TExtension::UNDEFINED,
                            BuiltInParameters::p50B50B,
                            1,
                            StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 2>(),
                            EOpInverse,
                            true);
const TFunction inverse_A0B(BuiltInId::inverse_Float3x3,
                            BuiltInName::inverse,
                            TExtension::UNDEFINED,
                            BuiltInParameters::pA0BA0B,
                            1,
                            StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 3>(),
                            EOpInverse,
                            true);
const TFunction inverse_F0B(BuiltInId::inverse_Float4x4,
                            BuiltInName::inverse,
                            TExtension::UNDEFINED,
                            BuiltInParameters::pF0BF0B,
                            1,
                            StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 4>(),
                            EOpInverse,
                            true);
const TFunction lessThan_10B10B(BuiltInId::lessThan_Float2_Float2,
                                BuiltInName::lessThan,
                                TExtension::UNDEFINED,
                                BuiltInParameters::p10B10B10F,
                                2,
                                StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                EOpLessThanComponentWise,
                                true);
const TFunction lessThan_20B20B(BuiltInId::lessThan_Float3_Float3,
                                BuiltInName::lessThan,
                                TExtension::UNDEFINED,
                                BuiltInParameters::p20B20B20F,
                                2,
                                StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                EOpLessThanComponentWise,
                                true);
const TFunction lessThan_30B30B(BuiltInId::lessThan_Float4_Float4,
                                BuiltInName::lessThan,
                                TExtension::UNDEFINED,
                                BuiltInParameters::p30B30B30F,
                                2,
                                StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                EOpLessThanComponentWise,
                                true);
const TFunction lessThan_10D10D(BuiltInId::lessThan_Int2_Int2,
                                BuiltInName::lessThan,
                                TExtension::UNDEFINED,
                                BuiltInParameters::p10D10D10D,
                                2,
                                StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                EOpLessThanComponentWise,
                                true);
const TFunction lessThan_20D20D(BuiltInId::lessThan_Int3_Int3,
                                BuiltInName::lessThan,
                                TExtension::UNDEFINED,
                                BuiltInParameters::p20D20D00D00D,
                                2,
                                StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                EOpLessThanComponentWise,
                                true);
const TFunction lessThan_30D30D(BuiltInId::lessThan_Int4_Int4,
                                BuiltInName::lessThan,
                                TExtension::UNDEFINED,
                                BuiltInParameters::p30D30D30D,
                                2,
                                StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                EOpLessThanComponentWise,
                                true);
const TFunction lessThan_10E10E(BuiltInId::lessThan_UInt2_UInt2,
                                BuiltInName::lessThan,
                                TExtension::UNDEFINED,
                                BuiltInParameters::p10E10E10E,
                                2,
                                StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                EOpLessThanComponentWise,
                                true);
const TFunction lessThan_20E20E(BuiltInId::lessThan_UInt3_UInt3,
                                BuiltInName::lessThan,
                                TExtension::UNDEFINED,
                                BuiltInParameters::p20E20E00D00D,
                                2,
                                StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                EOpLessThanComponentWise,
                                true);
const TFunction lessThan_30E30E(BuiltInId::lessThan_UInt4_UInt4,
                                BuiltInName::lessThan,
                                TExtension::UNDEFINED,
                                BuiltInParameters::p30E30E00D00D,
                                2,
                                StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                EOpLessThanComponentWise,
                                true);
const TFunction lessThanEqual_10B10B(BuiltInId::lessThanEqual_Float2_Float2,
                                     BuiltInName::lessThanEqual,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p10B10B10F,
                                     2,
                                     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                     EOpLessThanEqualComponentWise,
                                     true);
const TFunction lessThanEqual_20B20B(BuiltInId::lessThanEqual_Float3_Float3,
                                     BuiltInName::lessThanEqual,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p20B20B20F,
                                     2,
                                     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                     EOpLessThanEqualComponentWise,
                                     true);
const TFunction lessThanEqual_30B30B(BuiltInId::lessThanEqual_Float4_Float4,
                                     BuiltInName::lessThanEqual,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p30B30B30F,
                                     2,
                                     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpLessThanEqualComponentWise,
                                     true);
const TFunction lessThanEqual_10D10D(BuiltInId::lessThanEqual_Int2_Int2,
                                     BuiltInName::lessThanEqual,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p10D10D10D,
                                     2,
                                     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                     EOpLessThanEqualComponentWise,
                                     true);
const TFunction lessThanEqual_20D20D(BuiltInId::lessThanEqual_Int3_Int3,
                                     BuiltInName::lessThanEqual,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p20D20D00D00D,
                                     2,
                                     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                     EOpLessThanEqualComponentWise,
                                     true);
const TFunction lessThanEqual_30D30D(BuiltInId::lessThanEqual_Int4_Int4,
                                     BuiltInName::lessThanEqual,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p30D30D30D,
                                     2,
                                     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpLessThanEqualComponentWise,
                                     true);
const TFunction lessThanEqual_10E10E(BuiltInId::lessThanEqual_UInt2_UInt2,
                                     BuiltInName::lessThanEqual,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p10E10E10E,
                                     2,
                                     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                     EOpLessThanEqualComponentWise,
                                     true);
const TFunction lessThanEqual_20E20E(BuiltInId::lessThanEqual_UInt3_UInt3,
                                     BuiltInName::lessThanEqual,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p20E20E00D00D,
                                     2,
                                     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                     EOpLessThanEqualComponentWise,
                                     true);
const TFunction lessThanEqual_30E30E(BuiltInId::lessThanEqual_UInt4_UInt4,
                                     BuiltInName::lessThanEqual,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p30E30E00D00D,
                                     2,
                                     StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpLessThanEqualComponentWise,
                                     true);
const TFunction greaterThan_10B10B(BuiltInId::greaterThan_Float2_Float2,
                                   BuiltInName::greaterThan,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p10B10B10F,
                                   2,
                                   StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpGreaterThanComponentWise,
                                   true);
const TFunction greaterThan_20B20B(BuiltInId::greaterThan_Float3_Float3,
                                   BuiltInName::greaterThan,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p20B20B20F,
                                   2,
                                   StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpGreaterThanComponentWise,
                                   true);
const TFunction greaterThan_30B30B(BuiltInId::greaterThan_Float4_Float4,
                                   BuiltInName::greaterThan,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p30B30B30F,
                                   2,
                                   StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpGreaterThanComponentWise,
                                   true);
const TFunction greaterThan_10D10D(BuiltInId::greaterThan_Int2_Int2,
                                   BuiltInName::greaterThan,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p10D10D10D,
                                   2,
                                   StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpGreaterThanComponentWise,
                                   true);
const TFunction greaterThan_20D20D(BuiltInId::greaterThan_Int3_Int3,
                                   BuiltInName::greaterThan,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p20D20D00D00D,
                                   2,
                                   StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpGreaterThanComponentWise,
                                   true);
const TFunction greaterThan_30D30D(BuiltInId::greaterThan_Int4_Int4,
                                   BuiltInName::greaterThan,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p30D30D30D,
                                   2,
                                   StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpGreaterThanComponentWise,
                                   true);
const TFunction greaterThan_10E10E(BuiltInId::greaterThan_UInt2_UInt2,
                                   BuiltInName::greaterThan,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p10E10E10E,
                                   2,
                                   StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpGreaterThanComponentWise,
                                   true);
const TFunction greaterThan_20E20E(BuiltInId::greaterThan_UInt3_UInt3,
                                   BuiltInName::greaterThan,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p20E20E00D00D,
                                   2,
                                   StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpGreaterThanComponentWise,
                                   true);
const TFunction greaterThan_30E30E(BuiltInId::greaterThan_UInt4_UInt4,
                                   BuiltInName::greaterThan,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p30E30E00D00D,
                                   2,
                                   StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpGreaterThanComponentWise,
                                   true);
const TFunction greaterThanEqual_10B10B(BuiltInId::greaterThanEqual_Float2_Float2,
                                        BuiltInName::greaterThanEqual,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p10B10B10F,
                                        2,
                                        StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpGreaterThanEqualComponentWise,
                                        true);
const TFunction greaterThanEqual_20B20B(BuiltInId::greaterThanEqual_Float3_Float3,
                                        BuiltInName::greaterThanEqual,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p20B20B20F,
                                        2,
                                        StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpGreaterThanEqualComponentWise,
                                        true);
const TFunction greaterThanEqual_30B30B(BuiltInId::greaterThanEqual_Float4_Float4,
                                        BuiltInName::greaterThanEqual,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p30B30B30F,
                                        2,
                                        StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                        EOpGreaterThanEqualComponentWise,
                                        true);
const TFunction greaterThanEqual_10D10D(BuiltInId::greaterThanEqual_Int2_Int2,
                                        BuiltInName::greaterThanEqual,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p10D10D10D,
                                        2,
                                        StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpGreaterThanEqualComponentWise,
                                        true);
const TFunction greaterThanEqual_20D20D(BuiltInId::greaterThanEqual_Int3_Int3,
                                        BuiltInName::greaterThanEqual,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p20D20D00D00D,
                                        2,
                                        StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpGreaterThanEqualComponentWise,
                                        true);
const TFunction greaterThanEqual_30D30D(BuiltInId::greaterThanEqual_Int4_Int4,
                                        BuiltInName::greaterThanEqual,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p30D30D30D,
                                        2,
                                        StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                        EOpGreaterThanEqualComponentWise,
                                        true);
const TFunction greaterThanEqual_10E10E(BuiltInId::greaterThanEqual_UInt2_UInt2,
                                        BuiltInName::greaterThanEqual,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p10E10E10E,
                                        2,
                                        StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                        EOpGreaterThanEqualComponentWise,
                                        true);
const TFunction greaterThanEqual_20E20E(BuiltInId::greaterThanEqual_UInt3_UInt3,
                                        BuiltInName::greaterThanEqual,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p20E20E00D00D,
                                        2,
                                        StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                        EOpGreaterThanEqualComponentWise,
                                        true);
const TFunction greaterThanEqual_30E30E(BuiltInId::greaterThanEqual_UInt4_UInt4,
                                        BuiltInName::greaterThanEqual,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p30E30E00D00D,
                                        2,
                                        StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                        EOpGreaterThanEqualComponentWise,
                                        true);
const TFunction equal_10B10B(BuiltInId::equal_Float2_Float2,
                             BuiltInName::equal,
                             TExtension::UNDEFINED,
                             BuiltInParameters::p10B10B10F,
                             2,
                             StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                             EOpEqualComponentWise,
                             true);
const TFunction equal_20B20B(BuiltInId::equal_Float3_Float3,
                             BuiltInName::equal,
                             TExtension::UNDEFINED,
                             BuiltInParameters::p20B20B20F,
                             2,
                             StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                             EOpEqualComponentWise,
                             true);
const TFunction equal_30B30B(BuiltInId::equal_Float4_Float4,
                             BuiltInName::equal,
                             TExtension::UNDEFINED,
                             BuiltInParameters::p30B30B30F,
                             2,
                             StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                             EOpEqualComponentWise,
                             true);
const TFunction equal_10D10D(BuiltInId::equal_Int2_Int2,
                             BuiltInName::equal,
                             TExtension::UNDEFINED,
                             BuiltInParameters::p10D10D10D,
                             2,
                             StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                             EOpEqualComponentWise,
                             true);
const TFunction equal_20D20D(BuiltInId::equal_Int3_Int3,
                             BuiltInName::equal,
                             TExtension::UNDEFINED,
                             BuiltInParameters::p20D20D00D00D,
                             2,
                             StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                             EOpEqualComponentWise,
                             true);
const TFunction equal_30D30D(BuiltInId::equal_Int4_Int4,
                             BuiltInName::equal,
                             TExtension::UNDEFINED,
                             BuiltInParameters::p30D30D30D,
                             2,
                             StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                             EOpEqualComponentWise,
                             true);
const TFunction equal_10E10E(BuiltInId::equal_UInt2_UInt2,
                             BuiltInName::equal,
                             TExtension::UNDEFINED,
                             BuiltInParameters::p10E10E10E,
                             2,
                             StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                             EOpEqualComponentWise,
                             true);
const TFunction equal_20E20E(BuiltInId::equal_UInt3_UInt3,
                             BuiltInName::equal,
                             TExtension::UNDEFINED,
                             BuiltInParameters::p20E20E00D00D,
                             2,
                             StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                             EOpEqualComponentWise,
                             true);
const TFunction equal_30E30E(BuiltInId::equal_UInt4_UInt4,
                             BuiltInName::equal,
                             TExtension::UNDEFINED,
                             BuiltInParameters::p30E30E00D00D,
                             2,
                             StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                             EOpEqualComponentWise,
                             true);
const TFunction equal_10F10F(BuiltInId::equal_Bool2_Bool2,
                             BuiltInName::equal,
                             TExtension::UNDEFINED,
                             BuiltInParameters::p10F10F,
                             2,
                             StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                             EOpEqualComponentWise,
                             true);
const TFunction equal_20F20F(BuiltInId::equal_Bool3_Bool3,
                             BuiltInName::equal,
                             TExtension::UNDEFINED,
                             BuiltInParameters::p20F20F,
                             2,
                             StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                             EOpEqualComponentWise,
                             true);
const TFunction equal_30F30F(BuiltInId::equal_Bool4_Bool4,
                             BuiltInName::equal,
                             TExtension::UNDEFINED,
                             BuiltInParameters::p30F30F,
                             2,
                             StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                             EOpEqualComponentWise,
                             true);
const TFunction notEqual_10B10B(BuiltInId::notEqual_Float2_Float2,
                                BuiltInName::notEqual,
                                TExtension::UNDEFINED,
                                BuiltInParameters::p10B10B10F,
                                2,
                                StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                EOpNotEqualComponentWise,
                                true);
const TFunction notEqual_20B20B(BuiltInId::notEqual_Float3_Float3,
                                BuiltInName::notEqual,
                                TExtension::UNDEFINED,
                                BuiltInParameters::p20B20B20F,
                                2,
                                StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                EOpNotEqualComponentWise,
                                true);
const TFunction notEqual_30B30B(BuiltInId::notEqual_Float4_Float4,
                                BuiltInName::notEqual,
                                TExtension::UNDEFINED,
                                BuiltInParameters::p30B30B30F,
                                2,
                                StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                EOpNotEqualComponentWise,
                                true);
const TFunction notEqual_10D10D(BuiltInId::notEqual_Int2_Int2,
                                BuiltInName::notEqual,
                                TExtension::UNDEFINED,
                                BuiltInParameters::p10D10D10D,
                                2,
                                StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                EOpNotEqualComponentWise,
                                true);
const TFunction notEqual_20D20D(BuiltInId::notEqual_Int3_Int3,
                                BuiltInName::notEqual,
                                TExtension::UNDEFINED,
                                BuiltInParameters::p20D20D00D00D,
                                2,
                                StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                EOpNotEqualComponentWise,
                                true);
const TFunction notEqual_30D30D(BuiltInId::notEqual_Int4_Int4,
                                BuiltInName::notEqual,
                                TExtension::UNDEFINED,
                                BuiltInParameters::p30D30D30D,
                                2,
                                StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                EOpNotEqualComponentWise,
                                true);
const TFunction notEqual_10E10E(BuiltInId::notEqual_UInt2_UInt2,
                                BuiltInName::notEqual,
                                TExtension::UNDEFINED,
                                BuiltInParameters::p10E10E10E,
                                2,
                                StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                EOpNotEqualComponentWise,
                                true);
const TFunction notEqual_20E20E(BuiltInId::notEqual_UInt3_UInt3,
                                BuiltInName::notEqual,
                                TExtension::UNDEFINED,
                                BuiltInParameters::p20E20E00D00D,
                                2,
                                StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                EOpNotEqualComponentWise,
                                true);
const TFunction notEqual_30E30E(BuiltInId::notEqual_UInt4_UInt4,
                                BuiltInName::notEqual,
                                TExtension::UNDEFINED,
                                BuiltInParameters::p30E30E00D00D,
                                2,
                                StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                EOpNotEqualComponentWise,
                                true);
const TFunction notEqual_10F10F(BuiltInId::notEqual_Bool2_Bool2,
                                BuiltInName::notEqual,
                                TExtension::UNDEFINED,
                                BuiltInParameters::p10F10F,
                                2,
                                StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                                EOpNotEqualComponentWise,
                                true);
const TFunction notEqual_20F20F(BuiltInId::notEqual_Bool3_Bool3,
                                BuiltInName::notEqual,
                                TExtension::UNDEFINED,
                                BuiltInParameters::p20F20F,
                                2,
                                StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                                EOpNotEqualComponentWise,
                                true);
const TFunction notEqual_30F30F(BuiltInId::notEqual_Bool4_Bool4,
                                BuiltInName::notEqual,
                                TExtension::UNDEFINED,
                                BuiltInParameters::p30F30F,
                                2,
                                StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                                EOpNotEqualComponentWise,
                                true);
const TFunction any_10F(BuiltInId::any_Bool2,
                        BuiltInName::any,
                        TExtension::UNDEFINED,
                        BuiltInParameters::p10F10F,
                        1,
                        StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
                        EOpAny,
                        true);
const TFunction any_20F(BuiltInId::any_Bool3,
                        BuiltInName::any,
                        TExtension::UNDEFINED,
                        BuiltInParameters::p20F20F,
                        1,
                        StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
                        EOpAny,
                        true);
const TFunction any_30F(BuiltInId::any_Bool4,
                        BuiltInName::any,
                        TExtension::UNDEFINED,
                        BuiltInParameters::p30F30F,
                        1,
                        StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
                        EOpAny,
                        true);
const TFunction all_10F(BuiltInId::all_Bool2,
                        BuiltInName::all,
                        TExtension::UNDEFINED,
                        BuiltInParameters::p10F10F,
                        1,
                        StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
                        EOpAll,
                        true);
const TFunction all_20F(BuiltInId::all_Bool3,
                        BuiltInName::all,
                        TExtension::UNDEFINED,
                        BuiltInParameters::p20F20F,
                        1,
                        StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
                        EOpAll,
                        true);
const TFunction all_30F(BuiltInId::all_Bool4,
                        BuiltInName::all,
                        TExtension::UNDEFINED,
                        BuiltInParameters::p30F30F,
                        1,
                        StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 1, 1>(),
                        EOpAll,
                        true);
const TFunction notFunc_10F(BuiltInId::notFunc_Bool2,
                            BuiltInName::notFunc,
                            TExtension::UNDEFINED,
                            BuiltInParameters::p10F10F,
                            1,
                            StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 2, 1>(),
                            EOpLogicalNotComponentWise,
                            true);
const TFunction notFunc_20F(BuiltInId::notFunc_Bool3,
                            BuiltInName::notFunc,
                            TExtension::UNDEFINED,
                            BuiltInParameters::p20F20F,
                            1,
                            StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 3, 1>(),
                            EOpLogicalNotComponentWise,
                            true);
const TFunction notFunc_30F(BuiltInId::notFunc_Bool4,
                            BuiltInName::notFunc,
                            TExtension::UNDEFINED,
                            BuiltInParameters::p30F30F,
                            1,
                            StaticType::Get<EbtBool, EbpUndefined, EvqGlobal, 4, 1>(),
                            EOpLogicalNotComponentWise,
                            true);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
const TFunction bitfieldReverse_00D(BuiltInId::bitfieldReverse_Int1,
                                    BuiltInName::bitfieldReverse,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p00D00D00D00D,
                                    1,
                                    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                    EOpBitfieldReverse,
                                    true);
const TFunction bitfieldReverse_10D(BuiltInId::bitfieldReverse_Int2,
                                    BuiltInName::bitfieldReverse,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p10D00D00D,
                                    1,
                                    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                    EOpBitfieldReverse,
                                    true);
const TFunction bitfieldReverse_20D(BuiltInId::bitfieldReverse_Int3,
                                    BuiltInName::bitfieldReverse,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p20D20D00D00D,
                                    1,
                                    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                    EOpBitfieldReverse,
                                    true);
const TFunction bitfieldReverse_30D(BuiltInId::bitfieldReverse_Int4,
                                    BuiltInName::bitfieldReverse,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p30D00D00D,
                                    1,
                                    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                    EOpBitfieldReverse,
                                    true);
const TFunction bitfieldReverse_00E(BuiltInId::bitfieldReverse_UInt1,
                                    BuiltInName::bitfieldReverse,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p00E00E00E,
                                    1,
                                    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                    EOpBitfieldReverse,
                                    true);
const TFunction bitfieldReverse_10E(BuiltInId::bitfieldReverse_UInt2,
                                    BuiltInName::bitfieldReverse,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p10E00D00D,
                                    1,
                                    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                    EOpBitfieldReverse,
                                    true);
const TFunction bitfieldReverse_20E(BuiltInId::bitfieldReverse_UInt3,
                                    BuiltInName::bitfieldReverse,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p20E20E00D00D,
                                    1,
                                    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                    EOpBitfieldReverse,
                                    true);
const TFunction bitfieldReverse_30E(BuiltInId::bitfieldReverse_UInt4,
                                    BuiltInName::bitfieldReverse,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::p30E30E00D00D,
                                    1,
                                    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                    EOpBitfieldReverse,
                                    true);
const TFunction bitCount_00D(BuiltInId::bitCount_Int1,
                             BuiltInName::bitCount,
                             TExtension::UNDEFINED,
                             BuiltInParameters::p00D00D00D00D,
                             1,
                             StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                             EOpBitCount,
                             true);
const TFunction bitCount_10D(BuiltInId::bitCount_Int2,
                             BuiltInName::bitCount,
                             TExtension::UNDEFINED,
                             BuiltInParameters::p10D00D00D,
                             1,
                             StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                             EOpBitCount,
                             true);
const TFunction bitCount_20D(BuiltInId::bitCount_Int3,
                             BuiltInName::bitCount,
                             TExtension::UNDEFINED,
                             BuiltInParameters::p20D20D00D00D,
                             1,
                             StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                             EOpBitCount,
                             true);
const TFunction bitCount_30D(BuiltInId::bitCount_Int4,
                             BuiltInName::bitCount,
                             TExtension::UNDEFINED,
                             BuiltInParameters::p30D00D00D,
                             1,
                             StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                             EOpBitCount,
                             true);
const TFunction bitCount_00E(BuiltInId::bitCount_UInt1,
                             BuiltInName::bitCount,
                             TExtension::UNDEFINED,
                             BuiltInParameters::p00E00E00E,
                             1,
                             StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                             EOpBitCount,
                             true);
const TFunction bitCount_10E(BuiltInId::bitCount_UInt2,
                             BuiltInName::bitCount,
                             TExtension::UNDEFINED,
                             BuiltInParameters::p10E00D00D,
                             1,
                             StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                             EOpBitCount,
                             true);
const TFunction bitCount_20E(BuiltInId::bitCount_UInt3,
                             BuiltInName::bitCount,
                             TExtension::UNDEFINED,
                             BuiltInParameters::p20E20E00D00D,
                             1,
                             StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                             EOpBitCount,
                             true);
const TFunction bitCount_30E(BuiltInId::bitCount_UInt4,
                             BuiltInName::bitCount,
                             TExtension::UNDEFINED,
                             BuiltInParameters::p30E30E00D00D,
                             1,
                             StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                             EOpBitCount,
                             true);
const TFunction findLSB_00D(BuiltInId::findLSB_Int1,
                            BuiltInName::findLSB,
                            TExtension::UNDEFINED,
                            BuiltInParameters::p00D00D00D00D,
                            1,
                            StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                            EOpFindLSB,
                            true);
const TFunction findLSB_10D(BuiltInId::findLSB_Int2,
                            BuiltInName::findLSB,
                            TExtension::UNDEFINED,
                            BuiltInParameters::p10D00D00D,
                            1,
                            StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                            EOpFindLSB,
                            true);
const TFunction findLSB_20D(BuiltInId::findLSB_Int3,
                            BuiltInName::findLSB,
                            TExtension::UNDEFINED,
                            BuiltInParameters::p20D20D00D00D,
                            1,
                            StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                            EOpFindLSB,
                            true);
const TFunction findLSB_30D(BuiltInId::findLSB_Int4,
                            BuiltInName::findLSB,
                            TExtension::UNDEFINED,
                            BuiltInParameters::p30D00D00D,
                            1,
                            StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                            EOpFindLSB,
                            true);
const TFunction findLSB_00E(BuiltInId::findLSB_UInt1,
                            BuiltInName::findLSB,
                            TExtension::UNDEFINED,
                            BuiltInParameters::p00E00E00E,
                            1,
                            StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                            EOpFindLSB,
                            true);
const TFunction findLSB_10E(BuiltInId::findLSB_UInt2,
                            BuiltInName::findLSB,
                            TExtension::UNDEFINED,
                            BuiltInParameters::p10E00D00D,
                            1,
                            StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                            EOpFindLSB,
                            true);
const TFunction findLSB_20E(BuiltInId::findLSB_UInt3,
                            BuiltInName::findLSB,
                            TExtension::UNDEFINED,
                            BuiltInParameters::p20E20E00D00D,
                            1,
                            StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                            EOpFindLSB,
                            true);
const TFunction findLSB_30E(BuiltInId::findLSB_UInt4,
                            BuiltInName::findLSB,
                            TExtension::UNDEFINED,
                            BuiltInParameters::p30E30E00D00D,
                            1,
                            StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                            EOpFindLSB,
                            true);
const TFunction findMSB_00D(BuiltInId::findMSB_Int1,
                            BuiltInName::findMSB,
                            TExtension::UNDEFINED,
                            BuiltInParameters::p00D00D00D00D,
                            1,
                            StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                            EOpFindMSB,
                            true);
const TFunction findMSB_10D(BuiltInId::findMSB_Int2,
                            BuiltInName::findMSB,
                            TExtension::UNDEFINED,
                            BuiltInParameters::p10D00D00D,
                            1,
                            StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                            EOpFindMSB,
                            true);
const TFunction findMSB_20D(BuiltInId::findMSB_Int3,
                            BuiltInName::findMSB,
                            TExtension::UNDEFINED,
                            BuiltInParameters::p20D20D00D00D,
                            1,
                            StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                            EOpFindMSB,
                            true);
const TFunction findMSB_30D(BuiltInId::findMSB_Int4,
                            BuiltInName::findMSB,
                            TExtension::UNDEFINED,
                            BuiltInParameters::p30D00D00D,
                            1,
                            StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                            EOpFindMSB,
                            true);
const TFunction findMSB_00E(BuiltInId::findMSB_UInt1,
                            BuiltInName::findMSB,
                            TExtension::UNDEFINED,
                            BuiltInParameters::p00E00E00E,
                            1,
                            StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 1, 1>(),
                            EOpFindMSB,
                            true);
const TFunction findMSB_10E(BuiltInId::findMSB_UInt2,
                            BuiltInName::findMSB,
                            TExtension::UNDEFINED,
                            BuiltInParameters::p10E00D00D,
                            1,
                            StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                            EOpFindMSB,
                            true);
const TFunction findMSB_20E(BuiltInId::findMSB_UInt3,
                            BuiltInName::findMSB,
                            TExtension::UNDEFINED,
                            BuiltInParameters::p20E20E00D00D,
                            1,
                            StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                            EOpFindMSB,
                            true);
const TFunction findMSB_30E(BuiltInId::findMSB_UInt4,
                            BuiltInName::findMSB,
                            TExtension::UNDEFINED,
                            BuiltInParameters::p30E30E00D00D,
                            1,
                            StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                            EOpFindMSB,
                            true);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
const TFunction texture2D_00I10B(BuiltInId::texture2D_Sampler2D1_Float2,
                                 BuiltInName::texture2D,
                                 TExtension::UNDEFINED,
                                 BuiltInParameters::p00I10B00D,
                                 2,
                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                 EOpCallBuiltInFunction,
                                 false);
const TFunction texture2DProj_00I20B(BuiltInId::texture2DProj_Sampler2D1_Float3,
                                     BuiltInName::texture2DProj,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p00I20B10B10B10D,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpCallBuiltInFunction,
                                     false);
const TFunction texture2DProj_00I30B(BuiltInId::texture2DProj_Sampler2D1_Float4,
                                     BuiltInName::texture2DProj,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p00I30B10D00B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpCallBuiltInFunction,
                                     false);
const TFunction textureCube_00K20B(BuiltInId::textureCube_SamplerCube1_Float3,
                                   BuiltInName::textureCube,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00K20B20B20B,
                                   2,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpCallBuiltInFunction,
                                   false);
const TFunction texture2D_00M10B(BuiltInId::texture2D_SamplerExternalOES1_Float2,
                                 BuiltInName::texture2D,
                                 TExtension::UNDEFINED,
                                 BuiltInParameters::p00M10B00B,
                                 2,
                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                 EOpCallBuiltInFunction,
                                 false);
const TFunction texture2DProj_00M20B(BuiltInId::texture2DProj_SamplerExternalOES1_Float3,
                                     BuiltInName::texture2DProj,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p00M20B00B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpCallBuiltInFunction,
                                     false);
const TFunction texture2DProj_00M30B(BuiltInId::texture2DProj_SamplerExternalOES1_Float4,
                                     BuiltInName::texture2DProj,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p00M30B00B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpCallBuiltInFunction,
                                     false);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
const TFunction dFdxExt_20B(BuiltInId::dFdxExt_Float3,
                            BuiltInName::dFdxExt,
                            TExtension::OES_standard_derivatives,
                            BuiltInParameters::p20B10B,
                            1,
                            StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                            EOpDFdx,
                            false);
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);
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);
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);
const TFunction dFdyExt_20B(BuiltInId::dFdyExt_Float3,
                            BuiltInName::dFdyExt,
                            TExtension::OES_standard_derivatives,
                            BuiltInParameters::p20B10B,
                            1,
                            StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                            EOpDFdy,
                            false);
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);
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);
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);
const TFunction fwidthExt_20B(BuiltInId::fwidthExt_Float3,
                              BuiltInName::fwidthExt,
                              TExtension::OES_standard_derivatives,
                              BuiltInParameters::p20B10B,
                              1,
                              StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                              EOpFwidth,
                              false);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
const TFunction texture_00I10B(BuiltInId::texture_Sampler2D1_Float2,
                               BuiltInName::texture,
                               TExtension::UNDEFINED,
                               BuiltInParameters::p00I10B00D,
                               2,
                               StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                               EOpCallBuiltInFunction,
                               false);
const TFunction texture_00R10B(BuiltInId::texture_ISampler2D1_Float2,
                               BuiltInName::texture,
                               TExtension::UNDEFINED,
                               BuiltInParameters::p00R10B00B10D,
                               2,
                               StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                               EOpCallBuiltInFunction,
                               false);
const TFunction texture_00X10B(BuiltInId::texture_USampler2D1_Float2,
                               BuiltInName::texture,
                               TExtension::UNDEFINED,
                               BuiltInParameters::p00X10B10B10B10D,
                               2,
                               StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                               EOpCallBuiltInFunction,
                               false);
const TFunction texture_00J20B(BuiltInId::texture_Sampler3D1_Float3,
                               BuiltInName::texture,
                               TExtension::UNDEFINED,
                               BuiltInParameters::p00J20B20D00B,
                               2,
                               StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                               EOpCallBuiltInFunction,
                               false);
const TFunction texture_00S20B(BuiltInId::texture_ISampler3D1_Float3,
                               BuiltInName::texture,
                               TExtension::UNDEFINED,
                               BuiltInParameters::p00S20B20D00B,
                               2,
                               StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                               EOpCallBuiltInFunction,
                               false);
const TFunction texture_00Y20B(BuiltInId::texture_USampler3D1_Float3,
                               BuiltInName::texture,
                               TExtension::UNDEFINED,
                               BuiltInParameters::p00Y20B20B20B20D,
                               2,
                               StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                               EOpCallBuiltInFunction,
                               false);
const TFunction texture_00K20B(BuiltInId::texture_SamplerCube1_Float3,
                               BuiltInName::texture,
                               TExtension::UNDEFINED,
                               BuiltInParameters::p00K20B20B20B,
                               2,
                               StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                               EOpCallBuiltInFunction,
                               false);
const TFunction texture_00T20B(BuiltInId::texture_ISamplerCube1_Float3,
                               BuiltInName::texture,
                               TExtension::UNDEFINED,
                               BuiltInParameters::p00T20B00D,
                               2,
                               StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                               EOpCallBuiltInFunction,
                               false);
const TFunction texture_00Z20B(BuiltInId::texture_USamplerCube1_Float3,
                               BuiltInName::texture,
                               TExtension::UNDEFINED,
                               BuiltInParameters::p00Z20B00D,
                               2,
                               StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                               EOpCallBuiltInFunction,
                               false);
const TFunction texture_00L20B(BuiltInId::texture_Sampler2DArray1_Float3,
                               BuiltInName::texture,
                               TExtension::UNDEFINED,
                               BuiltInParameters::p00L20B10D00D,
                               2,
                               StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                               EOpCallBuiltInFunction,
                               false);
const TFunction texture_00U20B(BuiltInId::texture_ISampler2DArray1_Float3,
                               BuiltInName::texture,
                               TExtension::UNDEFINED,
                               BuiltInParameters::p00U20B10D00D,
                               2,
                               StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                               EOpCallBuiltInFunction,
                               false);
const TFunction texture_00a20B(BuiltInId::texture_USampler2DArray1_Float3,
                               BuiltInName::texture,
                               TExtension::UNDEFINED,
                               BuiltInParameters::p00a20B10B10B10D,
                               2,
                               StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                               EOpCallBuiltInFunction,
                               false);
const TFunction texture_00d20B(BuiltInId::texture_Sampler2DShadow1_Float3,
                               BuiltInName::texture,
                               TExtension::UNDEFINED,
                               BuiltInParameters::p00d20B00B10D,
                               2,
                               StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                               EOpCallBuiltInFunction,
                               false);
const TFunction texture_00e30B(BuiltInId::texture_SamplerCubeShadow1_Float4,
                               BuiltInName::texture,
                               TExtension::UNDEFINED,
                               BuiltInParameters::p00e30B00B,
                               2,
                               StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                               EOpCallBuiltInFunction,
                               false);
const TFunction texture_00f30B(BuiltInId::texture_Sampler2DArrayShadow1_Float4,
                               BuiltInName::texture,
                               TExtension::UNDEFINED,
                               BuiltInParameters::p00f30B10B10B10D,
                               2,
                               StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                               EOpCallBuiltInFunction,
                               false);
const TFunction textureProj_00I20B(BuiltInId::textureProj_Sampler2D1_Float3,
                                   BuiltInName::textureProj,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00I20B10B10B10D,
                                   2,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpCallBuiltInFunction,
                                   false);
const TFunction textureProj_00R20B(BuiltInId::textureProj_ISampler2D1_Float3,
                                   BuiltInName::textureProj,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00R20B00B10D,
                                   2,
                                   StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpCallBuiltInFunction,
                                   false);
const TFunction textureProj_00X20B(BuiltInId::textureProj_USampler2D1_Float3,
                                   BuiltInName::textureProj,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00X20B00B10D,
                                   2,
                                   StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpCallBuiltInFunction,
                                   false);
const TFunction textureProj_00I30B(BuiltInId::textureProj_Sampler2D1_Float4,
                                   BuiltInName::textureProj,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00I30B10D00B,
                                   2,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpCallBuiltInFunction,
                                   false);
const TFunction textureProj_00R30B(BuiltInId::textureProj_ISampler2D1_Float4,
                                   BuiltInName::textureProj,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00R30B10D00B,
                                   2,
                                   StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpCallBuiltInFunction,
                                   false);
const TFunction textureProj_00X30B(BuiltInId::textureProj_USampler2D1_Float4,
                                   BuiltInName::textureProj,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00X30B10D00B,
                                   2,
                                   StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpCallBuiltInFunction,
                                   false);
const TFunction textureProj_00J30B(BuiltInId::textureProj_Sampler3D1_Float4,
                                   BuiltInName::textureProj,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00J30B20B20B20D,
                                   2,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpCallBuiltInFunction,
                                   false);
const TFunction textureProj_00S30B(BuiltInId::textureProj_ISampler3D1_Float4,
                                   BuiltInName::textureProj,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00S30B20D00B,
                                   2,
                                   StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpCallBuiltInFunction,
                                   false);
const TFunction textureProj_00Y30B(BuiltInId::textureProj_USampler3D1_Float4,
                                   BuiltInName::textureProj,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00Y30B20B20B20D,
                                   2,
                                   StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                   EOpCallBuiltInFunction,
                                   false);
const TFunction textureProj_00d30B(BuiltInId::textureProj_Sampler2DShadow1_Float4,
                                   BuiltInName::textureProj,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00d30B00B10D,
                                   2,
                                   StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                                   EOpCallBuiltInFunction,
                                   false);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
const TFunction textureSize_00I00D(BuiltInId::textureSize_Sampler2D1_Int1,
                                   BuiltInName::textureSize,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00I00D,
                                   2,
                                   StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpCallBuiltInFunction,
                                   false);
const TFunction textureSize_00R00D(BuiltInId::textureSize_ISampler2D1_Int1,
                                   BuiltInName::textureSize,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00R00D,
                                   2,
                                   StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpCallBuiltInFunction,
                                   false);
const TFunction textureSize_00X00D(BuiltInId::textureSize_USampler2D1_Int1,
                                   BuiltInName::textureSize,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00X00D,
                                   2,
                                   StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpCallBuiltInFunction,
                                   false);
const TFunction textureSize_00J00D(BuiltInId::textureSize_Sampler3D1_Int1,
                                   BuiltInName::textureSize,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00J00D,
                                   2,
                                   StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpCallBuiltInFunction,
                                   false);
const TFunction textureSize_00S00D(BuiltInId::textureSize_ISampler3D1_Int1,
                                   BuiltInName::textureSize,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00S00D,
                                   2,
                                   StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpCallBuiltInFunction,
                                   false);
const TFunction textureSize_00Y00D(BuiltInId::textureSize_USampler3D1_Int1,
                                   BuiltInName::textureSize,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00Y00D,
                                   2,
                                   StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpCallBuiltInFunction,
                                   false);
const TFunction textureSize_00K00D(BuiltInId::textureSize_SamplerCube1_Int1,
                                   BuiltInName::textureSize,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00K00D,
                                   2,
                                   StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpCallBuiltInFunction,
                                   false);
const TFunction textureSize_00T00D(BuiltInId::textureSize_ISamplerCube1_Int1,
                                   BuiltInName::textureSize,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00T00D,
                                   2,
                                   StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpCallBuiltInFunction,
                                   false);
const TFunction textureSize_00Z00D(BuiltInId::textureSize_USamplerCube1_Int1,
                                   BuiltInName::textureSize,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00Z00D,
                                   2,
                                   StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpCallBuiltInFunction,
                                   false);
const TFunction textureSize_00L00D(BuiltInId::textureSize_Sampler2DArray1_Int1,
                                   BuiltInName::textureSize,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00L00D,
                                   2,
                                   StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpCallBuiltInFunction,
                                   false);
const TFunction textureSize_00U00D(BuiltInId::textureSize_ISampler2DArray1_Int1,
                                   BuiltInName::textureSize,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00U00D,
                                   2,
                                   StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpCallBuiltInFunction,
                                   false);
const TFunction textureSize_00a00D(BuiltInId::textureSize_USampler2DArray1_Int1,
                                   BuiltInName::textureSize,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00a00D,
                                   2,
                                   StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpCallBuiltInFunction,
                                   false);
const TFunction textureSize_00d00D(BuiltInId::textureSize_Sampler2DShadow1_Int1,
                                   BuiltInName::textureSize,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00d00D,
                                   2,
                                   StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpCallBuiltInFunction,
                                   false);
const TFunction textureSize_00e00D(BuiltInId::textureSize_SamplerCubeShadow1_Int1,
                                   BuiltInName::textureSize,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00e00D,
                                   2,
                                   StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                   EOpCallBuiltInFunction,
                                   false);
const TFunction textureSize_00f00D(BuiltInId::textureSize_Sampler2DArrayShadow1_Int1,
                                   BuiltInName::textureSize,
                                   TExtension::UNDEFINED,
                                   BuiltInParameters::p00f00D,
                                   2,
                                   StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                                   EOpCallBuiltInFunction,
                                   false);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
const TFunction textureSize_00P(BuiltInId::textureSize_Sampler2DMS1,
                                BuiltInName::textureSize,
                                TExtension::UNDEFINED,
                                BuiltInParameters::p00P10D00D,
                                1,
                                StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                EOpCallBuiltInFunction,
                                false);
const TFunction textureSize_00V(BuiltInId::textureSize_ISampler2DMS1,
                                BuiltInName::textureSize,
                                TExtension::UNDEFINED,
                                BuiltInParameters::p00V10D00D,
                                1,
                                StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                EOpCallBuiltInFunction,
                                false);
const TFunction textureSize_00b(BuiltInId::textureSize_USampler2DMS1,
                                BuiltInName::textureSize,
                                TExtension::UNDEFINED,
                                BuiltInParameters::p00b10D00D,
                                1,
                                StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                                EOpCallBuiltInFunction,
                                false);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
const TFunction textureOffset_00R10B10D(BuiltInId::textureOffset_ISampler2D1_Float2_Int2,
                                        BuiltInName::textureOffset,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p00R10B10D00B,
                                        3,
                                        StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                        EOpCallBuiltInFunction,
                                        false);
const TFunction textureOffset_00X10B10D(BuiltInId::textureOffset_USampler2D1_Float2_Int2,
                                        BuiltInName::textureOffset,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p00X10B10D00B,
                                        3,
                                        StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                        EOpCallBuiltInFunction,
                                        false);
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);
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);
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);
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);
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);
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);
const TFunction textureOffset_00a20B10D(BuiltInId::textureOffset_USampler2DArray1_Float3_Int2,
                                        BuiltInName::textureOffset,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p00a20B10D00D,
                                        3,
                                        StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                        EOpCallBuiltInFunction,
                                        false);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
const TFunction textureGather_00I10B(BuiltInId::textureGather_Sampler2D1_Float2,
                                     BuiltInName::textureGather,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p00I10B00D,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpCallBuiltInFunction,
                                     false);
const TFunction textureGather_00R10B(BuiltInId::textureGather_ISampler2D1_Float2,
                                     BuiltInName::textureGather,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p00R10B00B10D,
                                     2,
                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpCallBuiltInFunction,
                                     false);
const TFunction textureGather_00X10B(BuiltInId::textureGather_USampler2D1_Float2,
                                     BuiltInName::textureGather,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p00X10B10B10B10D,
                                     2,
                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpCallBuiltInFunction,
                                     false);
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);
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);
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);
const TFunction textureGather_00L20B(BuiltInId::textureGather_Sampler2DArray1_Float3,
                                     BuiltInName::textureGather,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p00L20B10D00D,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpCallBuiltInFunction,
                                     false);
const TFunction textureGather_00U20B(BuiltInId::textureGather_ISampler2DArray1_Float3,
                                     BuiltInName::textureGather,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p00U20B10D00D,
                                     2,
                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpCallBuiltInFunction,
                                     false);
const TFunction textureGather_00a20B(BuiltInId::textureGather_USampler2DArray1_Float3,
                                     BuiltInName::textureGather,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p00a20B10B10B10D,
                                     2,
                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpCallBuiltInFunction,
                                     false);
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);
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);
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);
const TFunction textureGather_00K20B(BuiltInId::textureGather_SamplerCube1_Float3,
                                     BuiltInName::textureGather,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p00K20B20B20B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpCallBuiltInFunction,
                                     false);
const TFunction textureGather_00T20B(BuiltInId::textureGather_ISamplerCube1_Float3,
                                     BuiltInName::textureGather,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p00T20B00D,
                                     2,
                                     StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpCallBuiltInFunction,
                                     false);
const TFunction textureGather_00Z20B(BuiltInId::textureGather_USamplerCube1_Float3,
                                     BuiltInName::textureGather,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p00Z20B00D,
                                     2,
                                     StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpCallBuiltInFunction,
                                     false);
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);
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);
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);
const TFunction textureGather_00d10B(BuiltInId::textureGather_Sampler2DShadow1_Float2,
                                     BuiltInName::textureGather,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p00d10B00B10D,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpCallBuiltInFunction,
                                     false);
const TFunction textureGather_00d10B00B(BuiltInId::textureGather_Sampler2DShadow1_Float2_Float1,
                                        BuiltInName::textureGather,
                                        TExtension::UNDEFINED,
                                        BuiltInParameters::p00d10B00B10D,
                                        3,
                                        StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                        EOpCallBuiltInFunction,
                                        false);
const TFunction textureGather_00f20B(BuiltInId::textureGather_Sampler2DArrayShadow1_Float3,
                                     BuiltInName::textureGather,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p00f20B00B10D,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpCallBuiltInFunction,
                                     false);
const TFunction textureGather_00f20B00B(
    BuiltInId::textureGather_Sampler2DArrayShadow1_Float3_Float1,
    BuiltInName::textureGather,
    TExtension::UNDEFINED,
    BuiltInParameters::p00f20B00B10D,
    3,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
const TFunction textureGather_00e20B(BuiltInId::textureGather_SamplerCubeShadow1_Float3,
                                     BuiltInName::textureGather,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p00e20B00B,
                                     2,
                                     StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                     EOpCallBuiltInFunction,
                                     false);
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);
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);
const TFunction textureGatherOffset_00R10B10D(
    BuiltInId::textureGatherOffset_ISampler2D1_Float2_Int2,
    BuiltInName::textureGatherOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00R10B10D00B,
    3,
    StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
const TFunction textureGatherOffset_00X10B10D(
    BuiltInId::textureGatherOffset_USampler2D1_Float2_Int2,
    BuiltInName::textureGatherOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00X10B10D00B,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
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);
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);
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);
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);
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);
const TFunction textureGatherOffset_00a20B10D(
    BuiltInId::textureGatherOffset_USampler2DArray1_Float3_Int2,
    BuiltInName::textureGatherOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00a20B10D00D,
    3,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
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);
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);
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);
const TFunction textureGatherOffset_00d10B00B10D(
    BuiltInId::textureGatherOffset_Sampler2DShadow1_Float2_Float1_Int2,
    BuiltInName::textureGatherOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00d10B00B10D,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
const TFunction textureGatherOffset_00f20B00B10D(
    BuiltInId::textureGatherOffset_Sampler2DArrayShadow1_Float3_Float1_Int2,
    BuiltInName::textureGatherOffset,
    TExtension::UNDEFINED,
    BuiltInParameters::p00f20B00B10D,
    4,
    StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
    EOpCallBuiltInFunction,
    false);
const TFunction dFdx_00B(BuiltInId::dFdx_Float1,
                         BuiltInName::dFdx,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p00B30B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                         EOpDFdx,
                         false);
const TFunction dFdx_10B(BuiltInId::dFdx_Float2,
                         BuiltInName::dFdx,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p10B20B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                         EOpDFdx,
                         false);
const TFunction dFdx_20B(BuiltInId::dFdx_Float3,
                         BuiltInName::dFdx,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p20B10B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                         EOpDFdx,
                         false);
const TFunction dFdx_30B(BuiltInId::dFdx_Float4,
                         BuiltInName::dFdx,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p30B00B00B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                         EOpDFdx,
                         false);
const TFunction dFdy_00B(BuiltInId::dFdy_Float1,
                         BuiltInName::dFdy,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p00B30B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                         EOpDFdy,
                         false);
const TFunction dFdy_10B(BuiltInId::dFdy_Float2,
                         BuiltInName::dFdy,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p10B20B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                         EOpDFdy,
                         false);
const TFunction dFdy_20B(BuiltInId::dFdy_Float3,
                         BuiltInName::dFdy,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p20B10B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                         EOpDFdy,
                         false);
const TFunction dFdy_30B(BuiltInId::dFdy_Float4,
                         BuiltInName::dFdy,
                         TExtension::UNDEFINED,
                         BuiltInParameters::p30B00B00B,
                         1,
                         StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                         EOpDFdy,
                         false);
const TFunction fwidth_00B(BuiltInId::fwidth_Float1,
                           BuiltInName::fwidth,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p00B30B,
                           1,
                           StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 1, 1>(),
                           EOpFwidth,
                           false);
const TFunction fwidth_10B(BuiltInId::fwidth_Float2,
                           BuiltInName::fwidth,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p10B20B,
                           1,
                           StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 2, 1>(),
                           EOpFwidth,
                           false);
const TFunction fwidth_20B(BuiltInId::fwidth_Float3,
                           BuiltInName::fwidth,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p20B10B,
                           1,
                           StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 3, 1>(),
                           EOpFwidth,
                           false);
const TFunction fwidth_30B(BuiltInId::fwidth_Float4,
                           BuiltInName::fwidth,
                           TExtension::UNDEFINED,
                           BuiltInParameters::p30B00B00B,
                           1,
                           StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                           EOpFwidth,
                           false);
const TFunction atomicCounter_00G(BuiltInId::atomicCounter_AtomicCounter1,
                                  BuiltInName::atomicCounter,
                                  TExtension::UNDEFINED,
                                  BuiltInParameters::p00G,
                                  1,
                                  StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
                                  EOpCallBuiltInFunction,
                                  false);
const TFunction atomicCounterIncrement_00G(
    BuiltInId::atomicCounterIncrement_AtomicCounter1,
    BuiltInName::atomicCounterIncrement,
    TExtension::UNDEFINED,
    BuiltInParameters::p00G,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
const TFunction atomicCounterDecrement_00G(
    BuiltInId::atomicCounterDecrement_AtomicCounter1,
    BuiltInName::atomicCounterDecrement,
    TExtension::UNDEFINED,
    BuiltInParameters::p00G,
    1,
    StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpCallBuiltInFunction,
    false);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
const TFunction imageSize_00y(BuiltInId::imageSize_Image2D1,
                              BuiltInName::imageSize,
                              TExtension::UNDEFINED,
                              BuiltInParameters::p00y10D30B,
                              1,
                              StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                              EOpCallBuiltInFunction,
                              false);
const TFunction imageSize_00z(BuiltInId::imageSize_IImage2D1,
                              BuiltInName::imageSize,
                              TExtension::UNDEFINED,
                              BuiltInParameters::p00z10D30D,
                              1,
                              StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                              EOpCallBuiltInFunction,
                              false);
const TFunction imageSize_01A(BuiltInId::imageSize_UImage2D1,
                              BuiltInName::imageSize,
                              TExtension::UNDEFINED,
                              BuiltInParameters::p01A10D30E,
                              1,
                              StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                              EOpCallBuiltInFunction,
                              false);
const TFunction imageSize_01B(BuiltInId::imageSize_Image3D1,
                              BuiltInName::imageSize,
                              TExtension::UNDEFINED,
                              BuiltInParameters::p01B20D30B,
                              1,
                              StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                              EOpCallBuiltInFunction,
                              false);
const TFunction imageSize_01C(BuiltInId::imageSize_IImage3D1,
                              BuiltInName::imageSize,
                              TExtension::UNDEFINED,
                              BuiltInParameters::p01C20D30D,
                              1,
                              StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                              EOpCallBuiltInFunction,
                              false);
const TFunction imageSize_01D(BuiltInId::imageSize_UImage3D1,
                              BuiltInName::imageSize,
                              TExtension::UNDEFINED,
                              BuiltInParameters::p01D20D30E,
                              1,
                              StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                              EOpCallBuiltInFunction,
                              false);
const TFunction imageSize_01E(BuiltInId::imageSize_Image2DArray1,
                              BuiltInName::imageSize,
                              TExtension::UNDEFINED,
                              BuiltInParameters::p01E20D30B,
                              1,
                              StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                              EOpCallBuiltInFunction,
                              false);
const TFunction imageSize_01F(BuiltInId::imageSize_IImage2DArray1,
                              BuiltInName::imageSize,
                              TExtension::UNDEFINED,
                              BuiltInParameters::p01F20D30D,
                              1,
                              StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                              EOpCallBuiltInFunction,
                              false);
const TFunction imageSize_01G(BuiltInId::imageSize_UImage2DArray1,
                              BuiltInName::imageSize,
                              TExtension::UNDEFINED,
                              BuiltInParameters::p01G20D30E,
                              1,
                              StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 3, 1>(),
                              EOpCallBuiltInFunction,
                              false);
const TFunction imageSize_01H(BuiltInId::imageSize_ImageCube1,
                              BuiltInName::imageSize,
                              TExtension::UNDEFINED,
                              BuiltInParameters::p01H20D30B,
                              1,
                              StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                              EOpCallBuiltInFunction,
                              false);
const TFunction imageSize_01I(BuiltInId::imageSize_IImageCube1,
                              BuiltInName::imageSize,
                              TExtension::UNDEFINED,
                              BuiltInParameters::p01I20D30D,
                              1,
                              StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                              EOpCallBuiltInFunction,
                              false);
const TFunction imageSize_01J(BuiltInId::imageSize_UImageCube1,
                              BuiltInName::imageSize,
                              TExtension::UNDEFINED,
                              BuiltInParameters::p01J20D30E,
                              1,
                              StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 2, 1>(),
                              EOpCallBuiltInFunction,
                              false);
const TFunction imageLoad_00y10D(BuiltInId::imageLoad_Image2D1_Int2,
                                 BuiltInName::imageLoad,
                                 TExtension::UNDEFINED,
                                 BuiltInParameters::p00y10D30B,
                                 2,
                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                 EOpCallBuiltInFunction,
                                 false);
const TFunction imageLoad_00z10D(BuiltInId::imageLoad_IImage2D1_Int2,
                                 BuiltInName::imageLoad,
                                 TExtension::UNDEFINED,
                                 BuiltInParameters::p00z10D30D,
                                 2,
                                 StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                 EOpCallBuiltInFunction,
                                 false);
const TFunction imageLoad_01A10D(BuiltInId::imageLoad_UImage2D1_Int2,
                                 BuiltInName::imageLoad,
                                 TExtension::UNDEFINED,
                                 BuiltInParameters::p01A10D30E,
                                 2,
                                 StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                 EOpCallBuiltInFunction,
                                 false);
const TFunction imageLoad_01B20D(BuiltInId::imageLoad_Image3D1_Int3,
                                 BuiltInName::imageLoad,
                                 TExtension::UNDEFINED,
                                 BuiltInParameters::p01B20D30B,
                                 2,
                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                 EOpCallBuiltInFunction,
                                 false);
const TFunction imageLoad_01C20D(BuiltInId::imageLoad_IImage3D1_Int3,
                                 BuiltInName::imageLoad,
                                 TExtension::UNDEFINED,
                                 BuiltInParameters::p01C20D30D,
                                 2,
                                 StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                 EOpCallBuiltInFunction,
                                 false);
const TFunction imageLoad_01D20D(BuiltInId::imageLoad_UImage3D1_Int3,
                                 BuiltInName::imageLoad,
                                 TExtension::UNDEFINED,
                                 BuiltInParameters::p01D20D30E,
                                 2,
                                 StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                 EOpCallBuiltInFunction,
                                 false);
const TFunction imageLoad_01E20D(BuiltInId::imageLoad_Image2DArray1_Int3,
                                 BuiltInName::imageLoad,
                                 TExtension::UNDEFINED,
                                 BuiltInParameters::p01E20D30B,
                                 2,
                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                 EOpCallBuiltInFunction,
                                 false);
const TFunction imageLoad_01F20D(BuiltInId::imageLoad_IImage2DArray1_Int3,
                                 BuiltInName::imageLoad,
                                 TExtension::UNDEFINED,
                                 BuiltInParameters::p01F20D30D,
                                 2,
                                 StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                 EOpCallBuiltInFunction,
                                 false);
const TFunction imageLoad_01G20D(BuiltInId::imageLoad_UImage2DArray1_Int3,
                                 BuiltInName::imageLoad,
                                 TExtension::UNDEFINED,
                                 BuiltInParameters::p01G20D30E,
                                 2,
                                 StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                 EOpCallBuiltInFunction,
                                 false);
const TFunction imageLoad_01H20D(BuiltInId::imageLoad_ImageCube1_Int3,
                                 BuiltInName::imageLoad,
                                 TExtension::UNDEFINED,
                                 BuiltInParameters::p01H20D30B,
                                 2,
                                 StaticType::Get<EbtFloat, EbpUndefined, EvqGlobal, 4, 1>(),
                                 EOpCallBuiltInFunction,
                                 false);
const TFunction imageLoad_01I20D(BuiltInId::imageLoad_IImageCube1_Int3,
                                 BuiltInName::imageLoad,
                                 TExtension::UNDEFINED,
                                 BuiltInParameters::p01I20D30D,
                                 2,
                                 StaticType::Get<EbtInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                 EOpCallBuiltInFunction,
                                 false);
const TFunction imageLoad_01J20D(BuiltInId::imageLoad_UImageCube1_Int3,
                                 BuiltInName::imageLoad,
                                 TExtension::UNDEFINED,
                                 BuiltInParameters::p01J20D30E,
                                 2,
                                 StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
                                 EOpCallBuiltInFunction,
                                 false);
const TFunction imageStore_00y10D30B(BuiltInId::imageStore_Image2D1_Int2_Float4,
                                     BuiltInName::imageStore,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p00y10D30B,
                                     3,
                                     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpCallBuiltInFunction,
                                     false);
const TFunction imageStore_00z10D30D(BuiltInId::imageStore_IImage2D1_Int2_Int4,
                                     BuiltInName::imageStore,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p00z10D30D,
                                     3,
                                     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpCallBuiltInFunction,
                                     false);
const TFunction imageStore_01A10D30E(BuiltInId::imageStore_UImage2D1_Int2_UInt4,
                                     BuiltInName::imageStore,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p01A10D30E,
                                     3,
                                     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpCallBuiltInFunction,
                                     false);
const TFunction imageStore_01B20D30B(BuiltInId::imageStore_Image3D1_Int3_Float4,
                                     BuiltInName::imageStore,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p01B20D30B,
                                     3,
                                     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpCallBuiltInFunction,
                                     false);
const TFunction imageStore_01C20D30D(BuiltInId::imageStore_IImage3D1_Int3_Int4,
                                     BuiltInName::imageStore,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p01C20D30D,
                                     3,
                                     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpCallBuiltInFunction,
                                     false);
const TFunction imageStore_01D20D30E(BuiltInId::imageStore_UImage3D1_Int3_UInt4,
                                     BuiltInName::imageStore,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p01D20D30E,
                                     3,
                                     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpCallBuiltInFunction,
                                     false);
const TFunction imageStore_01E20D30B(BuiltInId::imageStore_Image2DArray1_Int3_Float4,
                                     BuiltInName::imageStore,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p01E20D30B,
                                     3,
                                     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpCallBuiltInFunction,
                                     false);
const TFunction imageStore_01F20D30D(BuiltInId::imageStore_IImage2DArray1_Int3_Int4,
                                     BuiltInName::imageStore,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p01F20D30D,
                                     3,
                                     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpCallBuiltInFunction,
                                     false);
const TFunction imageStore_01G20D30E(BuiltInId::imageStore_UImage2DArray1_Int3_UInt4,
                                     BuiltInName::imageStore,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p01G20D30E,
                                     3,
                                     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpCallBuiltInFunction,
                                     false);
const TFunction imageStore_01H20D30B(BuiltInId::imageStore_ImageCube1_Int3_Float4,
                                     BuiltInName::imageStore,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p01H20D30B,
                                     3,
                                     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpCallBuiltInFunction,
                                     false);
const TFunction imageStore_01I20D30D(BuiltInId::imageStore_IImageCube1_Int3_Int4,
                                     BuiltInName::imageStore,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p01I20D30D,
                                     3,
                                     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpCallBuiltInFunction,
                                     false);
const TFunction imageStore_01J20D30E(BuiltInId::imageStore_UImageCube1_Int3_UInt4,
                                     BuiltInName::imageStore,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::p01J20D30E,
                                     3,
                                     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpCallBuiltInFunction,
                                     false);
const TFunction memoryBarrier_(BuiltInId::memoryBarrier,
                               BuiltInName::memoryBarrier,
                               TExtension::UNDEFINED,
                               BuiltInParameters::empty,
                               0,
                               StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
                               EOpMemoryBarrier,
                               false);
const TFunction memoryBarrierAtomicCounter_(
    BuiltInId::memoryBarrierAtomicCounter,
    BuiltInName::memoryBarrierAtomicCounter,
    TExtension::UNDEFINED,
    BuiltInParameters::empty,
    0,
    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
    EOpMemoryBarrierAtomicCounter,
    false);
const TFunction memoryBarrierBuffer_(BuiltInId::memoryBarrierBuffer,
                                     BuiltInName::memoryBarrierBuffer,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::empty,
                                     0,
                                     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpMemoryBarrierBuffer,
                                     false);
const TFunction memoryBarrierImage_(BuiltInId::memoryBarrierImage,
                                    BuiltInName::memoryBarrierImage,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::empty,
                                    0,
                                    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
                                    EOpMemoryBarrierImage,
                                    false);
const TFunction barrier_(BuiltInId::barrier,
                         BuiltInName::barrier,
                         TExtension::UNDEFINED,
                         BuiltInParameters::empty,
                         0,
                         StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
                         EOpBarrier,
                         false);
const TFunction memoryBarrierShared_(BuiltInId::memoryBarrierShared,
                                     BuiltInName::memoryBarrierShared,
                                     TExtension::UNDEFINED,
                                     BuiltInParameters::empty,
                                     0,
                                     StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
                                     EOpMemoryBarrierShared,
                                     false);
const TFunction groupMemoryBarrier_(BuiltInId::groupMemoryBarrier,
                                    BuiltInName::groupMemoryBarrier,
                                    TExtension::UNDEFINED,
                                    BuiltInParameters::empty,
                                    0,
                                    StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
                                    EOpGroupMemoryBarrier,
                                    false);
const TFunction EmitVertex_(BuiltInId::EmitVertex,
                            BuiltInName::EmitVertex,
                            TExtension::EXT_geometry_shader,
                            BuiltInParameters::empty,
                            0,
                            StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
                            EOpEmitVertex,
                            false);
const TFunction EndPrimitive_(BuiltInId::EndPrimitive,
                              BuiltInName::EndPrimitive,
                              TExtension::EXT_geometry_shader,
                              BuiltInParameters::empty,
                              0,
                              StaticType::Get<EbtVoid, EbpUndefined, EvqGlobal, 1, 1>(),
                              EOpEndPrimitive,
                              false);

}  // namespace Func

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

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

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

// Flat array of offsets from a symbol into the rules table.
constexpr uint16_t kMangledOffsets[] = {
    0,     // textureProj_00R30B00B
    2,     // texture_00N10B00B
    3,     // clamp_10D00D00D
    5,     // gl_PrimitiveID
    7,     // texture_00R10B00B
    9,     // modf_00B00B
    11,    // gl_MaxAtomicCounterBindings
    13,    // notEqual_20D20D
    15,    // gl_MaxComputeImageUniforms
    17,    // textureLod_00L20B00B
    19,    // angle_BaseVertex
    20,    // determinant_A0B
    21,    // textureProjGrad_00I30B10B10B
    23,    // tanh_30B
    25,    // gl_Layer
    27,    // textureOffset_00d20B10D
    29,    // dFdx_30B
    32,    // clamp_00E00E00E
    34,    // transpose_50B
    36,    // ldexp_00B00D
    38,    // textureGather_00K20B00D
    40,    // lessThanEqual_30B30B
    42,    // greaterThanEqual_20D20D
    44,    // min_20E20E
    46,    // asin_20B
    48,    // outerProduct_20B30B
    50,    // bitfieldInsert_00D00D00D00D
    52,    // textureProjGrad_00Y30B20B20B
    54,    // roundEven_30B
    56,    // acosh_20B
    58,    // atanh_10B
    60,    // mix_20B20B00B
    62,    // clamp_10B10B10B
    64,    // textureGrad_00I10B10B10B
    66,    // textureGatherOffset_00L20B10D00D
    68,    // bitCount_00D
    70,    // step_00B20B
    72,    // lessThan_30E30E
    74,    // uintBitsToFloat_30E
    76,    // imulExtended_30D30D30D30D
    78,    // textureSize_00K00D
    80,    // gl_MaxGeometryOutputVertices
    81,    // transpose_70B
    83,    // textureProjOffset_00S30B20D00B
    85,    // textureProjLod_00X30B00B
    87,    // textureSize_00Y00D
    89,    // gl_MinProgramTexelOffset
    91,    // texture_00d20B
    93,    // textureProj_00J30B00B
    95,    // atan_10B10B
    97,    // max_20B00B
    99,    // clamp_30B30B30B
    101,   // EndPrimitive_
    102,   // textureLod_00Y20B00B
    104,   // textureLodOffset_00a20B00B10D
    106,   // texelFetchOffset_00Y20D00D20D
    108,   // texelFetch_00a20D00D
    110,   // min_20D00D
    112,   // imageLoad_01F20D
    113,   // uintBitsToFloat_00E
    115,   // lessThanEqual_20B20B
    117,   // texelFetch_00N10D00D
    118,   // atomicAdd_00D00D
    120,   // gl_MaxGeometryOutputComponents
    121,   // gl_MaxGeometryTextureImageUnits
    122,   // floatBitsToUint_20B
    124,   // bitfieldInsert_20D20D00D00D
    126,   // gl_MaxVertexTextureImageUnits
    128,   // texture_00Z20B
    130,   // min_10D10D
    132,   // degrees_20B
    134,   // tanh_00B
    136,   // textureProjOffset_00J30B20D00B
    138,   // all_30F
    140,   // abs_20D
    142,   // abs_20B
    144,   // inversesqrt_00B
    146,   // matrixCompMult_D0BD0B
    147,   // lessThanEqual_10B10B
    149,   // bitfieldReverse_20D
    151,   // bitfieldReverse_20E
    153,   // textureProjGrad_00S30B20B20B
    155,   // equal_10D10D
    157,   // max_30D00D
    159,   // groupMemoryBarrier_
    161,   // mix_00B00B00F
    163,   // textureProjGradOffset_00R20B10B10B10D
    165,   // imageLoad_01A10D
    166,   // intBitsToFloat_30D
    168,   // textureProj_00I20B
    170,   // texelFetch_00I10D00D
    172,   // min_30B30B
    174,   // imageStore_01I20D30D
    175,   // gl_MaxVertexAtomicCounterBuffers
    177,   // textureLodOffset_00S20B00B20D
    179,   // textureGatherOffset_00R10B10D
    181,   // acos_00B
    183,   // fract_10B
    185,   // lessThan_20E20E
    187,   // intBitsToFloat_00D
    189,   // textureGradOffset_00J20B20B20B20D
    191,   // memoryBarrierAtomicCounter_
    193,   // texture2DGradEXT_00I10B10B10B
    194,   // bitfieldInsert_00E00E00D00D
    196,   // atomicXor_00D00D
    198,   // greaterThan_20B20B
    200,   // textureLodOffset_00I10B00B10D
    202,   // texelFetch_00Y20D00D
    204,   // texture2DProjGradEXT_00I30B10B10B
    205,   // textureGrad_00d20B10B10B
    207,   // textureProjOffset_00R30B10D
    209,   // textureOffset_00U20B10D
    211,   // atan_10B
    213,   // modf_10B10B
    215,   // min_30B00B
    217,   // determinant_50B
    218,   // lessThan_20B20B
    220,   // atomicAnd_00D00D
    222,   // gl_FragColor
    224,   // exp_10B
    226,   // textureProjOffset_00I20B10D00B
    228,   // step_00B10B
    230,   // bitCount_30D
    232,   // textureProjLod_00I20B00B
    234,   // unpackUnorm2x16_00E
    236,   // rgb_2_yuv_20B00H
    237,   // sqrt_20B
    239,   // sign_20B
    241,   // imageStore_01B20D30B
    242,   // sign_20D
    244,   // atanh_00B
    246,   // textureGradOffset_00X10B10B10B10D
    248,   // gl_DepthRange
    250,   // imulExtended_10D10D10D10D
    252,   // atan_20B
    254,   // texture_00M10B
    255,   // gl_MaxVertexOutputVectors
    257,   // texture_00T20B
    259,   // log2_10B
    261,   // min_10B10B
    263,   // gl_MaxImageUnits
    265,   // pow_10B10B
    267,   // findLSB_20E
    269,   // findLSB_20D
    271,   // texture_00Y20B
    273,   // packUnorm4x8_30B
    275,   // texture_00X10B00B
    277,   // frexp_00B00D
    279,   // texture2D_00I10B
    281,   // not_10F
    283,   // texelFetch_00P10D00D
    286,   // lessThan_10E10E
    288,   // ceil_20B
    290,   // textureLodOffset_00R10B00B10D
    292,   // clamp_10D10D10D
    294,   // texelFetch_00M10D00D
    295,   // texture_00O10B
    296,   // transpose_F0B
    298,   // textureOffset_00Y20B20D00B
    300,   // textureGradOffset_00S20B20B20B20D
    302,   // atomicXor_00E00E
    304,   // textureProjOffset_00R20B10D
    306,   // gl_FragCoord
    308,   // clamp_30E30E30E
    310,   // textureProj_00N30B00B
    311,   // textureSize_00R00D
    313,   // gl_MaxFragmentImageUniforms
    315,   // normalize_00B
    317,   // textureOffset_00I10B10D
    319,   // atomicExchange_00E00E
    321,   // textureProj_00I30B00B
    323,   // acosh_10B
    325,   // gl_MaxCombinedShaderOutputResources
    327,   // atomicOr_00E00E
    329,   // min_20B00B
    331,   // textureProj_00M30B00B
    332,   // atomicMax_00D00D
    334,   // textureProj_00M20B
    335,   // texture_00I10B00B
    337,   // reflect_00B00B
    339,   // mod_20B00B
    341,   // lessThan_20D20D
    343,   // reflect_10B10B
    345,   // floatBitsToUint_10B
    347,   // textureLod_00J20B00B
    349,   // sqrt_10B
    351,   // textureProjLod_00S30B00B
    353,   // clamp_20E20E20E
    355,   // atomicAnd_00E00E
    357,   // max_20D00D
    359,   // textureSize_00I00D
    361,   // gl_MaxComputeAtomicCounterBuffers
    363,   // gl_PrimitiveIDIn
    364,   // texelFetchOffset_00R10D00D10D
    366,   // isinf_30B
    368,   // textureGatherOffset_00a20B10D00D
    370,   // lessThan_30B30B
    372,   // textureGatherOffset_00I10B10D
    374,   // textureOffset_00L20B10D00B
    376,   // textureLodOffset_00X10B00B10D
    378,   // texture_00T20B00B
    380,   // textureOffset_00L20B10D
    382,   // lessThanEqual_30E30E
    384,   // textureOffset_00J20B20D00B
    386,   // min_10E00E
    388,   // log_30B
    390,   // atomicCounter_00G
    392,   // textureProjOffset_00S30B20D
    394,   // imageLoad_01I20D
    395,   // round_00B
    397,   // smoothstep_00B00B20B
    399,   // imageLoad_01H20D
    400,   // textureGather_00K20B
    402,   // bitfieldInsert_30D30D00D00D
    404,   // imageStore_01G20D30E
    405,   // fwidth_10B
    408,   // textureProjLod_00R20B00B
    410,   // notEqual_30D30D
    412,   // refract_10B10B00B
    414,   // textureProjOffset_00I20B10D
    416,   // greaterThan_30D30D
    418,   // greaterThan_10D10D
    420,   // texture_00U20B
    422,   // textureSize_00a00D
    424,   // bitfieldExtract_10E00D00D
    426,   // gl_MaxDrawBuffers
    428,   // textureGatherOffset_00U20B10D00D
    430,   // gl_MaxComputeWorkGroupCount
    432,   // textureProjLod_00J30B00B
    434,   // texture2DRect_00O10B
    435,   // imulExtended_20D20D20D20D
    437,   // any_30F
    439,   // distance_30B30B
    441,   // greaterThan_20D20D
    443,   // textureOffset_00a20B10D
    445,   // greaterThan_30B30B
    447,   // trunc_00B
    449,   // sinh_30B
    451,   // length_10B
    453,   // findMSB_10E
    455,   // findMSB_10D
    457,   // dot_00B00B
    459,   // asinh_20B
    461,   // dot_30B30B
    463,   // bitCount_00E
    465,   // tan_30B
    467,   // textureLod_00T20B00B
    469,   // usubBorrow_20E20E20E
    471,   // imageStore_00z10D30D
    472,   // textureProjGrad_00R30B10B10B
    474,   // exp2_10B
    476,   // textureProj_00O20B
    477,   // textureProjOffset_00X20B10D00B
    479,   // outerProduct_10B20B
    481,   // gl_MaxGeometryAtomicCounterBuffers
    482,   // textureProjGradOffset_00X30B10B10B10D
    484,   // textureOffset_00I10B10D00B
    486,   // clamp_30B00B00B
    488,   // inverse_50B
    490,   // dot_10B10B
    492,   // unpackHalf2x16_00E
    494,   // matrixCompMult_A0BA0B
    496,   // texture2DProjLod_00I20B00B
    498,   // texelFetch_00W20D00D
    499,   // texture2DRectProj_00O30B
    500,   // radians_20B
    502,   // textureGrad_00S20B20B20B
    504,   // max_10D00D
    506,   // imageStore_01J20D30E
    507,   // round_30B
    509,   // gl_MaxComputeTextureImageUnits
    511,   // clamp_00D00D00D
    513,   // sin_30B
    515,   // floor_30B
    517,   // textureProj_00S30B00B
    519,   // textureGrad_00Y20B20B20B
    521,   // gl_MaxCombinedAtomicCounters
    523,   // textureGather_00L20B00D
    525,   // textureProjGradOffset_00S30B20B20B20D
    527,   // imageStore_01A10D30E
    528,   // texture_00J20B
    530,   // gl_PointCoord
    532,   // dFdx_20B
    535,   // textureProj_00X20B
    537,   // max_10E10E
    539,   // max_30B30B
    541,   // clamp_10E10E10E
    543,   // texelFetchOffset_00S20D00D20D
    545,   // texture_00N10B
    546,   // texture_00L20B
    548,   // barrier_
    550,   // gl_MaxGeometryUniformComponents
    551,   // greaterThanEqual_20E20E
    553,   // lessThan_10D10D
    555,   // texelFetchOffset_00a20D00D10D
    557,   // textureProjGradOffset_00X20B10B10B10D
    559,   // texture2DProj_00I20B
    561,   // texture3DProjLod_00J30B00B
    562,   // not_20F
    564,   // Empty
    564,   // findMSB_20D
    566,   // findMSB_20E
    568,   // texelFetchOffset_00I10D00D10D
    570,   // textureGather_00I10B00D
    572,   // texelFetch_00V10D00D
    575,   // outerProduct_20B20B
    577,   // atan_30B30B
    579,   // unpackSnorm4x8_00E
    581,   // bitCount_30E
    583,   // textureProjLodOffset_00R20B00B10D
    585,   // log_20B
    587,   // asin_30B
    589,   // textureGather_00f20B
    590,   // modf_30B30B
    592,   // isnan_20B
    594,   // max_00B00B
    596,   // roundEven_20B
    598,   // fwidth_00B
    601,   // textureProjGrad_00J30B20B20B
    603,   // dFdy_10B
    606,   // outerProduct_30B10B
    608,   // floatBitsToInt_30B
    610,   // textureProj_00J30B
    612,   // gl_InvocationID
    613,   // max_30E00E
    615,   // exp2_20B
    617,   // textureLod_00d20B00B
    619,   // radians_10B
    621,   // texelFetch_00U20D00D
    623,   // gl_MaxComputeWorkGroupSize
    625,   // gl_BaseVertex
    626,   // max_00D00D
    628,   // gl_LastFragData
    630,   // ceil_30B
    632,   // atomicMin_00E00E
    634,   // gl_MaxCombinedTextureImageUnits
    636,   // bitCount_10E
    638,   // texture_00S20B00B
    640,   // textureGather_00e20B00B
    642,   // gl_DepthRangeParameters
    644,   // distance_10B10B
    646,   // reflect_20B20B
    648,   // mod_10B00B
    650,   // uintBitsToFloat_10E
    652,   // textureGrad_00Z20B20B20B
    654,   // equal_10F10F
    656,   // cosh_00B
    658,   // bitfieldReverse_00D
    660,   // bitfieldReverse_00E
    662,   // max_20E20E
    664,   // matrixCompMult_70B70B
    665,   // bitfieldExtract_30E00D00D
    667,   // textureLod_00I10B00B
    669,   // greaterThanEqual_10D10D
    671,   // texture_00e30B00B
    673,   // textureLodOffset_00Y20B00B20D
    675,   // log2_00B
    677,   // gl_LastFragColor
    678,   // abs_10D
    680,   // abs_10B
    682,   // acos_30B
    684,   // tanh_10B
    686,   // degrees_30B
    688,   // gl_FragDepthEXT
    689,   // dFdx_10B
    692,   // textureProjOffset_00I30B10D
    694,   // bitfieldReverse_30E
    696,   // bitfieldReverse_30D
    698,   // inversesqrt_30B
    700,   // gl_LocalInvocationID
    702,   // Empty
    702,   // clamp_00B00B00B
    704,   // textureGather_00d10B
    705,   // frexp_20B20D
    707,   // intBitsToFloat_20D
    709,   // fract_00B
    711,   // gl_FragDepth
    713,   // min_30E00E
    715,   // exp_20B
    717,   // equal_20B20B
    719,   // textureProjLodOffset_00X20B00B10D
    721,   // acosh_00B
    723,   // log_10B
    725,   // textureProjLodOffset_00S30B00B20D
    727,   // sinh_20B
    729,   // textureGather_00L20B
    731,   // reflect_30B30B
    733,   // outerProduct_30B20B
    735,   // texture_00U20B00B
    737,   // texture_00S20B
    739,   // outerProduct_20B10B
    741,   // umulExtended_10E10E10E10E
    743,   // texture_00Z20B00B
    745,   // textureGradOffset_00a20B10B10B10D
    747,   // notEqual_20F20F
    749,   // mod_30B30B
    751,   // bitfieldExtract_10D00D00D
    753,   // sign_30B
    755,   // sign_30D
    757,   // pow_00B00B
    759,   // mod_00B00B
    761,   // texture_00Y20B00B
    763,   // notEqual_30B30B
    765,   // roundEven_10B
    767,   // texture2DProjLodEXT_00I30B00B
    768,   // atanh_30B
    770,   // dFdy_20B
    773,   // textureProj_00Y30B
    775,   // bitCount_20D
    777,   // step_00B00B
    779,   // texelFetch_00L20D00D
    781,   // imageSize_00y
    782,   // isinf_00B
    784,   // imageSize_00z
    785,   // distance_20B20B
    787,   // textureGrad_00U20B10B10B
    789,   // uaddCarry_30E30E30E
    791,   // mod_30B00B
    793,   // texture_00K20B00B
    795,   // gl_MaxCombinedImageUniforms
    797,   // yuv_2_rgb_20B00H
    798,   // textureGather_00f20B00B
    800,   // greaterThan_20E20E
    802,   // textureGrad_00a20B10B10B
    804,   // textureOffset_00U20B10D00B
    806,   // intBitsToFloat_10D
    808,   // texture_00J20B00B
    810,   // refract_20B20B00B
    812,   // textureProjLod_00I30B00B
    814,   // refract_00B00B00B
    816,   // findLSB_10D
    818,   // findLSB_10E
    820,   // mix_10B10B10F
    822,   // mix_10B10B10B
    824,   // textureProj_00Y30B00B
    826,   // texture3D_00J20B
    827,   // transpose_D0B
    829,   // log2_30B
    831,   // textureGrad_00J20B20B20B
    833,   // textureProjGrad_00d30B10B10B
    835,   // fract_30B
    837,   // gl_LocalInvocationIndex
    839,   // textureSize_00J00D
    841,   // textureGatherOffset_00I10B10D00D
    843,   // textureGather_00X10B00D
    845,   // texelFetchOffset_00U20D00D10D
    847,   // textureProjLodOffset_00Y30B00B20D
    849,   // textureSize_00e00D
    851,   // notEqual_20E20E
    853,   // textureLodOffset_00d20B00B10D
    855,   // inverse_A0B
    857,   // imageStore_01E20D30B
    858,   // textureProjGrad_00X20B10B10B
    860,   // max_30E30E
    862,   // isnan_30B
    864,   // imulExtended_00D00D00D00D
    866,   // gl_in
    867,   // atan_20B20B
    869,   // usubBorrow_00E00E00E
    871,   // textureProjLodOffset_00J30B00B20D
    873,   // frexp_30B30D
    875,   // gl_SecondaryFragDataEXT
    876,   // min_30E30E
    878,   // texture2DProj_00I30B00B
    880,   // textureCubeGradEXT_00K20B20B20B
    881,   // texture_00I10B
    883,   // min_00B00B
    885,   // gl_InstanceID
    887,   // texelFetch_00c20D00D
    888,   // gl_MaxVertexImageUniforms
    890,   // sqrt_00B
    892,   // normalize_20B
    894,   // gl_MaxFragmentAtomicCounterBuffers
    896,   // gl_WorkGroupID
    898,   // degrees_00B
    900,   // inverse_F0B
    902,   // min_20E00E
    904,   // textureProjLod_00R30B00B
    906,   // textureSize_00P
    909,   // textureGradOffset_00d20B10B10B10D
    911,   // textureProjLodOffset_00R30B00B10D
    913,   // atan_00B
    915,   // atomicExchange_00D00D
    917,   // textureGatherOffset_00R10B10D00D
    919,   // imageStore_00y10D30B
    920,   // gl_MaxGeometryAtomicCounters
    921,   // texture2D_00I10B00B
    923,   // textureProj_00X20B00B
    925,   // clamp_20D20D20D
    927,   // greaterThan_30E30E
    929,   // frexp_10B10D
    931,   // max_10E00E
    933,   // smoothstep_00B00B10B
    935,   // gl_GlobalInvocationID
    937,   // matrixCompMult_60B60B
    938,   // memoryBarrierShared_
    940,   // normalize_10B
    942,   // unpackSnorm2x16_00E
    944,   // imageLoad_00z10D
    945,   // lessThan_30D30D
    947,   // atan_00B00B
    949,   // bitfieldExtract_20D00D00D
    951,   // texture_00L20B00B
    953,   // notEqual_10B10B
    955,   // imageLoad_01G20D
    956,   // bitfieldExtract_00E00D00D
    958,   // atomicCompSwap_00D00D00D
    960,   // trunc_30B
    962,   // matrixCompMult_E0BE0B
    963,   // length_00B
    965,   // any_20F
    967,   // gl_PerVertex
    968,   // textureProj_00X30B00B
    970,   // gl_HelperInvocation
    972,   // gl_ViewID_OVR
    973,   // floor_10B
    975,   // sin_10B
    977,   // textureSize_00N00D
    978,   // texelFetchOffset_00J20D00D20D
    980,   // tan_00B
    982,   // mod_20B20B
    984,   // imageLoad_01J20D
    985,   // gl_WorkGroupSize
    987,   // asinh_30B
    989,   // outerProduct_10B30B
    991,   // textureCube_00K20B
    993,   // textureSize_00c
    994,   // textureSize_00b
    997,   // cos_00B
    999,   // min_20B20B
    1001,  // textureGradOffset_00f30B10B10B10D
    1003,  // max_20D20D
    1005,  // textureProj_00I30B
    1007,  // max_10D10D
    1009,  // textureOffset_00a20B10D00B
    1011,  // textureGather_00X10B
    1013,  // pow_30B30B
    1015,  // textureGather_00a20B
    1017,  // smoothstep_10B10B10B
    1019,  // textureProj_00O30B
    1020,  // textureGatherOffset_00d10B00B10D
    1022,  // refract_30B30B00B
    1024,  // bitfieldInsert_20E20E00D00D
    1026,  // floor_20B
    1028,  // equal_20E20E
    1030,  // mix_00B00B00B
    1032,  // imageSize_01B
    1033,  // greaterThanEqual_20B20B
    1035,  // uaddCarry_00E00E00E
    1037,  // sin_20B
    1039,  // textureSize_00Q
    1040,  // round_20B
    1042,  // matrixCompMult_90B90B
    1043,  // textureProjLod_00d30B00B
    1045,  // textureSize_00W
    1046,  // textureProjLod_00X20B00B
    1048,  // gl_MaxCombinedAtomicCounterBuffers
    1050,  // isnan_00B
    1052,  // umulExtended_30E30E30E30E
    1054,  // faceforward_30B30B30B
    1056,  // textureGradOffset_00Y20B20B20B20D
    1058,  // clamp_30E00E00E
    1060,  // asin_00B
    1062,  // ceil_00B
    1064,  // texture3D_00J20B00B
    1065,  // distance_00B00B
    1067,  // texture_00a20B
    1069,  // textureGatherOffset_00a20B10D
    1071,  // textureGrad_00f30B10B10B
    1073,  // texture2DProj_00I30B
    1075,  // modf_20B20B
    1077,  // textureGradOffset_00I10B10B10B10D
    1079,  // notEqual_30E30E
    1081,  // textureGather_00I10B
    1083,  // lessThanEqual_10E10E
    1085,  // inversesqrt_20B
    1087,  // textureLodOffset_00J20B00B20D
    1089,  // min_30D30D
    1091,  // textureOffset_00R10B10D00B
    1093,  // textureGrad_00e30B20B20B
    1095,  // atomicAdd_00E00E
    1097,  // gl_MaxGeometryInputComponents
    1098,  // findMSB_30E
    1100,  // findMSB_30D
    1102,  // textureGrad_00X10B10B10B
    1104,  // length_30B
    1106,  // greaterThanEqual_30E30E
    1108,  // fwidth_30B
    1111,  // textureGrad_00K20B20B20B
    1113,  // mix_20B20B20F
    1115,  // texelFetch_00S20D00D
    1117,  // textureGradOffset_00U20B10B10B10D
    1119,  // mix_20B20B20B
    1121,  // floatBitsToInt_10B
    1123,  // max_10B00B
    1125,  // textureGatherOffset_00L20B10D
    1127,  // textureLod_00a20B00B
    1129,  // any_10F
    1131,  // textureProjGradOffset_00d30B10B10B10D
    1133,  // textureProj_00N30B
    1134,  // gl_MaxProgramTexelOffset
    1136,  // exp2_30B
    1138,  // texelFetchOffset_00L20D00D10D
    1140,  // equal_30D30D
    1142,  // texture3DProj_00J30B00B
    1143,  // packSnorm2x16_10B
    1145,  // floatBitsToUint_30B
    1147,  // lessThanEqual_30D30D
    1149,  // gl_MaxGeometryImageUniforms
    1150,  // imageLoad_00y10D
    1151,  // asinh_00B
    1153,  // textureOffset_00R10B10D
    1155,  // greaterThanEqual_10E10E
    1157,  // textureProjGradOffset_00I30B10B10B10D
    1159,  // textureGather_00Z20B
    1161,  // textureOffset_00X10B10D
    1163,  // cosh_30B
    1165,  // textureOffset_00d20B10D00B
    1167,  // texture_00R10B
    1169,  // textureOffset_00S20B20D00B
    1171,  // usubBorrow_30E30E30E
    1173,  // radians_00B
    1175,  // textureProjOffset_00R20B10D00B
    1177,  // ldexp_30B30D
    1179,  // max_30B00B
    1181,  // min_20D20D
    1183,  // step_10B10B
    1185,  // gl_MaxDualSourceDrawBuffersEXT
    1186,  // step_30B30B
    1188,  // bitfieldReverse_10E
    1190,  // bitfieldReverse_10D
    1192,  // texture3DProj_00J30B
    1193,  // matrixCompMult_B0BB0B
    1194,  // transpose_E0B
    1196,  // cross_20B20B
    1198,  // all_10F
    1200,  // clamp_20B00B00B
    1202,  // tanh_20B
    1204,  // dFdx_00B
    1207,  // matrixCompMult_F0BF0B
    1209,  // abs_00D
    1211,  // abs_00B
    1213,  // textureLod_00R10B00B
    1215,  // step_20B20B
    1217,  // gl_MaxFragmentAtomicCounters
    1219,  // textureLodOffset_00U20B00B10D
    1221,  // textureProj_00R20B00B
    1223,  // faceforward_20B20B20B
    1225,  // imageSize_01E
    1226,  // acos_20B
    1228,  // texelFetch_00X10D00D
    1230,  // sinh_00B
    1232,  // imageSize_01A
    1233,  // texture2DLod_00I10B00B
    1235,  // texelFetch_00b10D00D
    1238,  // imageSize_01F
    1239,  // gl_MaxAtomicCounterBufferSize
    1241,  // max_20B20B
    1243,  // textureGatherOffset_00f20B00B10D
    1245,  // outerProduct_30B30B
    1247,  // lessThanEqual_20E20E
    1249,  // textureLod_00X10B00B
    1251,  // exp_30B
    1253,  // memoryBarrier_
    1255,  // imageSize_01D
    1256,  // step_00B30B
    1258,  // bitCount_10D
    1260,  // equal_30E30E
    1262,  // sign_00B
    1264,  // log_00B
    1266,  // textureLod_00Z20B00B
    1268,  // sign_00D
    1270,  // textureOffset_00Y20B20D
    1272,  // transpose_60B
    1274,  // findMSB_00D
    1276,  // gl_MaxGeometryTotalOutputComponents
    1277,  // acosh_30B
    1279,  // findMSB_00E
    1281,  // bitfieldExtract_20E00D00D
    1283,  // uintBitsToFloat_20E
    1285,  // unpackUnorm4x8_00E
    1287,  // texture2DProj_00M20B
    1288,  // texelFetchOffset_00X10D00D10D
    1290,  // mod_10B10B
    1292,  // texture_00d20B00B
    1294,  // notEqual_10D10D
    1296,  // texture2DProj_00M30B
    1297,  // textureSize_00V
    1300,  // packUnorm2x16_10B
    1302,  // faceforward_00B00B00B
    1304,  // umulExtended_20E20E20E20E
    1306,  // textureOffset_00X10B10D00B
    1308,  // cos_30B
    1310,  // findLSB_30D
    1312,  // findLSB_30E
    1314,  // bitCount_20E
    1316,  // gl_NumWorkGroups
    1318,  // equal_20D20D
    1320,  // textureProjOffset_00Y30B20D00B
    1322,  // textureGatherOffset_00U20B10D
    1324,  // faceforward_10B10B10B
    1326,  // textureSize_00L00D
    1328,  // gl_MaxComputeUniformComponents
    1330,  // textureGather_00R10B00D
    1332,  // memoryBarrierBuffer_
    1334,  // textureSize_00Z00D
    1336,  // textureGather_00U20B
    1338,  // bitfieldExtract_30D00D00D
    1340,  // min_10D00D
    1342,  // imageStore_01H20D30B
    1343,  // texelFetch_00Q20D00D
    1344,  // max_20E00E
    1346,  // textureProj_00S30B
    1348,  // roundEven_00B
    1350,  // texture2DLodEXT_00I10B00B
    1351,  // dFdy_30B
    1354,  // atanh_20B
    1356,  // clamp_10E00E00E
    1358,  // clamp_20D00D00D
    1360,  // all_20F
    1362,  // isinf_10B
    1364,  // imageLoad_01C20D
    1365,  // imageSize_01J
    1366,  // imageSize_01H
    1367,  // imageSize_01I
    1368,  // packHalf2x16_10B
    1370,  // texture2DProj_00I20B00B
    1372,  // findLSB_00E
    1374,  // findLSB_00D
    1376,  // textureProjOffset_00X30B10D
    1378,  // imageSize_01C
    1379,  // greaterThanEqual_30B30B
    1381,  // textureSize_00U00D
    1383,  // textureGradOffset_00R10B10B10B10D
    1385,  // imageSize_01G
    1386,  // equal_30F30F
    1388,  // bitfieldExtract_00D00D00D
    1390,  // texture2DProjLodEXT_00I20B00B
    1391,  // notEqual_30F30F
    1393,  // gl_FrontFacing
    1395,  // gl_SecondaryFragColorEXT
    1396,  // inversesqrt_10B
    1398,  // imageStore_01C20D30D
    1399,  // acos_10B
    1401,  // abs_30D
    1403,  // gl_MaxFragmentUniformVectors
    1405,  // fract_20B
    1407,  // abs_30B
    1409,  // lessThan_10B10B
    1411,  // textureGatherOffset_00X10B10D
    1413,  // bitfieldInsert_10E10E00D00D
    1415,  // packSnorm4x8_30B
    1417,  // mix_10B10B00B
    1419,  // imageLoad_01E20D
    1420,  // clamp_30D30D30D
    1422,  // textureGather_00U20B00D
    1424,  // textureSize_00f00D
    1426,  // textureProj_00N20B00B
    1427,  // gl_FragData
    1429,  // imageLoad_01B20D
    1430,  // textureProj_00d30B00B
    1432,  // clamp_20E00E00E
    1434,  // texture_00X10B
    1436,  // textureProj_00d30B
    1438,  // mix_30B30B30F
    1440,  // determinant_F0B
    1441,  // transpose_A0B
    1443,  // pow_20B20B
    1445,  // texture2DProjGradEXT_00I20B10B10B
    1446,  // gl_LastFragColorARM
    1447,  // textureGather_00Z20B00D
    1449,  // textureGather_00R10B
    1451,  // lessThanEqual_20D20D
    1453,  // textureLod_00S20B00B
    1455,  // textureProjLod_00Y30B00B
    1457,  // cosh_10B
    1459,  // sqrt_30B
    1461,  // gl_VertexID
    1463,  // sign_10D
    1465,  // textureProj_00M30B
    1466,  // exp_00B
    1468,  // min_00E00E
    1470,  // max_30D30D
    1472,  // umulExtended_00E00E00E00E
    1474,  // gl_MaxVertexAttribs
    1476,  // gl_BaseInstance
    1477,  // transpose_B0B
    1479,  // fwidth_20B
    1482,  // Empty
    1482,  // smoothstep_00B00B30B
    1484,  // floatBitsToInt_20B
    1486,  // textureSize_00M00D
    1487,  // log2_20B
    1489,  // ldexp_10B10D
    1491,  // min_10B00B
    1493,  // mix_30B30B00B
    1495,  // angle_BaseInstance
    1496,  // degrees_10B
    1498,  // gl_MaxTextureImageUnits
    1500,  // gl_Position
    1503,  // texture_00K20B
    1505,  // atomicCompSwap_00E00E00E
    1507,  // textureProjOffset_00Y30B20D
    1509,  // sinh_10B
    1511,  // atan_30B
    1513,  // textureGradOffset_00L20B10B10B10D
    1515,  // ceil_10B
    1517,  // textureSize_00S00D
    1519,  // imageStore_01D20D30E
    1520,  // greaterThanEqual_10B10B
    1522,  // atomicCounterDecrement_00G
    1524,  // textureCube_00K20B00B
    1526,  // dot_20B20B
    1528,  // transpose_90B
    1530,  // not_30F
    1532,  // textureProjLodOffset_00I20B00B10D
    1534,  // notEqual_10F10F
    1536,  // textureProjGrad_00R20B10B10B
    1538,  // texture_00f30B
    1540,  // smoothstep_00B00B00B
    1542,  // textureProjLodOffset_00d30B00B10D
    1544,  // texelFetch_00R10D00D
    1546,  // cosh_20B
    1548,  // textureProjLodOffset_00I30B00B10D
    1550,  // normalize_30B
    1552,  // smoothstep_30B30B30B
    1554,  // bitfieldInsert_10D10D00D00D
    1556,  // clamp_20B20B20B
    1558,  // textureGrad_00L20B10B10B
    1560,  // textureGrad_00R10B10B10B
    1562,  // textureProjGrad_00I20B10B10B
    1564,  // textureGather_00e20B
    1565,  // texture2D_00M10B
    1566,  // min_00D00D
    1568,  // outerProduct_10B10B
    1570,  // lessThanEqual_10D10D
    1572,  // trunc_20B
    1574,  // gl_MaxVaryingVectors
    1576,  // textureProjOffset_00I30B10D00B
    1578,  // textureSize_00d00D
    1580,  // sin_00B
    1582,  // gl_MaxVertexUniformVectors
    1584,  // textureCubeLodEXT_00K20B00B
    1585,  // textureGather_00T20B00D
    1587,  // textureProj_00N20B
    1588,  // uaddCarry_10E10E10E
    1590,  // tan_10B
    1592,  // textureLodOffset_00L20B00B10D
    1594,  // atomicCounterIncrement_00G
    1596,  // ldexp_20B20D
    1598,  // greaterThanEqual_30D30D
    1600,  // notEqual_20B20B
    1602,  // imageLoad_01D20D
    1603,  // textureProjLodOffset_00X30B00B10D
    1605,  // isinf_20B
    1607,  // cos_10B
    1609,  // mix_30B30B30B
    1611,  // texture_00e30B
    1613,  // textureSize_00T00D
    1615,  // textureGatherOffset_00X10B10D00D
    1617,  // equal_10E10E
    1619,  // min_10E10E
    1621,  // textureProjGradOffset_00Y30B20B20B20D
    1623,  // textureGrad_00T20B20B20B
    1625,  // memoryBarrierImage_
    1627,  // textureProjOffset_00J30B20D
    1629,  // EmitVertex_
    1630,  // textureProjOffset_00d30B10D00B
    1632,  // round_10B
    1634,  // textureProjOffset_00d30B10D
    1636,  // notEqual_10E10E
    1638,  // textureProj_00R30B
    1640,  // matrixCompMult_50B50B
    1642,  // equal_20F20F
    1644,  // gl_MaxFragmentInputVectors
    1646,  // equal_30B30B
    1648,  // textureLod_00U20B00B
    1650,  // usubBorrow_10E10E10E
    1652,  // equal_10B10B
    1654,  // textureProjGradOffset_00I20B10B10B10D
    1656,  // texture2DProjLod_00I30B00B
    1658,  // isnan_10B
    1660,  // uaddCarry_20E20E20E
    1662,  // max_10B10B
    1664,  // atomicMax_00E00E
    1666,  // gl_PointSize
    1668,  // atomicMin_00D00D
    1670,  // textureSize_00X00D
    1672,  // greaterThan_10B10B
    1674,  // asin_10B
    1676,  // textureGather_00d10B00B
    1678,  // trunc_10B
    1680,  // gl_MaxComputeAtomicCounters
    1682,  // textureProj_00X30B
    1684,  // gl_MaxVertexAtomicCounters
    1686,  // length_20B
    1688,  // bitfieldInsert_30E30E00D00D
    1690,  // textureOffset_00S20B20D
    1692,  // textureProjOffset_00X20B10D
    1694,  // clamp_30D00D00D
    1696,  // clamp_10B00B00B
    1698,  // textureProj_00R20B
    1700,  // imageStore_01F20D30D
    1701,  // textureProj_00I20B00B
    1703,  // greaterThan_10E10E
    1705,  // textureProjOffset_00R30B10D00B
    1707,  // dFdy_00B
    1710,  // min_30D00D
    1712,  // floatBitsToInt_00B
    1714,  // sign_10B
    1716,  // max_00E00E
    1718,  // texture_00a20B00B
    1720,  // texture_00M10B00B
    1721,  // smoothstep_20B20B20B
    1723,  // textureCubeLod_00K20B00B
    1725,  // textureOffset_00J20B20D
    1727,  // texelFetch_00J20D00D
    1729,  // textureProj_00M20B00B
    1730,  // floatBitsToUint_00B
    1732,  // textureProjGradOffset_00R30B10B10B10D
    1734,  // textureLod_00K20B00B
    1736,  // textureProjOffset_00X30B10D00B
    1738,  // cos_20B
    1740,  // exp2_00B
    1742,  // radians_30B
    1744,  // texture2DRectProj_00O20B
    1745,  // tan_20B
    1747,  // textureGather_00T20B
    1749,  // textureGather_00a20B00D
    1751,  // textureProjGradOffset_00J30B20B20B20D
    1753,  // asinh_10B
    1755,  // textureProjGrad_00X30B10B10B
    1757,  // floor_00B
    1759,  // gl_DrawID
    1760,  // atomicOr_00D00D
    1762,  // texture3DLod_00J20B00B
};

using Ext = TExtension;

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

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 == 936 - 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 >= 936)
        return nullptr;

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

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

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

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

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

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

}  // namespace sh
