// Copyright 2023 The Dawn & Tint Authors
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are met:
//
// 1. Redistributions of source code must retain the above copyright notice, this
//    list of conditions and the following disclaimer.
//
// 2. Redistributions in binary form must reproduce the above copyright notice,
//    this list of conditions and the following disclaimer in the documentation
//    and/or other materials provided with the distribution.
//
// 3. Neither the name of the copyright holder nor the names of its
//    contributors may be used to endorse or promote products derived from
//    this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

////////////////////////////////////////////////////////////////////////////////
// File generated by 'tools/src/cmd/gen' using the template:
//   src/tint/lang/msl/intrinsic/data.cc.tmpl
//
// To regenerate run: './tools/run gen'
//
//                       Do not modify this file directly
////////////////////////////////////////////////////////////////////////////////

// clang-format off

#include <limits>
#include <string>

#include "src/tint/lang/core/intrinsic/type_matchers.h"
#include "src/tint/lang/msl/intrinsic/dialect.h"
#include "src/tint/lang/msl/intrinsic/type_matchers.h"
#include "src/tint/utils/text/string_stream.h"

namespace tint::msl::intrinsic {

using namespace tint::core::intrinsic;  // NOLINT(build/namespaces)

namespace {

using ConstEvalFunctionIndex = tint::core::intrinsic::ConstEvalFunctionIndex;
using IntrinsicInfo = tint::core::intrinsic::IntrinsicInfo;
using MatcherIndicesIndex = tint::core::intrinsic::MatcherIndicesIndex;
using MatchState = tint::core::intrinsic::MatchState;
using Number = tint::core::intrinsic::Number;
using NumberMatcher = tint::core::intrinsic::NumberMatcher;
using NumberMatcherIndex = tint::core::intrinsic::NumberMatcherIndex;
using OverloadFlag = tint::core::intrinsic::OverloadFlag;
using OverloadFlags = tint::core::intrinsic::OverloadFlags;
using OverloadIndex = tint::core::intrinsic::OverloadIndex;
using OverloadInfo = tint::core::intrinsic::OverloadInfo;
using ParameterIndex = tint::core::intrinsic::ParameterIndex;
using ParameterInfo = tint::core::intrinsic::ParameterInfo;
using StringStream = tint::StringStream;
using TemplateIndex = tint::core::intrinsic::TemplateIndex;
using Type = tint::core::type::Type;
using TypeMatcher = tint::core::intrinsic::TypeMatcher;
using TypeMatcherIndex = tint::core::intrinsic::TypeMatcherIndex;

template<size_t N>
using TemplateNumberMatcher = tint::core::intrinsic::TemplateNumberMatcher<N>;

template<size_t N>
using TemplateTypeMatcher = tint::core::intrinsic::TemplateTypeMatcher<N>;

/// TypeMatcher for 'type bool'
constexpr TypeMatcher kBoolMatcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
    if (!MatchBool(state, ty)) {
      return nullptr;
    }
    return BuildBool(state, ty);
  },
/* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {
    out << style::Type("bool");
  }
};


/// TypeMatcher for 'type i32'
constexpr TypeMatcher kI32Matcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
    if (!MatchI32(state, ty)) {
      return nullptr;
    }
    return BuildI32(state, ty);
  },
/* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {
    out << style::Type("i32");
  }
};


/// TypeMatcher for 'type i8'
constexpr TypeMatcher kI8Matcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
    if (!MatchI8(state, ty)) {
      return nullptr;
    }
    return BuildI8(state, ty);
  },
/* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {
    out << style::Type("i8");
  }
};


/// TypeMatcher for 'type u32'
constexpr TypeMatcher kU32Matcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
    if (!MatchU32(state, ty)) {
      return nullptr;
    }
    return BuildU32(state, ty);
  },
/* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {
    out << style::Type("u32");
  }
};


/// TypeMatcher for 'type u64'
constexpr TypeMatcher kU64Matcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
    if (!MatchU64(state, ty)) {
      return nullptr;
    }
    return BuildU64(state, ty);
  },
/* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {
    out << style::Type("u64");
  }
};


/// TypeMatcher for 'type u8'
constexpr TypeMatcher kU8Matcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
    if (!MatchU8(state, ty)) {
      return nullptr;
    }
    return BuildU8(state, ty);
  },
/* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {
    out << style::Type("u8");
  }
};


/// TypeMatcher for 'type f32'
constexpr TypeMatcher kF32Matcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
    if (!MatchF32(state, ty)) {
      return nullptr;
    }
    return BuildF32(state, ty);
  },
/* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {
    out << style::Type("f32");
  }
};


/// TypeMatcher for 'type f16'
constexpr TypeMatcher kF16Matcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
    if (!MatchF16(state, ty)) {
      return nullptr;
    }
    return BuildF16(state, ty);
  },
/* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {
    out << style::Type("f16");
  }
};


/// TypeMatcher for 'type vec2'
constexpr TypeMatcher kVec2Matcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
  const Type* T = nullptr;
    if (!MatchVec2(state, ty, T)) {
      return nullptr;
    }
    T = state.Type(T);
    if (T == nullptr) {
      return nullptr;
    }
    return BuildVec2(state, ty, T);
  },
/* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {StyledText T;
  state->PrintType(T);
    out << style::Type("vec2", "<", T, ">");
  }
};


/// TypeMatcher for 'type vec3'
constexpr TypeMatcher kVec3Matcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
  const Type* T = nullptr;
    if (!MatchVec3(state, ty, T)) {
      return nullptr;
    }
    T = state.Type(T);
    if (T == nullptr) {
      return nullptr;
    }
    return BuildVec3(state, ty, T);
  },
/* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {StyledText T;
  state->PrintType(T);
    out << style::Type("vec3", "<", T, ">");
  }
};


/// TypeMatcher for 'type vec4'
constexpr TypeMatcher kVec4Matcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
  const Type* T = nullptr;
    if (!MatchVec4(state, ty, T)) {
      return nullptr;
    }
    T = state.Type(T);
    if (T == nullptr) {
      return nullptr;
    }
    return BuildVec4(state, ty, T);
  },
/* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {StyledText T;
  state->PrintType(T);
    out << style::Type("vec4", "<", T, ">");
  }
};


/// TypeMatcher for 'type vec'
constexpr TypeMatcher kVecMatcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
  Number N = Number::invalid;
  const Type* T = nullptr;
    if (!MatchVec(state, ty, N, T)) {
      return nullptr;
    }
    N = state.Num(N);
    if (!N.IsValid()) {
      return nullptr;
    }
    T = state.Type(T);
    if (T == nullptr) {
      return nullptr;
    }
    return BuildVec(state, ty, N, T);
  },
/* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {StyledText N;
  state->PrintNum(N);StyledText T;
  state->PrintType(T);
    out << style::Type("vec", N, "<", T, ">");
  }
};


/// TypeMatcher for 'type runtime_array'
constexpr TypeMatcher kRuntimeArrayMatcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
  const Type* T = nullptr;
    if (!MatchRuntimeArray(state, ty, T)) {
      return nullptr;
    }
    T = state.Type(T);
    if (T == nullptr) {
      return nullptr;
    }
    return BuildRuntimeArray(state, ty, T);
  },
/* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {StyledText T;
  state->PrintType(T);
    out << style::Type("array");
  }
};


/// TypeMatcher for 'type array'
constexpr TypeMatcher kArrayMatcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
  const Type* T = nullptr;
  Number N = Number::invalid;
    if (!MatchArray(state, ty, T, N)) {
      return nullptr;
    }
    T = state.Type(T);
    if (T == nullptr) {
      return nullptr;
    }
    N = state.Num(N);
    if (!N.IsValid()) {
      return nullptr;
    }
    return BuildArray(state, ty, T, N);
  },
/* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {StyledText T;
  state->PrintType(T);StyledText N;
  state->PrintNum(N);
    out << style::Type("array", "<", T, ", ", N, ">");
  }
};


/// TypeMatcher for 'type atomic'
constexpr TypeMatcher kAtomicMatcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
  const Type* T = nullptr;
    if (!MatchAtomic(state, ty, T)) {
      return nullptr;
    }
    T = state.Type(T);
    if (T == nullptr) {
      return nullptr;
    }
    return BuildAtomic(state, ty, T);
  },
/* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {StyledText T;
  state->PrintType(T);
    out << style::Type("atomic", "<", T, ">");
  }
};


/// TypeMatcher for 'type ptr'
constexpr TypeMatcher kPtrMatcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
  Number S = Number::invalid;
  const Type* T = nullptr;
  Number A = Number::invalid;
    if (!MatchPtr(state, ty, S, T, A)) {
      return nullptr;
    }
    S = state.Num(S);
    if (!S.IsValid()) {
      return nullptr;
    }
    T = state.Type(T);
    if (T == nullptr) {
      return nullptr;
    }
    A = state.Num(A);
    if (!A.IsValid()) {
      return nullptr;
    }
    return BuildPtr(state, ty, S, T, A);
  },
/* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {StyledText S;
  state->PrintNum(S);StyledText T;
  state->PrintType(T);StyledText A;
  state->PrintNum(A);
    out << style::Type("ptr", "<", S, ", ", T, ", ", A, ">");
  }
};


/// TypeMatcher for 'type sampler'
constexpr TypeMatcher kSamplerMatcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
    if (!MatchSampler(state, ty)) {
      return nullptr;
    }
    return BuildSampler(state, ty);
  },
/* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {
    out << style::Type("sampler");
  }
};


/// TypeMatcher for 'type sampler_comparison'
constexpr TypeMatcher kSamplerComparisonMatcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
    if (!MatchSamplerComparison(state, ty)) {
      return nullptr;
    }
    return BuildSamplerComparison(state, ty);
  },
/* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {
    out << style::Type("sampler_comparison");
  }
};


/// TypeMatcher for 'type texture_1d'
constexpr TypeMatcher kTexture1DMatcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
  const Type* T = nullptr;
    if (!MatchTexture1D(state, ty, T)) {
      return nullptr;
    }
    T = state.Type(T);
    if (T == nullptr) {
      return nullptr;
    }
    return BuildTexture1D(state, ty, T);
  },
/* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {StyledText T;
  state->PrintType(T);
    out << style::Type("texture_1d", "<", T, ">");
  }
};


/// TypeMatcher for 'type texture_2d'
constexpr TypeMatcher kTexture2DMatcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
  const Type* T = nullptr;
    if (!MatchTexture2D(state, ty, T)) {
      return nullptr;
    }
    T = state.Type(T);
    if (T == nullptr) {
      return nullptr;
    }
    return BuildTexture2D(state, ty, T);
  },
/* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {StyledText T;
  state->PrintType(T);
    out << style::Type("texture_2d", "<", T, ">");
  }
};


/// TypeMatcher for 'type texture_2d_array'
constexpr TypeMatcher kTexture2DArrayMatcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
  const Type* T = nullptr;
    if (!MatchTexture2DArray(state, ty, T)) {
      return nullptr;
    }
    T = state.Type(T);
    if (T == nullptr) {
      return nullptr;
    }
    return BuildTexture2DArray(state, ty, T);
  },
/* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {StyledText T;
  state->PrintType(T);
    out << style::Type("texture_2d_array", "<", T, ">");
  }
};


/// TypeMatcher for 'type texture_3d'
constexpr TypeMatcher kTexture3DMatcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
  const Type* T = nullptr;
    if (!MatchTexture3D(state, ty, T)) {
      return nullptr;
    }
    T = state.Type(T);
    if (T == nullptr) {
      return nullptr;
    }
    return BuildTexture3D(state, ty, T);
  },
/* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {StyledText T;
  state->PrintType(T);
    out << style::Type("texture_3d", "<", T, ">");
  }
};


/// TypeMatcher for 'type texture_cube'
constexpr TypeMatcher kTextureCubeMatcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
  const Type* T = nullptr;
    if (!MatchTextureCube(state, ty, T)) {
      return nullptr;
    }
    T = state.Type(T);
    if (T == nullptr) {
      return nullptr;
    }
    return BuildTextureCube(state, ty, T);
  },
/* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {StyledText T;
  state->PrintType(T);
    out << style::Type("texture_cube", "<", T, ">");
  }
};


/// TypeMatcher for 'type texture_cube_array'
constexpr TypeMatcher kTextureCubeArrayMatcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
  const Type* T = nullptr;
    if (!MatchTextureCubeArray(state, ty, T)) {
      return nullptr;
    }
    T = state.Type(T);
    if (T == nullptr) {
      return nullptr;
    }
    return BuildTextureCubeArray(state, ty, T);
  },
/* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {StyledText T;
  state->PrintType(T);
    out << style::Type("texture_cube_array", "<", T, ">");
  }
};


/// TypeMatcher for 'type texture_depth_2d'
constexpr TypeMatcher kTextureDepth2DMatcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
    if (!MatchTextureDepth2D(state, ty)) {
      return nullptr;
    }
    return BuildTextureDepth2D(state, ty);
  },
/* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {
    out << style::Type("texture_depth_2d");
  }
};


/// TypeMatcher for 'type texture_depth_2d_array'
constexpr TypeMatcher kTextureDepth2DArrayMatcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
    if (!MatchTextureDepth2DArray(state, ty)) {
      return nullptr;
    }
    return BuildTextureDepth2DArray(state, ty);
  },
/* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {
    out << style::Type("texture_depth_2d_array");
  }
};


/// TypeMatcher for 'type texture_depth_cube'
constexpr TypeMatcher kTextureDepthCubeMatcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
    if (!MatchTextureDepthCube(state, ty)) {
      return nullptr;
    }
    return BuildTextureDepthCube(state, ty);
  },
/* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {
    out << style::Type("texture_depth_cube");
  }
};


/// TypeMatcher for 'type texture_depth_cube_array'
constexpr TypeMatcher kTextureDepthCubeArrayMatcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
    if (!MatchTextureDepthCubeArray(state, ty)) {
      return nullptr;
    }
    return BuildTextureDepthCubeArray(state, ty);
  },
/* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {
    out << style::Type("texture_depth_cube_array");
  }
};


/// TypeMatcher for 'type texture_depth_multisampled_2d'
constexpr TypeMatcher kTextureDepthMultisampled2DMatcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
    if (!MatchTextureDepthMultisampled2D(state, ty)) {
      return nullptr;
    }
    return BuildTextureDepthMultisampled2D(state, ty);
  },
/* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {
    out << style::Type("texture_depth_multisampled_2d");
  }
};


/// TypeMatcher for 'type texture_multisampled_2d'
constexpr TypeMatcher kTextureMultisampled2DMatcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
  const Type* T = nullptr;
    if (!MatchTextureMultisampled2D(state, ty, T)) {
      return nullptr;
    }
    T = state.Type(T);
    if (T == nullptr) {
      return nullptr;
    }
    return BuildTextureMultisampled2D(state, ty, T);
  },
/* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {StyledText T;
  state->PrintType(T);
    out << style::Type("texture_multisampled_2d", "<", T, ">");
  }
};


/// TypeMatcher for 'type texture_storage_1d'
constexpr TypeMatcher kTextureStorage1DMatcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
  Number F = Number::invalid;
  Number A = Number::invalid;
    if (!MatchTextureStorage1D(state, ty, F, A)) {
      return nullptr;
    }
    F = state.Num(F);
    if (!F.IsValid()) {
      return nullptr;
    }
    A = state.Num(A);
    if (!A.IsValid()) {
      return nullptr;
    }
    return BuildTextureStorage1D(state, ty, F, A);
  },
/* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {StyledText F;
  state->PrintNum(F);StyledText A;
  state->PrintNum(A);
    out << style::Type("texture_storage_1d", "<", F, ", ", A, ">");
  }
};


/// TypeMatcher for 'type texture_storage_2d'
constexpr TypeMatcher kTextureStorage2DMatcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
  Number F = Number::invalid;
  Number A = Number::invalid;
    if (!MatchTextureStorage2D(state, ty, F, A)) {
      return nullptr;
    }
    F = state.Num(F);
    if (!F.IsValid()) {
      return nullptr;
    }
    A = state.Num(A);
    if (!A.IsValid()) {
      return nullptr;
    }
    return BuildTextureStorage2D(state, ty, F, A);
  },
/* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {StyledText F;
  state->PrintNum(F);StyledText A;
  state->PrintNum(A);
    out << style::Type("texture_storage_2d", "<", F, ", ", A, ">");
  }
};


/// TypeMatcher for 'type texture_storage_2d_array'
constexpr TypeMatcher kTextureStorage2DArrayMatcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
  Number F = Number::invalid;
  Number A = Number::invalid;
    if (!MatchTextureStorage2DArray(state, ty, F, A)) {
      return nullptr;
    }
    F = state.Num(F);
    if (!F.IsValid()) {
      return nullptr;
    }
    A = state.Num(A);
    if (!A.IsValid()) {
      return nullptr;
    }
    return BuildTextureStorage2DArray(state, ty, F, A);
  },
/* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {StyledText F;
  state->PrintNum(F);StyledText A;
  state->PrintNum(A);
    out << style::Type("texture_storage_2d_array", "<", F, ", ", A, ">");
  }
};


/// TypeMatcher for 'type texture_storage_3d'
constexpr TypeMatcher kTextureStorage3DMatcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
  Number F = Number::invalid;
  Number A = Number::invalid;
    if (!MatchTextureStorage3D(state, ty, F, A)) {
      return nullptr;
    }
    F = state.Num(F);
    if (!F.IsValid()) {
      return nullptr;
    }
    A = state.Num(A);
    if (!A.IsValid()) {
      return nullptr;
    }
    return BuildTextureStorage3D(state, ty, F, A);
  },
/* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {StyledText F;
  state->PrintNum(F);StyledText A;
  state->PrintNum(A);
    out << style::Type("texture_storage_3d", "<", F, ", ", A, ">");
  }
};


/// TypeMatcher for 'type subgroup_matrix'
constexpr TypeMatcher kSubgroupMatrixMatcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
  Number S = Number::invalid;
  const Type* T = nullptr;
  Number C = Number::invalid;
  Number R = Number::invalid;
    if (!MatchSubgroupMatrix(state, ty, S, T, C, R)) {
      return nullptr;
    }
    S = state.Num(S);
    if (!S.IsValid()) {
      return nullptr;
    }
    T = state.Type(T);
    if (T == nullptr) {
      return nullptr;
    }
    C = state.Num(C);
    if (!C.IsValid()) {
      return nullptr;
    }
    R = state.Num(R);
    if (!R.IsValid()) {
      return nullptr;
    }
    return BuildSubgroupMatrix(state, ty, S, T, C, R);
  },
/* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {StyledText S;
  state->PrintNum(S);StyledText T;
  state->PrintType(T);StyledText C;
  state->PrintNum(C);StyledText R;
  state->PrintNum(R);
    out << style::Type("subgroup_matrix", "<", S, ", ", T, ", ", C, ", ", R, ">");
  }
};


/// TypeMatcher for 'type bias'
constexpr TypeMatcher kBiasMatcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
    if (!MatchBias(state, ty)) {
      return nullptr;
    }
    return BuildBias(state, ty);
  },
/* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {
    out << style::Type("bias");
  }
};


/// TypeMatcher for 'type gradient2d'
constexpr TypeMatcher kGradient2DMatcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
    if (!MatchGradient2D(state, ty)) {
      return nullptr;
    }
    return BuildGradient2D(state, ty);
  },
/* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {
    out << style::Type("gradient2d");
  }
};


/// TypeMatcher for 'type gradient3d'
constexpr TypeMatcher kGradient3DMatcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
    if (!MatchGradient3D(state, ty)) {
      return nullptr;
    }
    return BuildGradient3D(state, ty);
  },
/* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {
    out << style::Type("gradient3d");
  }
};


/// TypeMatcher for 'type gradientcube'
constexpr TypeMatcher kGradientcubeMatcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
    if (!MatchGradientcube(state, ty)) {
      return nullptr;
    }
    return BuildGradientcube(state, ty);
  },
/* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {
    out << style::Type("gradientcube");
  }
};


/// TypeMatcher for 'type level'
constexpr TypeMatcher kLevelMatcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
    if (!MatchLevel(state, ty)) {
      return nullptr;
    }
    return BuildLevel(state, ty);
  },
/* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {
    out << style::Type("level");
  }
};


/// TypeMatcher for 'type __packed_vec3'
constexpr TypeMatcher kPackedVec3Matcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
  const Type* T = nullptr;
    if (!MatchPackedVec3(state, ty, T)) {
      return nullptr;
    }
    T = state.Type(T);
    if (T == nullptr) {
      return nullptr;
    }
    return BuildPackedVec3(state, ty, T);
  },
/* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {StyledText T;
  state->PrintType(T);
    out << style::Type("__packed_vec3", "<", T, ">");
  }
};


/// TypeMatcher for 'type string'
constexpr TypeMatcher kStringMatcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
    if (!MatchString(state, ty)) {
      return nullptr;
    }
    return BuildString(state, ty);
  },
/* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {
    out << style::Type("string");
  }
};


/// TypeMatcher for 'match iu32'
constexpr TypeMatcher kIu32Matcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
    if (MatchI32(state, ty)) {
      return BuildI32(state, ty);
    }
    if (MatchU32(state, ty)) {
      return BuildU32(state, ty);
    }
    return nullptr;
  },
/* print */ [](MatchState*, StyledText& out) {
    // Note: We pass nullptr to the Matcher.print() functions, as matchers do not support
    // template arguments, nor can they match sub-types. As such, they have no use for the MatchState.
 kI32Matcher.print(nullptr, out); out << style::Plain(" or "); kU32Matcher.print(nullptr, out);}
};

/// TypeMatcher for 'match fiu32'
constexpr TypeMatcher kFiu32Matcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
    if (MatchF32(state, ty)) {
      return BuildF32(state, ty);
    }
    if (MatchI32(state, ty)) {
      return BuildI32(state, ty);
    }
    if (MatchU32(state, ty)) {
      return BuildU32(state, ty);
    }
    return nullptr;
  },
/* print */ [](MatchState*, StyledText& out) {
    // Note: We pass nullptr to the Matcher.print() functions, as matchers do not support
    // template arguments, nor can they match sub-types. As such, they have no use for the MatchState.
 kF32Matcher.print(nullptr, out); out << style::Plain(", "); kI32Matcher.print(nullptr, out); out << style::Plain(" or "); kU32Matcher.print(nullptr, out);}
};

/// TypeMatcher for 'match f32_f16'
constexpr TypeMatcher kF32F16Matcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
    if (MatchF32(state, ty)) {
      return BuildF32(state, ty);
    }
    if (MatchF16(state, ty)) {
      return BuildF16(state, ty);
    }
    return nullptr;
  },
/* print */ [](MatchState*, StyledText& out) {
    // Note: We pass nullptr to the Matcher.print() functions, as matchers do not support
    // template arguments, nor can they match sub-types. As such, they have no use for the MatchState.
 kF32Matcher.print(nullptr, out); out << style::Plain(" or "); kF16Matcher.print(nullptr, out);}
};

/// TypeMatcher for 'match fiu32_f16'
constexpr TypeMatcher kFiu32F16Matcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
    if (MatchF32(state, ty)) {
      return BuildF32(state, ty);
    }
    if (MatchI32(state, ty)) {
      return BuildI32(state, ty);
    }
    if (MatchU32(state, ty)) {
      return BuildU32(state, ty);
    }
    if (MatchF16(state, ty)) {
      return BuildF16(state, ty);
    }
    return nullptr;
  },
/* print */ [](MatchState*, StyledText& out) {
    // Note: We pass nullptr to the Matcher.print() functions, as matchers do not support
    // template arguments, nor can they match sub-types. As such, they have no use for the MatchState.
 kF32Matcher.print(nullptr, out); out << style::Plain(", "); kI32Matcher.print(nullptr, out); out << style::Plain(", "); kU32Matcher.print(nullptr, out); out << style::Plain(" or "); kF16Matcher.print(nullptr, out);}
};

/// TypeMatcher for 'match iu8'
constexpr TypeMatcher kIu8Matcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
    if (MatchI8(state, ty)) {
      return BuildI8(state, ty);
    }
    if (MatchU8(state, ty)) {
      return BuildU8(state, ty);
    }
    return nullptr;
  },
/* print */ [](MatchState*, StyledText& out) {
    // Note: We pass nullptr to the Matcher.print() functions, as matchers do not support
    // template arguments, nor can they match sub-types. As such, they have no use for the MatchState.
 kI8Matcher.print(nullptr, out); out << style::Plain(" or "); kU8Matcher.print(nullptr, out);}
};

/// TypeMatcher for 'match scalar'
constexpr TypeMatcher kScalarMatcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
    if (MatchBool(state, ty)) {
      return BuildBool(state, ty);
    }
    if (MatchF16(state, ty)) {
      return BuildF16(state, ty);
    }
    if (MatchF32(state, ty)) {
      return BuildF32(state, ty);
    }
    if (MatchI32(state, ty)) {
      return BuildI32(state, ty);
    }
    if (MatchU32(state, ty)) {
      return BuildU32(state, ty);
    }
    return nullptr;
  },
/* print */ [](MatchState*, StyledText& out) {
    // Note: We pass nullptr to the Matcher.print() functions, as matchers do not support
    // template arguments, nor can they match sub-types. As such, they have no use for the MatchState.
 kBoolMatcher.print(nullptr, out); out << style::Plain(", "); kF16Matcher.print(nullptr, out); out << style::Plain(", "); kF32Matcher.print(nullptr, out); out << style::Plain(", "); kI32Matcher.print(nullptr, out); out << style::Plain(" or "); kU32Matcher.print(nullptr, out);}
};

/// EnumMatcher for 'match read_write'
constexpr NumberMatcher kReadWriteMatcher {
/* match */ [](MatchState&, Number number) -> Number {
    if (number.IsAny() || number.Value() == static_cast<uint32_t>(core::Access::kReadWrite)) {
      return Number(static_cast<uint32_t>(core::Access::kReadWrite));
    }
    return Number::invalid;
  },
/* print */ [](MatchState*, StyledText& out) {
  out<< style::Enum("read_write");
  }
};

/// EnumMatcher for 'match readable'
constexpr NumberMatcher kReadableMatcher {
/* match */ [](MatchState&, Number number) -> Number {
    switch (static_cast<core::Access>(number.Value())) {
      case core::Access::kRead:
      case core::Access::kReadWrite:
        return number;
      default:
        return Number::invalid;
    }
  },
/* print */ [](MatchState*, StyledText& out) {
  out<< style::Enum("read")<< style::Plain(" or ") << style::Enum("read_write");
  }
};

/// EnumMatcher for 'match writable'
constexpr NumberMatcher kWritableMatcher {
/* match */ [](MatchState&, Number number) -> Number {
    switch (static_cast<core::Access>(number.Value())) {
      case core::Access::kWrite:
      case core::Access::kReadWrite:
        return number;
      default:
        return Number::invalid;
    }
  },
/* print */ [](MatchState*, StyledText& out) {
  out<< style::Enum("write")<< style::Plain(" or ") << style::Enum("read_write");
  }
};

/// EnumMatcher for 'match function'
constexpr NumberMatcher kFunctionMatcher {
/* match */ [](MatchState&, Number number) -> Number {
    if (number.IsAny() || number.Value() == static_cast<uint32_t>(core::AddressSpace::kFunction)) {
      return Number(static_cast<uint32_t>(core::AddressSpace::kFunction));
    }
    return Number::invalid;
  },
/* print */ [](MatchState*, StyledText& out) {
  out<< style::Enum("function");
  }
};

/// EnumMatcher for 'match storage'
constexpr NumberMatcher kStorageMatcher {
/* match */ [](MatchState&, Number number) -> Number {
    if (number.IsAny() || number.Value() == static_cast<uint32_t>(core::AddressSpace::kStorage)) {
      return Number(static_cast<uint32_t>(core::AddressSpace::kStorage));
    }
    return Number::invalid;
  },
/* print */ [](MatchState*, StyledText& out) {
  out<< style::Enum("storage");
  }
};

/// EnumMatcher for 'match workgroup_or_storage'
constexpr NumberMatcher kWorkgroupOrStorageMatcher {
/* match */ [](MatchState&, Number number) -> Number {
    switch (static_cast<core::AddressSpace>(number.Value())) {
      case core::AddressSpace::kWorkgroup:
      case core::AddressSpace::kStorage:
        return number;
      default:
        return Number::invalid;
    }
  },
/* print */ [](MatchState*, StyledText& out) {
  out<< style::Enum("workgroup")<< style::Plain(" or ") << style::Enum("storage");
  }
};

/// EnumMatcher for 'match f32_texel_format'
constexpr NumberMatcher kF32TexelFormatMatcher {
/* match */ [](MatchState&, Number number) -> Number {
    switch (static_cast<core::TexelFormat>(number.Value())) {
      case core::TexelFormat::kR8Unorm:
      case core::TexelFormat::kR8Snorm:
      case core::TexelFormat::kRg8Unorm:
      case core::TexelFormat::kRg8Snorm:
      case core::TexelFormat::kBgra8Unorm:
      case core::TexelFormat::kRgba8Unorm:
      case core::TexelFormat::kRgba8Snorm:
      case core::TexelFormat::kR16Unorm:
      case core::TexelFormat::kR16Snorm:
      case core::TexelFormat::kRg16Unorm:
      case core::TexelFormat::kRg16Snorm:
      case core::TexelFormat::kRgba16Unorm:
      case core::TexelFormat::kRgba16Snorm:
      case core::TexelFormat::kR16Float:
      case core::TexelFormat::kRg16Float:
      case core::TexelFormat::kRgba16Float:
      case core::TexelFormat::kR32Float:
      case core::TexelFormat::kRg32Float:
      case core::TexelFormat::kRgba32Float:
      case core::TexelFormat::kRgb10A2Unorm:
      case core::TexelFormat::kRg11B10Ufloat:
        return number;
      default:
        return Number::invalid;
    }
  },
/* print */ [](MatchState*, StyledText& out) {
  out<< style::Enum("r8unorm")<< style::Plain(", ") << style::Enum("r8snorm")<< style::Plain(", ") << style::Enum("rg8unorm")<< style::Plain(", ") << style::Enum("rg8snorm")<< style::Plain(", ") << style::Enum("bgra8unorm")<< style::Plain(", ") << style::Enum("rgba8unorm")<< style::Plain(", ") << style::Enum("rgba8snorm")<< style::Plain(", ") << style::Enum("r16unorm")<< style::Plain(", ") << style::Enum("r16snorm")<< style::Plain(", ") << style::Enum("rg16unorm")<< style::Plain(", ") << style::Enum("rg16snorm")<< style::Plain(", ") << style::Enum("rgba16unorm")<< style::Plain(", ") << style::Enum("rgba16snorm")<< style::Plain(", ") << style::Enum("r16float")<< style::Plain(", ") << style::Enum("rg16float")<< style::Plain(", ") << style::Enum("rgba16float")<< style::Plain(", ") << style::Enum("r32float")<< style::Plain(", ") << style::Enum("rg32float")<< style::Plain(", ") << style::Enum("rgba32float")<< style::Plain(", ") << style::Enum("rgb10a2unorm")<< style::Plain(" or ") << style::Enum("rg11b10ufloat");
  }
};

/// EnumMatcher for 'match i32_texel_format'
constexpr NumberMatcher kI32TexelFormatMatcher {
/* match */ [](MatchState&, Number number) -> Number {
    switch (static_cast<core::TexelFormat>(number.Value())) {
      case core::TexelFormat::kR8Sint:
      case core::TexelFormat::kRg8Sint:
      case core::TexelFormat::kRgba8Sint:
      case core::TexelFormat::kR16Sint:
      case core::TexelFormat::kRg16Sint:
      case core::TexelFormat::kRgba16Sint:
      case core::TexelFormat::kR32Sint:
      case core::TexelFormat::kRg32Sint:
      case core::TexelFormat::kRgba32Sint:
        return number;
      default:
        return Number::invalid;
    }
  },
/* print */ [](MatchState*, StyledText& out) {
  out<< style::Enum("r8sint")<< style::Plain(", ") << style::Enum("rg8sint")<< style::Plain(", ") << style::Enum("rgba8sint")<< style::Plain(", ") << style::Enum("r16sint")<< style::Plain(", ") << style::Enum("rg16sint")<< style::Plain(", ") << style::Enum("rgba16sint")<< style::Plain(", ") << style::Enum("r32sint")<< style::Plain(", ") << style::Enum("rg32sint")<< style::Plain(" or ") << style::Enum("rgba32sint");
  }
};

/// EnumMatcher for 'match u32_texel_format'
constexpr NumberMatcher kU32TexelFormatMatcher {
/* match */ [](MatchState&, Number number) -> Number {
    switch (static_cast<core::TexelFormat>(number.Value())) {
      case core::TexelFormat::kR8Uint:
      case core::TexelFormat::kRg8Uint:
      case core::TexelFormat::kR16Uint:
      case core::TexelFormat::kRg16Uint:
      case core::TexelFormat::kRgba8Uint:
      case core::TexelFormat::kRgba16Uint:
      case core::TexelFormat::kR32Uint:
      case core::TexelFormat::kRg32Uint:
      case core::TexelFormat::kRgba32Uint:
      case core::TexelFormat::kRgb10A2Uint:
        return number;
      default:
        return Number::invalid;
    }
  },
/* print */ [](MatchState*, StyledText& out) {
  out<< style::Enum("r8uint")<< style::Plain(", ") << style::Enum("rg8uint")<< style::Plain(", ") << style::Enum("r16uint")<< style::Plain(", ") << style::Enum("rg16uint")<< style::Plain(", ") << style::Enum("rgba8uint")<< style::Plain(", ") << style::Enum("rgba16uint")<< style::Plain(", ") << style::Enum("r32uint")<< style::Plain(", ") << style::Enum("rg32uint")<< style::Plain(", ") << style::Enum("rgba32uint")<< style::Plain(" or ") << style::Enum("rgb10a2uint");
  }
};

/// EnumMatcher for 'match subgroup_matrix_kind_left'
constexpr NumberMatcher kSubgroupMatrixKindLeftMatcher {
/* match */ [](MatchState&, Number number) -> Number {
    if (number.IsAny() || number.Value() == static_cast<uint32_t>(core::SubgroupMatrixKind::kLeft)) {
      return Number(static_cast<uint32_t>(core::SubgroupMatrixKind::kLeft));
    }
    return Number::invalid;
  },
/* print */ [](MatchState*, StyledText& out) {
  out<< style::Enum("left");
  }
};

/// EnumMatcher for 'match subgroup_matrix_kind_right'
constexpr NumberMatcher kSubgroupMatrixKindRightMatcher {
/* match */ [](MatchState&, Number number) -> Number {
    if (number.IsAny() || number.Value() == static_cast<uint32_t>(core::SubgroupMatrixKind::kRight)) {
      return Number(static_cast<uint32_t>(core::SubgroupMatrixKind::kRight));
    }
    return Number::invalid;
  },
/* print */ [](MatchState*, StyledText& out) {
  out<< style::Enum("right");
  }
};

/// EnumMatcher for 'match subgroup_matrix_kind_result'
constexpr NumberMatcher kSubgroupMatrixKindResultMatcher {
/* match */ [](MatchState&, Number number) -> Number {
    if (number.IsAny() || number.Value() == static_cast<uint32_t>(core::SubgroupMatrixKind::kResult)) {
      return Number(static_cast<uint32_t>(core::SubgroupMatrixKind::kResult));
    }
    return Number::invalid;
  },
/* print */ [](MatchState*, StyledText& out) {
  out<< style::Enum("result");
  }
};

/// Type and number matchers

/// The template types, types, and type matchers
constexpr TypeMatcher kTypeMatchers[] = {
  /* [0] */ TemplateTypeMatcher<0>::matcher,
  /* [1] */ TemplateTypeMatcher<1>::matcher,
  /* [2] */ TemplateTypeMatcher<2>::matcher,
  /* [3] */ TemplateTypeMatcher<3>::matcher,
  /* [4] */ TemplateTypeMatcher<4>::matcher,
  /* [5] */ kBoolMatcher,
  /* [6] */ kI32Matcher,
  /* [7] */ kI8Matcher,
  /* [8] */ kU32Matcher,
  /* [9] */ kU64Matcher,
  /* [10] */ kU8Matcher,
  /* [11] */ kF32Matcher,
  /* [12] */ kF16Matcher,
  /* [13] */ kVec2Matcher,
  /* [14] */ kVec3Matcher,
  /* [15] */ kVec4Matcher,
  /* [16] */ kVecMatcher,
  /* [17] */ kRuntimeArrayMatcher,
  /* [18] */ kArrayMatcher,
  /* [19] */ kAtomicMatcher,
  /* [20] */ kPtrMatcher,
  /* [21] */ kSamplerMatcher,
  /* [22] */ kSamplerComparisonMatcher,
  /* [23] */ kTexture1DMatcher,
  /* [24] */ kTexture2DMatcher,
  /* [25] */ kTexture2DArrayMatcher,
  /* [26] */ kTexture3DMatcher,
  /* [27] */ kTextureCubeMatcher,
  /* [28] */ kTextureCubeArrayMatcher,
  /* [29] */ kTextureDepth2DMatcher,
  /* [30] */ kTextureDepth2DArrayMatcher,
  /* [31] */ kTextureDepthCubeMatcher,
  /* [32] */ kTextureDepthCubeArrayMatcher,
  /* [33] */ kTextureDepthMultisampled2DMatcher,
  /* [34] */ kTextureMultisampled2DMatcher,
  /* [35] */ kTextureStorage1DMatcher,
  /* [36] */ kTextureStorage2DMatcher,
  /* [37] */ kTextureStorage2DArrayMatcher,
  /* [38] */ kTextureStorage3DMatcher,
  /* [39] */ kSubgroupMatrixMatcher,
  /* [40] */ kBiasMatcher,
  /* [41] */ kGradient2DMatcher,
  /* [42] */ kGradient3DMatcher,
  /* [43] */ kGradientcubeMatcher,
  /* [44] */ kLevelMatcher,
  /* [45] */ kPackedVec3Matcher,
  /* [46] */ kStringMatcher,
  /* [47] */ kIu32Matcher,
  /* [48] */ kFiu32Matcher,
  /* [49] */ kF32F16Matcher,
  /* [50] */ kFiu32F16Matcher,
  /* [51] */ kIu8Matcher,
  /* [52] */ kScalarMatcher,
};

/// The template numbers, and number matchers
constexpr NumberMatcher kNumberMatchers[] = {
  /* [0] */ TemplateNumberMatcher<0>::matcher,
  /* [1] */ TemplateNumberMatcher<1>::matcher,
  /* [2] */ TemplateNumberMatcher<2>::matcher,
  /* [3] */ TemplateNumberMatcher<3>::matcher,
  /* [4] */ TemplateNumberMatcher<4>::matcher,
  /* [5] */ kReadWriteMatcher,
  /* [6] */ kReadableMatcher,
  /* [7] */ kWritableMatcher,
  /* [8] */ kFunctionMatcher,
  /* [9] */ kStorageMatcher,
  /* [10] */ kWorkgroupOrStorageMatcher,
  /* [11] */ kF32TexelFormatMatcher,
  /* [12] */ kI32TexelFormatMatcher,
  /* [13] */ kU32TexelFormatMatcher,
  /* [14] */ kSubgroupMatrixKindLeftMatcher,
  /* [15] */ kSubgroupMatrixKindRightMatcher,
  /* [16] */ kSubgroupMatrixKindResultMatcher,
};

constexpr MatcherIndex kMatcherIndices[] = {
  /* [0] */ MatcherIndex(20),
  /* [1] */ MatcherIndex(1),
  /* [2] */ MatcherIndex(18),
  /* [3] */ MatcherIndex(10),
  /* [4] */ MatcherIndex(3),
  /* [5] */ MatcherIndex(2),
  /* [6] */ MatcherIndex(20),
  /* [7] */ MatcherIndex(1),
  /* [8] */ MatcherIndex(19),
  /* [9] */ MatcherIndex(0),
  /* [10] */ MatcherIndex(5),
  /* [11] */ MatcherIndex(20),
  /* [12] */ MatcherIndex(9),
  /* [13] */ MatcherIndex(19),
  /* [14] */ MatcherIndex(9),
  /* [15] */ MatcherIndex(5),
  /* [16] */ MatcherIndex(39),
  /* [17] */ MatcherIndex(14),
  /* [18] */ MatcherIndex(1),
  /* [19] */ MatcherIndex(2),
  /* [20] */ MatcherIndex(3),
  /* [21] */ MatcherIndex(39),
  /* [22] */ MatcherIndex(16),
  /* [23] */ MatcherIndex(1),
  /* [24] */ MatcherIndex(2),
  /* [25] */ MatcherIndex(3),
  /* [26] */ MatcherIndex(39),
  /* [27] */ MatcherIndex(15),
  /* [28] */ MatcherIndex(1),
  /* [29] */ MatcherIndex(2),
  /* [30] */ MatcherIndex(3),
  /* [31] */ MatcherIndex(39),
  /* [32] */ MatcherIndex(1),
  /* [33] */ MatcherIndex(2),
  /* [34] */ MatcherIndex(3),
  /* [35] */ MatcherIndex(4),
  /* [36] */ MatcherIndex(39),
  /* [37] */ MatcherIndex(0),
  /* [38] */ MatcherIndex(1),
  /* [39] */ MatcherIndex(2),
  /* [40] */ MatcherIndex(3),
  /* [41] */ MatcherIndex(39),
  /* [42] */ MatcherIndex(16),
  /* [43] */ MatcherIndex(0),
  /* [44] */ MatcherIndex(1),
  /* [45] */ MatcherIndex(2),
  /* [46] */ MatcherIndex(39),
  /* [47] */ MatcherIndex(14),
  /* [48] */ MatcherIndex(0),
  /* [49] */ MatcherIndex(3),
  /* [50] */ MatcherIndex(2),
  /* [51] */ MatcherIndex(39),
  /* [52] */ MatcherIndex(15),
  /* [53] */ MatcherIndex(0),
  /* [54] */ MatcherIndex(1),
  /* [55] */ MatcherIndex(3),
  /* [56] */ MatcherIndex(20),
  /* [57] */ MatcherIndex(1),
  /* [58] */ MatcherIndex(17),
  /* [59] */ MatcherIndex(10),
  /* [60] */ MatcherIndex(2),
  /* [61] */ MatcherIndex(20),
  /* [62] */ MatcherIndex(8),
  /* [63] */ MatcherIndex(0),
  /* [64] */ MatcherIndex(5),
  /* [65] */ MatcherIndex(20),
  /* [66] */ MatcherIndex(10),
  /* [67] */ MatcherIndex(1),
  /* [68] */ MatcherIndex(6),
  /* [69] */ MatcherIndex(20),
  /* [70] */ MatcherIndex(10),
  /* [71] */ MatcherIndex(1),
  /* [72] */ MatcherIndex(7),
  /* [73] */ MatcherIndex(20),
  /* [74] */ MatcherIndex(1),
  /* [75] */ MatcherIndex(0),
  /* [76] */ MatcherIndex(2),
  /* [77] */ MatcherIndex(35),
  /* [78] */ MatcherIndex(0),
  /* [79] */ MatcherIndex(1),
  /* [80] */ MatcherIndex(36),
  /* [81] */ MatcherIndex(0),
  /* [82] */ MatcherIndex(1),
  /* [83] */ MatcherIndex(37),
  /* [84] */ MatcherIndex(0),
  /* [85] */ MatcherIndex(1),
  /* [86] */ MatcherIndex(38),
  /* [87] */ MatcherIndex(0),
  /* [88] */ MatcherIndex(1),
  /* [89] */ MatcherIndex(35),
  /* [90] */ MatcherIndex(11),
  /* [91] */ MatcherIndex(6),
  /* [92] */ MatcherIndex(36),
  /* [93] */ MatcherIndex(11),
  /* [94] */ MatcherIndex(6),
  /* [95] */ MatcherIndex(37),
  /* [96] */ MatcherIndex(11),
  /* [97] */ MatcherIndex(6),
  /* [98] */ MatcherIndex(38),
  /* [99] */ MatcherIndex(11),
  /* [100] */ MatcherIndex(6),
  /* [101] */ MatcherIndex(35),
  /* [102] */ MatcherIndex(12),
  /* [103] */ MatcherIndex(6),
  /* [104] */ MatcherIndex(36),
  /* [105] */ MatcherIndex(12),
  /* [106] */ MatcherIndex(6),
  /* [107] */ MatcherIndex(37),
  /* [108] */ MatcherIndex(12),
  /* [109] */ MatcherIndex(6),
  /* [110] */ MatcherIndex(38),
  /* [111] */ MatcherIndex(12),
  /* [112] */ MatcherIndex(6),
  /* [113] */ MatcherIndex(35),
  /* [114] */ MatcherIndex(13),
  /* [115] */ MatcherIndex(6),
  /* [116] */ MatcherIndex(36),
  /* [117] */ MatcherIndex(13),
  /* [118] */ MatcherIndex(6),
  /* [119] */ MatcherIndex(37),
  /* [120] */ MatcherIndex(13),
  /* [121] */ MatcherIndex(6),
  /* [122] */ MatcherIndex(38),
  /* [123] */ MatcherIndex(13),
  /* [124] */ MatcherIndex(6),
  /* [125] */ MatcherIndex(35),
  /* [126] */ MatcherIndex(11),
  /* [127] */ MatcherIndex(7),
  /* [128] */ MatcherIndex(36),
  /* [129] */ MatcherIndex(11),
  /* [130] */ MatcherIndex(7),
  /* [131] */ MatcherIndex(37),
  /* [132] */ MatcherIndex(11),
  /* [133] */ MatcherIndex(7),
  /* [134] */ MatcherIndex(38),
  /* [135] */ MatcherIndex(11),
  /* [136] */ MatcherIndex(7),
  /* [137] */ MatcherIndex(35),
  /* [138] */ MatcherIndex(12),
  /* [139] */ MatcherIndex(7),
  /* [140] */ MatcherIndex(36),
  /* [141] */ MatcherIndex(12),
  /* [142] */ MatcherIndex(7),
  /* [143] */ MatcherIndex(37),
  /* [144] */ MatcherIndex(12),
  /* [145] */ MatcherIndex(7),
  /* [146] */ MatcherIndex(38),
  /* [147] */ MatcherIndex(12),
  /* [148] */ MatcherIndex(7),
  /* [149] */ MatcherIndex(35),
  /* [150] */ MatcherIndex(13),
  /* [151] */ MatcherIndex(7),
  /* [152] */ MatcherIndex(36),
  /* [153] */ MatcherIndex(13),
  /* [154] */ MatcherIndex(7),
  /* [155] */ MatcherIndex(37),
  /* [156] */ MatcherIndex(13),
  /* [157] */ MatcherIndex(7),
  /* [158] */ MatcherIndex(38),
  /* [159] */ MatcherIndex(13),
  /* [160] */ MatcherIndex(7),
  /* [161] */ MatcherIndex(16),
  /* [162] */ MatcherIndex(0),
  /* [163] */ MatcherIndex(6),
  /* [164] */ MatcherIndex(24),
  /* [165] */ MatcherIndex(0),
  /* [166] */ MatcherIndex(13),
  /* [167] */ MatcherIndex(11),
  /* [168] */ MatcherIndex(25),
  /* [169] */ MatcherIndex(0),
  /* [170] */ MatcherIndex(27),
  /* [171] */ MatcherIndex(0),
  /* [172] */ MatcherIndex(14),
  /* [173] */ MatcherIndex(11),
  /* [174] */ MatcherIndex(28),
  /* [175] */ MatcherIndex(0),
  /* [176] */ MatcherIndex(15),
  /* [177] */ MatcherIndex(11),
  /* [178] */ MatcherIndex(23),
  /* [179] */ MatcherIndex(0),
  /* [180] */ MatcherIndex(26),
  /* [181] */ MatcherIndex(0),
  /* [182] */ MatcherIndex(34),
  /* [183] */ MatcherIndex(0),
  /* [184] */ MatcherIndex(13),
  /* [185] */ MatcherIndex(8),
  /* [186] */ MatcherIndex(14),
  /* [187] */ MatcherIndex(8),
  /* [188] */ MatcherIndex(15),
  /* [189] */ MatcherIndex(6),
  /* [190] */ MatcherIndex(15),
  /* [191] */ MatcherIndex(8),
  /* [192] */ MatcherIndex(23),
  /* [193] */ MatcherIndex(11),
  /* [194] */ MatcherIndex(24),
  /* [195] */ MatcherIndex(11),
  /* [196] */ MatcherIndex(25),
  /* [197] */ MatcherIndex(11),
  /* [198] */ MatcherIndex(26),
  /* [199] */ MatcherIndex(11),
  /* [200] */ MatcherIndex(14),
  /* [201] */ MatcherIndex(6),
  /* [202] */ MatcherIndex(27),
  /* [203] */ MatcherIndex(11),
  /* [204] */ MatcherIndex(28),
  /* [205] */ MatcherIndex(11),
  /* [206] */ MatcherIndex(45),
  /* [207] */ MatcherIndex(8),
  /* [208] */ MatcherIndex(45),
  /* [209] */ MatcherIndex(6),
  /* [210] */ MatcherIndex(45),
  /* [211] */ MatcherIndex(11),
  /* [212] */ MatcherIndex(14),
  /* [213] */ MatcherIndex(12),
  /* [214] */ MatcherIndex(45),
  /* [215] */ MatcherIndex(12),
  /* [216] */ MatcherIndex(13),
  /* [217] */ MatcherIndex(9),
  /* [218] */ MatcherIndex(47),
  /* [219] */ MatcherIndex(48),
  /* [220] */ MatcherIndex(21),
  /* [221] */ MatcherIndex(29),
  /* [222] */ MatcherIndex(30),
  /* [223] */ MatcherIndex(31),
  /* [224] */ MatcherIndex(32),
  /* [225] */ MatcherIndex(22),
  /* [226] */ MatcherIndex(33),
  /* [227] */ MatcherIndex(44),
  /* [228] */ MatcherIndex(40),
  /* [229] */ MatcherIndex(41),
  /* [230] */ MatcherIndex(42),
  /* [231] */ MatcherIndex(43),
  /* [232] */ MatcherIndex(49),
  /* [233] */ MatcherIndex(50),
  /* [234] */ MatcherIndex(52),
  /* [235] */ MatcherIndex(46),
};

static_assert(MatcherIndicesIndex::CanIndex(kMatcherIndices),
              "MatcherIndicesIndex is not large enough to index kMatcherIndices");

constexpr ParameterInfo kParameters[] = {
  {
    /* [0] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(222),
  },
  {
    /* [1] */
    /* usage */ core::ParameterUsage::kSampler,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(225),
  },
  {
    /* [2] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(166),
  },
  {
    /* [3] */
    /* usage */ core::ParameterUsage::kArrayIndex,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(9),
  },
  {
    /* [4] */
    /* usage */ core::ParameterUsage::kDepthRef,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(90),
  },
  {
    /* [5] */
    /* usage */ core::ParameterUsage::kLevel,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(227),
  },
  {
    /* [6] */
    /* usage */ core::ParameterUsage::kOffset,
    /* is_const */ true,
    /* matcher_indices */ MatcherIndicesIndex(114),
  },
  {
    /* [7] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(168),
  },
  {
    /* [8] */
    /* usage */ core::ParameterUsage::kSampler,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(220),
  },
  {
    /* [9] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(166),
  },
  {
    /* [10] */
    /* usage */ core::ParameterUsage::kArrayIndex,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(1),
  },
  {
    /* [11] */
    /* usage */ core::ParameterUsage::kOffset,
    /* is_const */ true,
    /* matcher_indices */ MatcherIndicesIndex(114),
  },
  {
    /* [12] */
    /* usage */ core::ParameterUsage::kComponent,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(62),
  },
  {
    /* [13] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(222),
  },
  {
    /* [14] */
    /* usage */ core::ParameterUsage::kSampler,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(225),
  },
  {
    /* [15] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(166),
  },
  {
    /* [16] */
    /* usage */ core::ParameterUsage::kArrayIndex,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(9),
  },
  {
    /* [17] */
    /* usage */ core::ParameterUsage::kDepthRef,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(90),
  },
  {
    /* [18] */
    /* usage */ core::ParameterUsage::kOffset,
    /* is_const */ true,
    /* matcher_indices */ MatcherIndicesIndex(114),
  },
  {
    /* [19] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(196),
  },
  {
    /* [20] */
    /* usage */ core::ParameterUsage::kSampler,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(220),
  },
  {
    /* [21] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(166),
  },
  {
    /* [22] */
    /* usage */ core::ParameterUsage::kArrayIndex,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(9),
  },
  {
    /* [23] */
    /* usage */ core::ParameterUsage::kLevel,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(227),
  },
  {
    /* [24] */
    /* usage */ core::ParameterUsage::kOffset,
    /* is_const */ true,
    /* matcher_indices */ MatcherIndicesIndex(114),
  },
  {
    /* [25] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(222),
  },
  {
    /* [26] */
    /* usage */ core::ParameterUsage::kSampler,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(220),
  },
  {
    /* [27] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(166),
  },
  {
    /* [28] */
    /* usage */ core::ParameterUsage::kArrayIndex,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(9),
  },
  {
    /* [29] */
    /* usage */ core::ParameterUsage::kLevel,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(227),
  },
  {
    /* [30] */
    /* usage */ core::ParameterUsage::kOffset,
    /* is_const */ true,
    /* matcher_indices */ MatcherIndicesIndex(114),
  },
  {
    /* [31] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(196),
  },
  {
    /* [32] */
    /* usage */ core::ParameterUsage::kSampler,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(220),
  },
  {
    /* [33] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(166),
  },
  {
    /* [34] */
    /* usage */ core::ParameterUsage::kArrayIndex,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(9),
  },
  {
    /* [35] */
    /* usage */ core::ParameterUsage::kBias,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(228),
  },
  {
    /* [36] */
    /* usage */ core::ParameterUsage::kOffset,
    /* is_const */ true,
    /* matcher_indices */ MatcherIndicesIndex(114),
  },
  {
    /* [37] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(196),
  },
  {
    /* [38] */
    /* usage */ core::ParameterUsage::kSampler,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(220),
  },
  {
    /* [39] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(166),
  },
  {
    /* [40] */
    /* usage */ core::ParameterUsage::kArrayIndex,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(9),
  },
  {
    /* [41] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(229),
  },
  {
    /* [42] */
    /* usage */ core::ParameterUsage::kOffset,
    /* is_const */ true,
    /* matcher_indices */ MatcherIndicesIndex(114),
  },
  {
    /* [43] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(221),
  },
  {
    /* [44] */
    /* usage */ core::ParameterUsage::kSampler,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(225),
  },
  {
    /* [45] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(166),
  },
  {
    /* [46] */
    /* usage */ core::ParameterUsage::kDepthRef,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(90),
  },
  {
    /* [47] */
    /* usage */ core::ParameterUsage::kLevel,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(227),
  },
  {
    /* [48] */
    /* usage */ core::ParameterUsage::kOffset,
    /* is_const */ true,
    /* matcher_indices */ MatcherIndicesIndex(114),
  },
  {
    /* [49] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(224),
  },
  {
    /* [50] */
    /* usage */ core::ParameterUsage::kSampler,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(225),
  },
  {
    /* [51] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(172),
  },
  {
    /* [52] */
    /* usage */ core::ParameterUsage::kArrayIndex,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(9),
  },
  {
    /* [53] */
    /* usage */ core::ParameterUsage::kDepthRef,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(90),
  },
  {
    /* [54] */
    /* usage */ core::ParameterUsage::kLevel,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(227),
  },
  {
    /* [55] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(6),
  },
  {
    /* [56] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(61),
  },
  {
    /* [57] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(9),
  },
  {
    /* [58] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(62),
  },
  {
    /* [59] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(62),
  },
  {
    /* [60] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(164),
  },
  {
    /* [61] */
    /* usage */ core::ParameterUsage::kSampler,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(220),
  },
  {
    /* [62] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(166),
  },
  {
    /* [63] */
    /* usage */ core::ParameterUsage::kOffset,
    /* is_const */ true,
    /* matcher_indices */ MatcherIndicesIndex(114),
  },
  {
    /* [64] */
    /* usage */ core::ParameterUsage::kComponent,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(62),
  },
  {
    /* [65] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(174),
  },
  {
    /* [66] */
    /* usage */ core::ParameterUsage::kSampler,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(220),
  },
  {
    /* [67] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(172),
  },
  {
    /* [68] */
    /* usage */ core::ParameterUsage::kArrayIndex,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(1),
  },
  {
    /* [69] */
    /* usage */ core::ParameterUsage::kComponent,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(62),
  },
  {
    /* [70] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(222),
  },
  {
    /* [71] */
    /* usage */ core::ParameterUsage::kSampler,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(220),
  },
  {
    /* [72] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(166),
  },
  {
    /* [73] */
    /* usage */ core::ParameterUsage::kArrayIndex,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(9),
  },
  {
    /* [74] */
    /* usage */ core::ParameterUsage::kOffset,
    /* is_const */ true,
    /* matcher_indices */ MatcherIndicesIndex(114),
  },
  {
    /* [75] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(221),
  },
  {
    /* [76] */
    /* usage */ core::ParameterUsage::kSampler,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(225),
  },
  {
    /* [77] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(166),
  },
  {
    /* [78] */
    /* usage */ core::ParameterUsage::kDepthRef,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(90),
  },
  {
    /* [79] */
    /* usage */ core::ParameterUsage::kOffset,
    /* is_const */ true,
    /* matcher_indices */ MatcherIndicesIndex(114),
  },
  {
    /* [80] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(196),
  },
  {
    /* [81] */
    /* usage */ core::ParameterUsage::kSampler,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(220),
  },
  {
    /* [82] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(166),
  },
  {
    /* [83] */
    /* usage */ core::ParameterUsage::kArrayIndex,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(9),
  },
  {
    /* [84] */
    /* usage */ core::ParameterUsage::kOffset,
    /* is_const */ true,
    /* matcher_indices */ MatcherIndicesIndex(114),
  },
  {
    /* [85] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(194),
  },
  {
    /* [86] */
    /* usage */ core::ParameterUsage::kSampler,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(220),
  },
  {
    /* [87] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(166),
  },
  {
    /* [88] */
    /* usage */ core::ParameterUsage::kLevel,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(227),
  },
  {
    /* [89] */
    /* usage */ core::ParameterUsage::kOffset,
    /* is_const */ true,
    /* matcher_indices */ MatcherIndicesIndex(114),
  },
  {
    /* [90] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(198),
  },
  {
    /* [91] */
    /* usage */ core::ParameterUsage::kSampler,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(220),
  },
  {
    /* [92] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(172),
  },
  {
    /* [93] */
    /* usage */ core::ParameterUsage::kLevel,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(227),
  },
  {
    /* [94] */
    /* usage */ core::ParameterUsage::kOffset,
    /* is_const */ true,
    /* matcher_indices */ MatcherIndicesIndex(200),
  },
  {
    /* [95] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(204),
  },
  {
    /* [96] */
    /* usage */ core::ParameterUsage::kSampler,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(220),
  },
  {
    /* [97] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(172),
  },
  {
    /* [98] */
    /* usage */ core::ParameterUsage::kArrayIndex,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(9),
  },
  {
    /* [99] */
    /* usage */ core::ParameterUsage::kLevel,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(227),
  },
  {
    /* [100] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(221),
  },
  {
    /* [101] */
    /* usage */ core::ParameterUsage::kSampler,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(220),
  },
  {
    /* [102] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(166),
  },
  {
    /* [103] */
    /* usage */ core::ParameterUsage::kLevel,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(227),
  },
  {
    /* [104] */
    /* usage */ core::ParameterUsage::kOffset,
    /* is_const */ true,
    /* matcher_indices */ MatcherIndicesIndex(114),
  },
  {
    /* [105] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(224),
  },
  {
    /* [106] */
    /* usage */ core::ParameterUsage::kSampler,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(220),
  },
  {
    /* [107] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(172),
  },
  {
    /* [108] */
    /* usage */ core::ParameterUsage::kArrayIndex,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(9),
  },
  {
    /* [109] */
    /* usage */ core::ParameterUsage::kLevel,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(227),
  },
  {
    /* [110] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(194),
  },
  {
    /* [111] */
    /* usage */ core::ParameterUsage::kSampler,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(220),
  },
  {
    /* [112] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(166),
  },
  {
    /* [113] */
    /* usage */ core::ParameterUsage::kBias,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(228),
  },
  {
    /* [114] */
    /* usage */ core::ParameterUsage::kOffset,
    /* is_const */ true,
    /* matcher_indices */ MatcherIndicesIndex(114),
  },
  {
    /* [115] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(198),
  },
  {
    /* [116] */
    /* usage */ core::ParameterUsage::kSampler,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(220),
  },
  {
    /* [117] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(172),
  },
  {
    /* [118] */
    /* usage */ core::ParameterUsage::kBias,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(228),
  },
  {
    /* [119] */
    /* usage */ core::ParameterUsage::kOffset,
    /* is_const */ true,
    /* matcher_indices */ MatcherIndicesIndex(200),
  },
  {
    /* [120] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(204),
  },
  {
    /* [121] */
    /* usage */ core::ParameterUsage::kSampler,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(220),
  },
  {
    /* [122] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(172),
  },
  {
    /* [123] */
    /* usage */ core::ParameterUsage::kArrayIndex,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(9),
  },
  {
    /* [124] */
    /* usage */ core::ParameterUsage::kBias,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(228),
  },
  {
    /* [125] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(194),
  },
  {
    /* [126] */
    /* usage */ core::ParameterUsage::kSampler,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(220),
  },
  {
    /* [127] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(166),
  },
  {
    /* [128] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(229),
  },
  {
    /* [129] */
    /* usage */ core::ParameterUsage::kOffset,
    /* is_const */ true,
    /* matcher_indices */ MatcherIndicesIndex(114),
  },
  {
    /* [130] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(198),
  },
  {
    /* [131] */
    /* usage */ core::ParameterUsage::kSampler,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(220),
  },
  {
    /* [132] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(172),
  },
  {
    /* [133] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(230),
  },
  {
    /* [134] */
    /* usage */ core::ParameterUsage::kOffset,
    /* is_const */ true,
    /* matcher_indices */ MatcherIndicesIndex(200),
  },
  {
    /* [135] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(204),
  },
  {
    /* [136] */
    /* usage */ core::ParameterUsage::kSampler,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(220),
  },
  {
    /* [137] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(172),
  },
  {
    /* [138] */
    /* usage */ core::ParameterUsage::kArrayIndex,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(9),
  },
  {
    /* [139] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(231),
  },
  {
    /* [140] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(223),
  },
  {
    /* [141] */
    /* usage */ core::ParameterUsage::kSampler,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(225),
  },
  {
    /* [142] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(172),
  },
  {
    /* [143] */
    /* usage */ core::ParameterUsage::kDepthRef,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(90),
  },
  {
    /* [144] */
    /* usage */ core::ParameterUsage::kLevel,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(227),
  },
  {
    /* [145] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(36),
  },
  {
    /* [146] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(65),
  },
  {
    /* [147] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(12),
  },
  {
    /* [148] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(216),
  },
  {
    /* [149] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(10),
  },
  {
    /* [150] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(36),
  },
  {
    /* [151] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(69),
  },
  {
    /* [152] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(12),
  },
  {
    /* [153] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(216),
  },
  {
    /* [154] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(10),
  },
  {
    /* [155] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(235),
  },
  {
    /* [156] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(62),
  },
  {
    /* [157] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(62),
  },
  {
    /* [158] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(62),
  },
  {
    /* [159] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(9),
  },
  {
    /* [160] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(9),
  },
  {
    /* [161] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(68),
  },
  {
    /* [162] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(235),
  },
  {
    /* [163] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(62),
  },
  {
    /* [164] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(62),
  },
  {
    /* [165] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(62),
  },
  {
    /* [166] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(42),
  },
  {
    /* [167] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(42),
  },
  {
    /* [168] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(1),
  },
  {
    /* [169] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(42),
  },
  {
    /* [170] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(161),
  },
  {
    /* [171] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(235),
  },
  {
    /* [172] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(90),
  },
  {
    /* [173] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(90),
  },
  {
    /* [174] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(90),
  },
  {
    /* [175] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(9),
  },
  {
    /* [176] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(235),
  },
  {
    /* [177] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(90),
  },
  {
    /* [178] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(90),
  },
  {
    /* [179] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(90),
  },
  {
    /* [180] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(42),
  },
  {
    /* [181] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(62),
  },
  {
    /* [182] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(170),
  },
  {
    /* [183] */
    /* usage */ core::ParameterUsage::kSampler,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(220),
  },
  {
    /* [184] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(172),
  },
  {
    /* [185] */
    /* usage */ core::ParameterUsage::kComponent,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(62),
  },
  {
    /* [186] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(221),
  },
  {
    /* [187] */
    /* usage */ core::ParameterUsage::kSampler,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(220),
  },
  {
    /* [188] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(166),
  },
  {
    /* [189] */
    /* usage */ core::ParameterUsage::kOffset,
    /* is_const */ true,
    /* matcher_indices */ MatcherIndicesIndex(114),
  },
  {
    /* [190] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(168),
  },
  {
    /* [191] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(184),
  },
  {
    /* [192] */
    /* usage */ core::ParameterUsage::kArrayIndex,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(1),
  },
  {
    /* [193] */
    /* usage */ core::ParameterUsage::kLevel,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(5),
  },
  {
    /* [194] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(222),
  },
  {
    /* [195] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(184),
  },
  {
    /* [196] */
    /* usage */ core::ParameterUsage::kArrayIndex,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(9),
  },
  {
    /* [197] */
    /* usage */ core::ParameterUsage::kLevel,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(1),
  },
  {
    /* [198] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(194),
  },
  {
    /* [199] */
    /* usage */ core::ParameterUsage::kSampler,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(220),
  },
  {
    /* [200] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(166),
  },
  {
    /* [201] */
    /* usage */ core::ParameterUsage::kOffset,
    /* is_const */ true,
    /* matcher_indices */ MatcherIndicesIndex(114),
  },
  {
    /* [202] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(198),
  },
  {
    /* [203] */
    /* usage */ core::ParameterUsage::kSampler,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(220),
  },
  {
    /* [204] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(172),
  },
  {
    /* [205] */
    /* usage */ core::ParameterUsage::kOffset,
    /* is_const */ true,
    /* matcher_indices */ MatcherIndicesIndex(200),
  },
  {
    /* [206] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(202),
  },
  {
    /* [207] */
    /* usage */ core::ParameterUsage::kSampler,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(220),
  },
  {
    /* [208] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(172),
  },
  {
    /* [209] */
    /* usage */ core::ParameterUsage::kLevel,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(227),
  },
  {
    /* [210] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(223),
  },
  {
    /* [211] */
    /* usage */ core::ParameterUsage::kSampler,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(220),
  },
  {
    /* [212] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(172),
  },
  {
    /* [213] */
    /* usage */ core::ParameterUsage::kLevel,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(227),
  },
  {
    /* [214] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(202),
  },
  {
    /* [215] */
    /* usage */ core::ParameterUsage::kSampler,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(220),
  },
  {
    /* [216] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(172),
  },
  {
    /* [217] */
    /* usage */ core::ParameterUsage::kBias,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(228),
  },
  {
    /* [218] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(202),
  },
  {
    /* [219] */
    /* usage */ core::ParameterUsage::kSampler,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(220),
  },
  {
    /* [220] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(172),
  },
  {
    /* [221] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(231),
  },
  {
    /* [222] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(131),
  },
  {
    /* [223] */
    /* usage */ core::ParameterUsage::kValue,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(176),
  },
  {
    /* [224] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(184),
  },
  {
    /* [225] */
    /* usage */ core::ParameterUsage::kArrayIndex,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(9),
  },
  {
    /* [226] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(143),
  },
  {
    /* [227] */
    /* usage */ core::ParameterUsage::kValue,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(188),
  },
  {
    /* [228] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(184),
  },
  {
    /* [229] */
    /* usage */ core::ParameterUsage::kArrayIndex,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(9),
  },
  {
    /* [230] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(155),
  },
  {
    /* [231] */
    /* usage */ core::ParameterUsage::kValue,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(190),
  },
  {
    /* [232] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(184),
  },
  {
    /* [233] */
    /* usage */ core::ParameterUsage::kArrayIndex,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(9),
  },
  {
    /* [234] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(41),
  },
  {
    /* [235] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(46),
  },
  {
    /* [236] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(51),
  },
  {
    /* [237] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(41),
  },
  {
    /* [238] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(235),
  },
  {
    /* [239] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(62),
  },
  {
    /* [240] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(62),
  },
  {
    /* [241] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(9),
  },
  {
    /* [242] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(235),
  },
  {
    /* [243] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(62),
  },
  {
    /* [244] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(62),
  },
  {
    /* [245] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(42),
  },
  {
    /* [246] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(6),
  },
  {
    /* [247] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(9),
  },
  {
    /* [248] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(62),
  },
  {
    /* [249] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(11),
  },
  {
    /* [250] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(12),
  },
  {
    /* [251] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(62),
  },
  {
    /* [252] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(164),
  },
  {
    /* [253] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(184),
  },
  {
    /* [254] */
    /* usage */ core::ParameterUsage::kLevel,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(1),
  },
  {
    /* [255] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(180),
  },
  {
    /* [256] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(186),
  },
  {
    /* [257] */
    /* usage */ core::ParameterUsage::kLevel,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(1),
  },
  {
    /* [258] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(182),
  },
  {
    /* [259] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(184),
  },
  {
    /* [260] */
    /* usage */ core::ParameterUsage::kSampleIndex,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(1),
  },
  {
    /* [261] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(221),
  },
  {
    /* [262] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(184),
  },
  {
    /* [263] */
    /* usage */ core::ParameterUsage::kLevel,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(9),
  },
  {
    /* [264] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(226),
  },
  {
    /* [265] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(184),
  },
  {
    /* [266] */
    /* usage */ core::ParameterUsage::kSampleIndex,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(9),
  },
  {
    /* [267] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(95),
  },
  {
    /* [268] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(184),
  },
  {
    /* [269] */
    /* usage */ core::ParameterUsage::kArrayIndex,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(9),
  },
  {
    /* [270] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(107),
  },
  {
    /* [271] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(184),
  },
  {
    /* [272] */
    /* usage */ core::ParameterUsage::kArrayIndex,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(9),
  },
  {
    /* [273] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(119),
  },
  {
    /* [274] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(184),
  },
  {
    /* [275] */
    /* usage */ core::ParameterUsage::kArrayIndex,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(9),
  },
  {
    /* [276] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(192),
  },
  {
    /* [277] */
    /* usage */ core::ParameterUsage::kSampler,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(220),
  },
  {
    /* [278] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(90),
  },
  {
    /* [279] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(125),
  },
  {
    /* [280] */
    /* usage */ core::ParameterUsage::kValue,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(176),
  },
  {
    /* [281] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(62),
  },
  {
    /* [282] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(128),
  },
  {
    /* [283] */
    /* usage */ core::ParameterUsage::kValue,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(176),
  },
  {
    /* [284] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(184),
  },
  {
    /* [285] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(134),
  },
  {
    /* [286] */
    /* usage */ core::ParameterUsage::kValue,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(176),
  },
  {
    /* [287] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(186),
  },
  {
    /* [288] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(137),
  },
  {
    /* [289] */
    /* usage */ core::ParameterUsage::kValue,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(188),
  },
  {
    /* [290] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(62),
  },
  {
    /* [291] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(140),
  },
  {
    /* [292] */
    /* usage */ core::ParameterUsage::kValue,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(188),
  },
  {
    /* [293] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(184),
  },
  {
    /* [294] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(146),
  },
  {
    /* [295] */
    /* usage */ core::ParameterUsage::kValue,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(188),
  },
  {
    /* [296] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(186),
  },
  {
    /* [297] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(149),
  },
  {
    /* [298] */
    /* usage */ core::ParameterUsage::kValue,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(190),
  },
  {
    /* [299] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(62),
  },
  {
    /* [300] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(152),
  },
  {
    /* [301] */
    /* usage */ core::ParameterUsage::kValue,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(190),
  },
  {
    /* [302] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(184),
  },
  {
    /* [303] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(158),
  },
  {
    /* [304] */
    /* usage */ core::ParameterUsage::kValue,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(190),
  },
  {
    /* [305] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(186),
  },
  {
    /* [306] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(6),
  },
  {
    /* [307] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(62),
  },
  {
    /* [308] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(164),
  },
  {
    /* [309] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(62),
  },
  {
    /* [310] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(168),
  },
  {
    /* [311] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(62),
  },
  {
    /* [312] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(180),
  },
  {
    /* [313] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(62),
  },
  {
    /* [314] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(170),
  },
  {
    /* [315] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(62),
  },
  {
    /* [316] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(174),
  },
  {
    /* [317] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(62),
  },
  {
    /* [318] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(221),
  },
  {
    /* [319] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(62),
  },
  {
    /* [320] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(222),
  },
  {
    /* [321] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(62),
  },
  {
    /* [322] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(223),
  },
  {
    /* [323] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(62),
  },
  {
    /* [324] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(224),
  },
  {
    /* [325] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(62),
  },
  {
    /* [326] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(80),
  },
  {
    /* [327] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(62),
  },
  {
    /* [328] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(83),
  },
  {
    /* [329] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(62),
  },
  {
    /* [330] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(86),
  },
  {
    /* [331] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(62),
  },
  {
    /* [332] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(178),
  },
  {
    /* [333] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(62),
  },
  {
    /* [334] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(89),
  },
  {
    /* [335] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(62),
  },
  {
    /* [336] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(92),
  },
  {
    /* [337] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(184),
  },
  {
    /* [338] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(98),
  },
  {
    /* [339] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(186),
  },
  {
    /* [340] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(101),
  },
  {
    /* [341] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(62),
  },
  {
    /* [342] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(104),
  },
  {
    /* [343] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(184),
  },
  {
    /* [344] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(110),
  },
  {
    /* [345] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(186),
  },
  {
    /* [346] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(113),
  },
  {
    /* [347] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(62),
  },
  {
    /* [348] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(116),
  },
  {
    /* [349] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(184),
  },
  {
    /* [350] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(122),
  },
  {
    /* [351] */
    /* usage */ core::ParameterUsage::kCoords,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(186),
  },
  {
    /* [352] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(56),
  },
  {
    /* [353] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(62),
  },
  {
    /* [354] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(0),
  },
  {
    /* [355] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(62),
  },
  {
    /* [356] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(73),
  },
  {
    /* [357] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(62),
  },
  {
    /* [358] */
    /* usage */ core::ParameterUsage::kTexture,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(77),
  },
  {
    /* [359] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(206),
  },
  {
    /* [360] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(208),
  },
  {
    /* [361] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(210),
  },
  {
    /* [362] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(214),
  },
  {
    /* [363] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(186),
  },
  {
    /* [364] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(200),
  },
  {
    /* [365] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(172),
  },
  {
    /* [366] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(212),
  },
  {
    /* [367] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(16),
  },
  {
    /* [368] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(21),
  },
  {
    /* [369] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(26),
  },
  {
    /* [370] */
    /* usage */ core::ParameterUsage::kNone,
    /* is_const */ false,
    /* matcher_indices */ MatcherIndicesIndex(5),
  },
};

static_assert(ParameterIndex::CanIndex(kParameters),
              "ParameterIndex is not large enough to index kParameters");

constexpr TemplateInfo kTemplates[] = {
  {
    /* [0] */
    /* name */ "T",
    /* matcher_indices */ MatcherIndicesIndex(31),
    /* kind */ TemplateInfo::Kind::kType,
  },
  {
    /* [1] */
    /* name */ "K",
    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* kind */ TemplateInfo::Kind::kNumber,
  },
  {
    /* [2] */
    /* name */ "S",
    /* matcher_indices */ MatcherIndicesIndex(232),
    /* kind */ TemplateInfo::Kind::kType,
  },
  {
    /* [3] */
    /* name */ "C",
    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* kind */ TemplateInfo::Kind::kNumber,
  },
  {
    /* [4] */
    /* name */ "R",
    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* kind */ TemplateInfo::Kind::kNumber,
  },
  {
    /* [5] */
    /* name */ "K",
    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* kind */ TemplateInfo::Kind::kNumber,
  },
  {
    /* [6] */
    /* name */ "T",
    /* matcher_indices */ MatcherIndicesIndex(16),
    /* kind */ TemplateInfo::Kind::kType,
  },
  {
    /* [7] */
    /* name */ "S",
    /* matcher_indices */ MatcherIndicesIndex(232),
    /* kind */ TemplateInfo::Kind::kType,
  },
  {
    /* [8] */
    /* name */ "C",
    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* kind */ TemplateInfo::Kind::kNumber,
  },
  {
    /* [9] */
    /* name */ "R",
    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* kind */ TemplateInfo::Kind::kNumber,
  },
  {
    /* [10] */
    /* name */ "T",
    /* matcher_indices */ MatcherIndicesIndex(21),
    /* kind */ TemplateInfo::Kind::kType,
  },
  {
    /* [11] */
    /* name */ "S",
    /* matcher_indices */ MatcherIndicesIndex(232),
    /* kind */ TemplateInfo::Kind::kType,
  },
  {
    /* [12] */
    /* name */ "C",
    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* kind */ TemplateInfo::Kind::kNumber,
  },
  {
    /* [13] */
    /* name */ "R",
    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* kind */ TemplateInfo::Kind::kNumber,
  },
  {
    /* [14] */
    /* name */ "T",
    /* matcher_indices */ MatcherIndicesIndex(26),
    /* kind */ TemplateInfo::Kind::kType,
  },
  {
    /* [15] */
    /* name */ "S",
    /* matcher_indices */ MatcherIndicesIndex(232),
    /* kind */ TemplateInfo::Kind::kType,
  },
  {
    /* [16] */
    /* name */ "C",
    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* kind */ TemplateInfo::Kind::kNumber,
  },
  {
    /* [17] */
    /* name */ "R",
    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* kind */ TemplateInfo::Kind::kNumber,
  },
  {
    /* [18] */
    /* name */ "T",
    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* kind */ TemplateInfo::Kind::kType,
  },
  {
    /* [19] */
    /* name */ "S",
    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* kind */ TemplateInfo::Kind::kNumber,
  },
  {
    /* [20] */
    /* name */ "A",
    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* kind */ TemplateInfo::Kind::kNumber,
  },
  {
    /* [21] */
    /* name */ "N",
    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* kind */ TemplateInfo::Kind::kNumber,
  },
  {
    /* [22] */
    /* name */ "T",
    /* matcher_indices */ MatcherIndicesIndex(232),
    /* kind */ TemplateInfo::Kind::kType,
  },
  {
    /* [23] */
    /* name */ "T",
    /* matcher_indices */ MatcherIndicesIndex(219),
    /* kind */ TemplateInfo::Kind::kType,
  },
  {
    /* [24] */
    /* name */ "A",
    /* matcher_indices */ MatcherIndicesIndex(218),
    /* kind */ TemplateInfo::Kind::kType,
  },
  {
    /* [25] */
    /* name */ "L",
    /* matcher_indices */ MatcherIndicesIndex(218),
    /* kind */ TemplateInfo::Kind::kType,
  },
  {
    /* [26] */
    /* name */ "T",
    /* matcher_indices */ MatcherIndicesIndex(218),
    /* kind */ TemplateInfo::Kind::kType,
  },
  {
    /* [27] */
    /* name */ "S",
    /* matcher_indices */ MatcherIndicesIndex(3),
    /* kind */ TemplateInfo::Kind::kNumber,
  },
  {
    /* [28] */
    /* name */ "F",
    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* kind */ TemplateInfo::Kind::kNumber,
  },
  {
    /* [29] */
    /* name */ "A",
    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* kind */ TemplateInfo::Kind::kNumber,
  },
  {
    /* [30] */
    /* name */ "T",
    /* matcher_indices */ MatcherIndicesIndex(219),
    /* kind */ TemplateInfo::Kind::kType,
  },
  {
    /* [31] */
    /* name */ "L",
    /* matcher_indices */ MatcherIndicesIndex(218),
    /* kind */ TemplateInfo::Kind::kType,
  },
  {
    /* [32] */
    /* name */ "T",
    /* matcher_indices */ MatcherIndicesIndex(219),
    /* kind */ TemplateInfo::Kind::kType,
  },
  {
    /* [33] */
    /* name */ "S",
    /* matcher_indices */ MatcherIndicesIndex(218),
    /* kind */ TemplateInfo::Kind::kType,
  },
  {
    /* [34] */
    /* name */ "N",
    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* kind */ TemplateInfo::Kind::kNumber,
  },
  {
    /* [35] */
    /* name */ "T",
    /* matcher_indices */ MatcherIndicesIndex(233),
    /* kind */ TemplateInfo::Kind::kType,
  },
  {
    /* [36] */
    /* name */ "N",
    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* kind */ TemplateInfo::Kind::kNumber,
  },
  {
    /* [37] */
    /* name */ "T",
    /* matcher_indices */ MatcherIndicesIndex(234),
    /* kind */ TemplateInfo::Kind::kType,
  },
};

static_assert(TemplateIndex::CanIndex(kTemplates),
              "TemplateIndex is not large enough to index kTemplates");

constexpr OverloadInfo kOverloads[] = {
  {
    /* [0] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 3,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(276),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [1] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 3,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(85),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [2] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 4,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(198),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [3] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 4,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(24),
    /* parameters */ ParameterIndex(19),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [4] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 5,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(24),
    /* parameters */ ParameterIndex(80),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [5] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 3,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(90),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [6] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 4,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(202),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [7] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 3,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(206),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [8] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 4,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(24),
    /* parameters */ ParameterIndex(95),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [9] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 3,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(100),
    /* return_matcher_indices */ MatcherIndicesIndex(90),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [10] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 4,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(186),
    /* return_matcher_indices */ MatcherIndicesIndex(90),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [11] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 4,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(24),
    /* parameters */ ParameterIndex(25),
    /* return_matcher_indices */ MatcherIndicesIndex(90),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [12] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 5,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(24),
    /* parameters */ ParameterIndex(70),
    /* return_matcher_indices */ MatcherIndicesIndex(90),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [13] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 3,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(210),
    /* return_matcher_indices */ MatcherIndicesIndex(90),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [14] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 4,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(24),
    /* parameters */ ParameterIndex(105),
    /* return_matcher_indices */ MatcherIndicesIndex(90),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [15] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 4,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(85),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [16] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 5,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(85),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [17] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 5,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(24),
    /* parameters */ ParameterIndex(19),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [18] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 6,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(24),
    /* parameters */ ParameterIndex(19),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [19] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 4,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(90),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [20] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 5,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(90),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [21] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 4,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(206),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [22] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 5,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(24),
    /* parameters */ ParameterIndex(95),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [23] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 4,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(100),
    /* return_matcher_indices */ MatcherIndicesIndex(90),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [24] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 5,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(100),
    /* return_matcher_indices */ MatcherIndicesIndex(90),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [25] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 5,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(24),
    /* parameters */ ParameterIndex(25),
    /* return_matcher_indices */ MatcherIndicesIndex(90),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [26] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 6,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(24),
    /* parameters */ ParameterIndex(25),
    /* return_matcher_indices */ MatcherIndicesIndex(90),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [27] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 4,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(210),
    /* return_matcher_indices */ MatcherIndicesIndex(90),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [28] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 5,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(24),
    /* parameters */ ParameterIndex(105),
    /* return_matcher_indices */ MatcherIndicesIndex(90),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [29] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 4,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(110),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [30] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 5,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(110),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [31] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 5,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(24),
    /* parameters */ ParameterIndex(31),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [32] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 6,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(24),
    /* parameters */ ParameterIndex(31),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [33] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 4,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(115),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [34] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 5,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(115),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [35] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 4,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(214),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [36] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 5,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(24),
    /* parameters */ ParameterIndex(120),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [37] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 4,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(125),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [38] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 5,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(125),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [39] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 5,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(24),
    /* parameters */ ParameterIndex(37),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [40] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 6,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(24),
    /* parameters */ ParameterIndex(37),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [41] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 4,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(130),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [42] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 5,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(130),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [43] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 4,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(218),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [44] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 5,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(24),
    /* parameters */ ParameterIndex(135),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [45] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(23),
    /* parameters */ ParameterIndex(332),
    /* return_matcher_indices */ MatcherIndicesIndex(52),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [46] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 3,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 2,
    /* templates */ TemplateIndex(30),
    /* parameters */ ParameterIndex(252),
    /* return_matcher_indices */ MatcherIndicesIndex(52),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [47] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 4,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 3,
    /* templates */ TemplateIndex(23),
    /* parameters */ ParameterIndex(190),
    /* return_matcher_indices */ MatcherIndicesIndex(52),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [48] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 3,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 2,
    /* templates */ TemplateIndex(30),
    /* parameters */ ParameterIndex(255),
    /* return_matcher_indices */ MatcherIndicesIndex(52),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [49] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 3,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 2,
    /* templates */ TemplateIndex(32),
    /* parameters */ ParameterIndex(258),
    /* return_matcher_indices */ MatcherIndicesIndex(52),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [50] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 3,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(25),
    /* parameters */ ParameterIndex(261),
    /* return_matcher_indices */ MatcherIndicesIndex(90),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [51] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 4,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 2,
    /* templates */ TemplateIndex(24),
    /* parameters */ ParameterIndex(194),
    /* return_matcher_indices */ MatcherIndicesIndex(90),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [52] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 3,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(33),
    /* parameters */ ParameterIndex(264),
    /* return_matcher_indices */ MatcherIndicesIndex(90),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [53] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(334),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [54] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(336),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [55] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 3,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(24),
    /* parameters */ ParameterIndex(267),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [56] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(338),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [57] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(340),
    /* return_matcher_indices */ MatcherIndicesIndex(188),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [58] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(342),
    /* return_matcher_indices */ MatcherIndicesIndex(188),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [59] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 3,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(24),
    /* parameters */ ParameterIndex(270),
    /* return_matcher_indices */ MatcherIndicesIndex(188),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [60] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(344),
    /* return_matcher_indices */ MatcherIndicesIndex(188),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [61] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(346),
    /* return_matcher_indices */ MatcherIndicesIndex(190),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [62] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(348),
    /* return_matcher_indices */ MatcherIndicesIndex(190),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [63] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 3,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(24),
    /* parameters */ ParameterIndex(273),
    /* return_matcher_indices */ MatcherIndicesIndex(190),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [64] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(350),
    /* return_matcher_indices */ MatcherIndicesIndex(190),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [65] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(23),
    /* parameters */ ParameterIndex(332),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [66] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(23),
    /* parameters */ ParameterIndex(308),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [67] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(23),
    /* parameters */ ParameterIndex(310),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [68] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(23),
    /* parameters */ ParameterIndex(312),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [69] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(23),
    /* parameters */ ParameterIndex(314),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [70] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(23),
    /* parameters */ ParameterIndex(316),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [71] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(23),
    /* parameters */ ParameterIndex(258),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [72] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(318),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [73] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(320),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [74] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(322),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [75] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(324),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [76] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(264),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [77] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 2,
    /* templates */ TemplateIndex(28),
    /* parameters */ ParameterIndex(358),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [78] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 2,
    /* templates */ TemplateIndex(28),
    /* parameters */ ParameterIndex(326),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [79] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 2,
    /* templates */ TemplateIndex(28),
    /* parameters */ ParameterIndex(328),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [80] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 2,
    /* templates */ TemplateIndex(28),
    /* parameters */ ParameterIndex(330),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [81] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(23),
    /* parameters */ ParameterIndex(308),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [82] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(23),
    /* parameters */ ParameterIndex(310),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [83] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(23),
    /* parameters */ ParameterIndex(312),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [84] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(23),
    /* parameters */ ParameterIndex(314),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [85] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(23),
    /* parameters */ ParameterIndex(316),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [86] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(23),
    /* parameters */ ParameterIndex(258),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [87] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(318),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [88] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(320),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [89] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(322),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [90] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(324),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [91] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(264),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [92] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 2,
    /* templates */ TemplateIndex(28),
    /* parameters */ ParameterIndex(326),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [93] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 2,
    /* templates */ TemplateIndex(28),
    /* parameters */ ParameterIndex(328),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [94] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 2,
    /* templates */ TemplateIndex(28),
    /* parameters */ ParameterIndex(330),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [95] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(359),
    /* return_matcher_indices */ MatcherIndicesIndex(186),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [96] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(360),
    /* return_matcher_indices */ MatcherIndicesIndex(200),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [97] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(361),
    /* return_matcher_indices */ MatcherIndicesIndex(172),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [98] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(362),
    /* return_matcher_indices */ MatcherIndicesIndex(212),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [99] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(363),
    /* return_matcher_indices */ MatcherIndicesIndex(206),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [100] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(364),
    /* return_matcher_indices */ MatcherIndicesIndex(208),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [101] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(365),
    /* return_matcher_indices */ MatcherIndicesIndex(210),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [102] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(366),
    /* return_matcher_indices */ MatcherIndicesIndex(214),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [103] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(58),
    /* return_matcher_indices */ MatcherIndicesIndex(12),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [104] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 1,
    /* num_templates   */ 4,
    /* templates */ TemplateIndex(6),
    /* parameters */ ParameterIndex(367),
    /* return_matcher_indices */ MatcherIndicesIndex(9),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [105] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 1,
    /* num_templates   */ 4,
    /* templates */ TemplateIndex(10),
    /* parameters */ ParameterIndex(368),
    /* return_matcher_indices */ MatcherIndicesIndex(9),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [106] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 1,
    /* num_templates   */ 4,
    /* templates */ TemplateIndex(6),
    /* parameters */ ParameterIndex(369),
    /* return_matcher_indices */ MatcherIndicesIndex(9),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [107] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 1,
    /* num_templates   */ 4,
    /* templates */ TemplateIndex(6),
    /* parameters */ ParameterIndex(368),
    /* return_matcher_indices */ MatcherIndicesIndex(9),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [108] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 1,
    /* num_templates   */ 4,
    /* templates */ TemplateIndex(14),
    /* parameters */ ParameterIndex(368),
    /* return_matcher_indices */ MatcherIndicesIndex(9),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [109] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 4,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(43),
    /* return_matcher_indices */ MatcherIndicesIndex(90),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [110] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 5,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(75),
    /* return_matcher_indices */ MatcherIndicesIndex(90),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [111] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 5,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(24),
    /* parameters */ ParameterIndex(0),
    /* return_matcher_indices */ MatcherIndicesIndex(90),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [112] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 6,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(24),
    /* parameters */ ParameterIndex(13),
    /* return_matcher_indices */ MatcherIndicesIndex(90),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [113] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 4,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(140),
    /* return_matcher_indices */ MatcherIndicesIndex(90),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [114] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 5,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(24),
    /* parameters */ ParameterIndex(49),
    /* return_matcher_indices */ MatcherIndicesIndex(90),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [115] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 5,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(43),
    /* return_matcher_indices */ MatcherIndicesIndex(90),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [116] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 6,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(43),
    /* return_matcher_indices */ MatcherIndicesIndex(90),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [117] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 6,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(24),
    /* parameters */ ParameterIndex(0),
    /* return_matcher_indices */ MatcherIndicesIndex(90),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [118] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 7,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(24),
    /* parameters */ ParameterIndex(0),
    /* return_matcher_indices */ MatcherIndicesIndex(90),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [119] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 5,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(140),
    /* return_matcher_indices */ MatcherIndicesIndex(90),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [120] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 6,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(24),
    /* parameters */ ParameterIndex(49),
    /* return_matcher_indices */ MatcherIndicesIndex(90),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [121] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 3,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(279),
    /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [122] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 3,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(282),
    /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [123] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 4,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(24),
    /* parameters */ ParameterIndex(222),
    /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [124] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 3,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(285),
    /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [125] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 3,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(288),
    /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [126] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 3,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(291),
    /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [127] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 4,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(24),
    /* parameters */ ParameterIndex(226),
    /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [128] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 3,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(294),
    /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [129] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 3,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(297),
    /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [130] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 3,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(300),
    /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [131] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 4,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(24),
    /* parameters */ ParameterIndex(230),
    /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [132] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 3,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(303),
    /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [133] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(23),
    /* parameters */ ParameterIndex(332),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [134] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(23),
    /* parameters */ ParameterIndex(60),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [135] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(23),
    /* parameters */ ParameterIndex(7),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [136] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(23),
    /* parameters */ ParameterIndex(255),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [137] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(23),
    /* parameters */ ParameterIndex(182),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [138] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(23),
    /* parameters */ ParameterIndex(65),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [139] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(43),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [140] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(0),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [141] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(140),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [142] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(49),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [143] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 5,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(23),
    /* parameters */ ParameterIndex(60),
    /* return_matcher_indices */ MatcherIndicesIndex(52),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [144] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 6,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 2,
    /* templates */ TemplateIndex(23),
    /* parameters */ ParameterIndex(7),
    /* return_matcher_indices */ MatcherIndicesIndex(52),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [145] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 4,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(23),
    /* parameters */ ParameterIndex(182),
    /* return_matcher_indices */ MatcherIndicesIndex(52),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [146] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 5,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 2,
    /* templates */ TemplateIndex(23),
    /* parameters */ ParameterIndex(65),
    /* return_matcher_indices */ MatcherIndicesIndex(52),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [147] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 4,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(186),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [148] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 5,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(24),
    /* parameters */ ParameterIndex(70),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [149] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 3,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(210),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [150] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 4,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(24),
    /* parameters */ ParameterIndex(105),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [151] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 4,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(43),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [152] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 5,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(75),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [153] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 5,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(24),
    /* parameters */ ParameterIndex(0),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [154] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 6,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(24),
    /* parameters */ ParameterIndex(13),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [155] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 4,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(140),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [156] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 5,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(24),
    /* parameters */ ParameterIndex(49),
    /* return_matcher_indices */ MatcherIndicesIndex(176),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [157] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 5,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(37),
    /* parameters */ ParameterIndex(155),
    /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [158] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 5,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 2,
    /* templates */ TemplateIndex(36),
    /* parameters */ ParameterIndex(162),
    /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [159] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 5,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(37),
    /* parameters */ ParameterIndex(171),
    /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [160] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 5,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 2,
    /* templates */ TemplateIndex(36),
    /* parameters */ ParameterIndex(176),
    /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [161] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 4,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(37),
    /* parameters */ ParameterIndex(238),
    /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [162] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 4,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 2,
    /* templates */ TemplateIndex(36),
    /* parameters */ ParameterIndex(242),
    /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [163] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(23),
    /* parameters */ ParameterIndex(7),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [164] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(23),
    /* parameters */ ParameterIndex(65),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [165] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(0),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [166] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(49),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [167] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 2,
    /* templates */ TemplateIndex(28),
    /* parameters */ ParameterIndex(328),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [168] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 2,
    /* templates */ TemplateIndex(28),
    /* parameters */ ParameterIndex(358),
    /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [169] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 2,
    /* templates */ TemplateIndex(28),
    /* parameters */ ParameterIndex(326),
    /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [170] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 2,
    /* templates */ TemplateIndex(28),
    /* parameters */ ParameterIndex(328),
    /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [171] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 2,
    /* templates */ TemplateIndex(28),
    /* parameters */ ParameterIndex(330),
    /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [172] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(22),
    /* parameters */ ParameterIndex(159),
    /* return_matcher_indices */ MatcherIndicesIndex(9),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [173] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 2,
    /* templates */ TemplateIndex(21),
    /* parameters */ ParameterIndex(166),
    /* return_matcher_indices */ MatcherIndicesIndex(42),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [174] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 2,
    /* templates */ TemplateIndex(21),
    /* parameters */ ParameterIndex(168),
    /* return_matcher_indices */ MatcherIndicesIndex(42),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [175] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 2,
    /* templates */ TemplateIndex(21),
    /* parameters */ ParameterIndex(167),
    /* return_matcher_indices */ MatcherIndicesIndex(42),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [176] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 1,
    /* num_templates   */ 3,
    /* templates */ TemplateIndex(18),
    /* parameters */ ParameterIndex(352),
    /* return_matcher_indices */ MatcherIndicesIndex(73),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [177] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 1,
    /* num_templates   */ 4,
    /* templates */ TemplateIndex(18),
    /* parameters */ ParameterIndex(354),
    /* return_matcher_indices */ MatcherIndicesIndex(73),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [178] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 3,
    /* templates */ TemplateIndex(18),
    /* parameters */ ParameterIndex(356),
    /* return_matcher_indices */ MatcherIndicesIndex(73),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [179] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(23),
    /* parameters */ ParameterIndex(312),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [180] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 2,
    /* templates */ TemplateIndex(28),
    /* parameters */ ParameterIndex(330),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [181] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(23),
    /* parameters */ ParameterIndex(258),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [182] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMemberFunction),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(264),
    /* return_matcher_indices */ MatcherIndicesIndex(62),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [183] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(22),
    /* parameters */ ParameterIndex(160),
    /* return_matcher_indices */ MatcherIndicesIndex(9),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [184] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 2,
    /* templates */ TemplateIndex(21),
    /* parameters */ ParameterIndex(169),
    /* return_matcher_indices */ MatcherIndicesIndex(42),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [185] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(22),
    /* parameters */ ParameterIndex(57),
    /* return_matcher_indices */ MatcherIndicesIndex(9),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [186] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 2,
    /* templates */ TemplateIndex(21),
    /* parameters */ ParameterIndex(166),
    /* return_matcher_indices */ MatcherIndicesIndex(42),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [187] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 1,
    /* templates */ TemplateIndex(35),
    /* parameters */ ParameterIndex(57),
    /* return_matcher_indices */ MatcherIndicesIndex(9),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [188] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 2,
    /* templates */ TemplateIndex(34),
    /* parameters */ ParameterIndex(180),
    /* return_matcher_indices */ MatcherIndicesIndex(42),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [189] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 5,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 2,
    /* templates */ TemplateIndex(26),
    /* parameters */ ParameterIndex(55),
    /* return_matcher_indices */ MatcherIndicesIndex(10),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [190] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 3,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 2,
    /* templates */ TemplateIndex(26),
    /* parameters */ ParameterIndex(246),
    /* return_matcher_indices */ MatcherIndicesIndex(9),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [191] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 2,
    /* templates */ TemplateIndex(26),
    /* parameters */ ParameterIndex(306),
    /* return_matcher_indices */ MatcherIndicesIndex(9),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [192] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 3,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 2,
    /* templates */ TemplateIndex(26),
    /* parameters */ ParameterIndex(246),
    /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [193] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 3,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(249),
    /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [194] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 2,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 2,
    /* templates */ TemplateIndex(21),
    /* parameters */ ParameterIndex(166),
    /* return_matcher_indices */ MatcherIndicesIndex(1),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [195] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 2,
    /* templates */ TemplateIndex(21),
    /* parameters */ ParameterIndex(166),
    /* return_matcher_indices */ MatcherIndicesIndex(1),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [196] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(58),
    /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [197] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 0,
    /* templates */ TemplateIndex(/* invalid */),
    /* parameters */ ParameterIndex(149),
    /* return_matcher_indices */ MatcherIndicesIndex(184),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [198] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 1,
    /* num_explicit_templates */ 1,
    /* num_templates   */ 5,
    /* templates */ TemplateIndex(0),
    /* parameters */ ParameterIndex(370),
    /* return_matcher_indices */ MatcherIndicesIndex(9),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [199] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 5,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 4,
    /* templates */ TemplateIndex(1),
    /* parameters */ ParameterIndex(145),
    /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [200] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 5,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 4,
    /* templates */ TemplateIndex(1),
    /* parameters */ ParameterIndex(150),
    /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [201] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 3,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 4,
    /* templates */ TemplateIndex(2),
    /* parameters */ ParameterIndex(234),
    /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
  {
    /* [202] */
    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline),
    /* num_parameters */ 4,
    /* num_explicit_templates */ 0,
    /* num_templates   */ 4,
    /* templates */ TemplateIndex(2),
    /* parameters */ ParameterIndex(234),
    /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
  },
};

static_assert(OverloadIndex::CanIndex(kOverloads),
              "OverloadIndex is not large enough to index kOverloads");

constexpr IntrinsicInfo kBuiltins[] = {
  {
    /* [0] */
    /* fn atomic_compare_exchange_weak_explicit[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, ptr<function, T, read_write>, T, u32, u32) -> bool */
    /* num overloads */ 1,
    /* overloads */ OverloadIndex(189),
  },
  {
    /* [1] */
    /* fn atomic_exchange_explicit[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T, u32) -> T */
    /* num overloads */ 1,
    /* overloads */ OverloadIndex(190),
  },
  {
    /* [2] */
    /* fn atomic_fetch_add_explicit[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T, u32) -> T */
    /* num overloads */ 1,
    /* overloads */ OverloadIndex(190),
  },
  {
    /* [3] */
    /* fn atomic_fetch_and_explicit[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T, u32) -> T */
    /* num overloads */ 1,
    /* overloads */ OverloadIndex(190),
  },
  {
    /* [4] */
    /* fn atomic_fetch_max_explicit[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T, u32) -> T */
    /* num overloads */ 1,
    /* overloads */ OverloadIndex(190),
  },
  {
    /* [5] */
    /* fn atomic_fetch_min_explicit[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T, u32) -> T */
    /* num overloads */ 1,
    /* overloads */ OverloadIndex(190),
  },
  {
    /* [6] */
    /* fn atomic_fetch_or_explicit[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T, u32) -> T */
    /* num overloads */ 1,
    /* overloads */ OverloadIndex(190),
  },
  {
    /* [7] */
    /* fn atomic_fetch_sub_explicit[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T, u32) -> T */
    /* num overloads */ 1,
    /* overloads */ OverloadIndex(190),
  },
  {
    /* [8] */
    /* fn atomic_fetch_xor_explicit[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T, u32) -> T */
    /* num overloads */ 1,
    /* overloads */ OverloadIndex(190),
  },
  {
    /* [9] */
    /* fn atomic_load_explicit[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, u32) -> T */
    /* num overloads */ 1,
    /* overloads */ OverloadIndex(191),
  },
  {
    /* [10] */
    /* fn atomic_store_explicit[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T, u32) */
    /* num overloads */ 1,
    /* overloads */ OverloadIndex(192),
  },
  {
    /* [11] */
    /* fn atomic_max_explicit(ptr<storage, atomic<u64>, read_write>, u64, u32) */
    /* num overloads */ 1,
    /* overloads */ OverloadIndex(193),
  },
  {
    /* [12] */
    /* fn atomic_min_explicit(ptr<storage, atomic<u64>, read_write>, u64, u32) */
    /* num overloads */ 1,
    /* overloads */ OverloadIndex(193),
  },
  {
    /* [13] */
    /* fn fence[F : texel_format, A : access](texture: texture_storage_1d<F, A>) */
    /* fn fence[F : texel_format, A : access](texture: texture_storage_2d<F, A>) */
    /* fn fence[F : texel_format, A : access](texture: texture_storage_2d_array<F, A>) */
    /* fn fence[F : texel_format, A : access](texture: texture_storage_3d<F, A>) */
    /* num overloads */ 4,
    /* overloads */ OverloadIndex(168),
  },
  {
    /* [14] */
    /* fn gather[T : fiu32](texture: texture_2d<T>, sampler: sampler, coords: vec2<f32>, @const offset: vec2<i32>, component: u32) -> vec4<T> */
    /* fn gather[T : fiu32, A : iu32](texture: texture_2d_array<T>, sampler: sampler, coords: vec2<f32>, array_index: A, @const offset: vec2<i32>, component: u32) -> vec4<T> */
    /* fn gather[T : fiu32](texture: texture_cube<T>, sampler: sampler, coords: vec3<f32>, component: u32) -> vec4<T> */
    /* fn gather[T : fiu32, A : iu32](texture: texture_cube_array<T>, sampler: sampler, coords: vec3<f32>, array_index: A, component: u32) -> vec4<T> */
    /* fn gather(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>, @const offset: vec2<i32>) -> vec4<f32> */
    /* fn gather[A : iu32](texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: A, @const offset: vec2<i32>) -> vec4<f32> */
    /* fn gather(texture: texture_depth_cube, sampler: sampler, coords: vec3<f32>) -> vec4<f32> */
    /* fn gather[A : iu32](texture: texture_depth_cube_array, sampler: sampler, coords: vec3<f32>, array_index: A) -> vec4<f32> */
    /* num overloads */ 8,
    /* overloads */ OverloadIndex(143),
  },
  {
    /* [15] */
    /* fn gather_compare(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32) -> vec4<f32> */
    /* fn gather_compare(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32, @const offset: vec2<i32>) -> vec4<f32> */
    /* fn gather_compare[A : iu32](texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: A, depth_ref: f32) -> vec4<f32> */
    /* fn gather_compare[A : iu32](texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: A, depth_ref: f32, @const offset: vec2<i32>) -> vec4<f32> */
    /* fn gather_compare(texture: texture_depth_cube, sampler: sampler_comparison, coords: vec3<f32>, depth_ref: f32) -> vec4<f32> */
    /* fn gather_compare[A : iu32](texture: texture_depth_cube_array, sampler: sampler_comparison, coords: vec3<f32>, array_index: A, depth_ref: f32) -> vec4<f32> */
    /* num overloads */ 6,
    /* overloads */ OverloadIndex(151),
  },
  {
    /* [16] */
    /* fn get_width[T : fiu32](texture: texture_1d<T>) -> u32 */
    /* fn get_width[T : fiu32](texture: texture_2d<T>, u32) -> u32 */
    /* fn get_width[T : fiu32](texture: texture_2d_array<T>, u32) -> u32 */
    /* fn get_width[T : fiu32](texture: texture_3d<T>, u32) -> u32 */
    /* fn get_width[T : fiu32](texture: texture_cube<T>, u32) -> u32 */
    /* fn get_width[T : fiu32](texture: texture_cube_array<T>, u32) -> u32 */
    /* fn get_width[T : fiu32](texture: texture_multisampled_2d<T>) -> u32 */
    /* fn get_width(texture: texture_depth_2d, u32) -> u32 */
    /* fn get_width(texture: texture_depth_2d_array, u32) -> u32 */
    /* fn get_width(texture: texture_depth_cube, u32) -> u32 */
    /* fn get_width(texture: texture_depth_cube_array, u32) -> u32 */
    /* fn get_width(texture: texture_depth_multisampled_2d) -> u32 */
    /* fn get_width[F : texel_format, A : access](texture: texture_storage_1d<F, A>) -> u32 */
    /* fn get_width[F : texel_format, A : access](texture: texture_storage_2d<F, A>, u32) -> u32 */
    /* fn get_width[F : texel_format, A : access](texture: texture_storage_2d_array<F, A>, u32) -> u32 */
    /* fn get_width[F : texel_format, A : access](texture: texture_storage_3d<F, A>, u32) -> u32 */
    /* num overloads */ 16,
    /* overloads */ OverloadIndex(65),
  },
  {
    /* [17] */
    /* fn get_height[T : fiu32](texture: texture_2d<T>, u32) -> u32 */
    /* fn get_height[T : fiu32](texture: texture_2d_array<T>, u32) -> u32 */
    /* fn get_height[T : fiu32](texture: texture_3d<T>, u32) -> u32 */
    /* fn get_height[T : fiu32](texture: texture_cube<T>, u32) -> u32 */
    /* fn get_height[T : fiu32](texture: texture_cube_array<T>, u32) -> u32 */
    /* fn get_height[T : fiu32](texture: texture_multisampled_2d<T>) -> u32 */
    /* fn get_height(texture: texture_depth_2d, u32) -> u32 */
    /* fn get_height(texture: texture_depth_2d_array, u32) -> u32 */
    /* fn get_height(texture: texture_depth_cube, u32) -> u32 */
    /* fn get_height(texture: texture_depth_cube_array, u32) -> u32 */
    /* fn get_height(texture: texture_depth_multisampled_2d) -> u32 */
    /* fn get_height[F : texel_format, A : access](texture: texture_storage_2d<F, A>, u32) -> u32 */
    /* fn get_height[F : texel_format, A : access](texture: texture_storage_2d_array<F, A>, u32) -> u32 */
    /* fn get_height[F : texel_format, A : access](texture: texture_storage_3d<F, A>, u32) -> u32 */
    /* num overloads */ 14,
    /* overloads */ OverloadIndex(81),
  },
  {
    /* [18] */
    /* fn get_depth[T : fiu32](texture: texture_3d<T>, u32) -> u32 */
    /* fn get_depth[F : texel_format, A : access](texture: texture_storage_3d<F, A>, u32) -> u32 */
    /* num overloads */ 2,
    /* overloads */ OverloadIndex(179),
  },
  {
    /* [19] */
    /* fn get_array_size[T : fiu32](texture: texture_2d_array<T>) -> u32 */
    /* fn get_array_size[T : fiu32](texture: texture_cube_array<T>) -> u32 */
    /* fn get_array_size(texture: texture_depth_2d_array) -> u32 */
    /* fn get_array_size(texture: texture_depth_cube_array) -> u32 */
    /* fn get_array_size[F : texel_format, A : access](texture: texture_storage_2d_array<F, A>) -> u32 */
    /* num overloads */ 5,
    /* overloads */ OverloadIndex(163),
  },
  {
    /* [20] */
    /* fn get_num_mip_levels[T : fiu32](texture: texture_1d<T>) -> u32 */
    /* fn get_num_mip_levels[T : fiu32](texture: texture_2d<T>) -> u32 */
    /* fn get_num_mip_levels[T : fiu32](texture: texture_2d_array<T>) -> u32 */
    /* fn get_num_mip_levels[T : fiu32](texture: texture_3d<T>) -> u32 */
    /* fn get_num_mip_levels[T : fiu32](texture: texture_cube<T>) -> u32 */
    /* fn get_num_mip_levels[T : fiu32](texture: texture_cube_array<T>) -> u32 */
    /* fn get_num_mip_levels(texture: texture_depth_2d) -> u32 */
    /* fn get_num_mip_levels(texture: texture_depth_2d_array) -> u32 */
    /* fn get_num_mip_levels(texture: texture_depth_cube) -> u32 */
    /* fn get_num_mip_levels(texture: texture_depth_cube_array) -> u32 */
    /* num overloads */ 10,
    /* overloads */ OverloadIndex(133),
  },
  {
    /* [21] */
    /* fn get_num_samples[T : fiu32](texture: texture_multisampled_2d<T>) -> u32 */
    /* fn get_num_samples(texture: texture_depth_multisampled_2d) -> u32 */
    /* num overloads */ 2,
    /* overloads */ OverloadIndex(181),
  },
  {
    /* [22] */
    /* fn read[T : fiu32](texture: texture_1d<T>, coords: u32) -> vec4<T> */
    /* fn read[T : fiu32, L : iu32](texture: texture_2d<T>, coords: vec2<u32>, level: L) -> vec4<T> */
    /* fn read[T : fiu32, A : iu32, L : iu32](texture: texture_2d_array<T>, coords: vec2<u32>, array_index: A, level: L) -> vec4<T> */
    /* fn read[T : fiu32, L : iu32](texture: texture_3d<T>, coords: vec3<u32>, level: L) -> vec4<T> */
    /* fn read[T : fiu32, S : iu32](texture: texture_multisampled_2d<T>, coords: vec2<u32>, sample_index: S) -> vec4<T> */
    /* fn read[L : iu32](texture: texture_depth_2d, coords: vec2<u32>, level: L) -> f32 */
    /* fn read[A : iu32, L : iu32](texture: texture_depth_2d_array, coords: vec2<u32>, array_index: A, level: L) -> f32 */
    /* fn read[S : iu32](texture: texture_depth_multisampled_2d, coords: vec2<u32>, sample_index: S) -> f32 */
    /* fn read(texture: texture_storage_1d<f32_texel_format, readable>, coords: u32) -> vec4<f32> */
    /* fn read(texture: texture_storage_2d<f32_texel_format, readable>, coords: vec2<u32>) -> vec4<f32> */
    /* fn read[A : iu32](texture: texture_storage_2d_array<f32_texel_format, readable>, coords: vec2<u32>, array_index: A) -> vec4<f32> */
    /* fn read(texture: texture_storage_3d<f32_texel_format, readable>, coords: vec3<u32>) -> vec4<f32> */
    /* fn read(texture: texture_storage_1d<i32_texel_format, readable>, coords: u32) -> vec4<i32> */
    /* fn read(texture: texture_storage_2d<i32_texel_format, readable>, coords: vec2<u32>) -> vec4<i32> */
    /* fn read[A : iu32](texture: texture_storage_2d_array<i32_texel_format, readable>, coords: vec2<u32>, array_index: A) -> vec4<i32> */
    /* fn read(texture: texture_storage_3d<i32_texel_format, readable>, coords: vec3<u32>) -> vec4<i32> */
    /* fn read(texture: texture_storage_1d<u32_texel_format, readable>, coords: u32) -> vec4<u32> */
    /* fn read(texture: texture_storage_2d<u32_texel_format, readable>, coords: vec2<u32>) -> vec4<u32> */
    /* fn read[A : iu32](texture: texture_storage_2d_array<u32_texel_format, readable>, coords: vec2<u32>, array_index: A) -> vec4<u32> */
    /* fn read(texture: texture_storage_3d<u32_texel_format, readable>, coords: vec3<u32>) -> vec4<u32> */
    /* num overloads */ 20,
    /* overloads */ OverloadIndex(45),
  },
  {
    /* [23] */
    /* fn sample(texture: texture_1d<f32>, sampler: sampler, coords: f32) -> vec4<f32> */
    /* fn sample(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>) -> vec4<f32> */
    /* fn sample(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, @const offset: vec2<i32>) -> vec4<f32> */
    /* fn sample[A : iu32](texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: A) -> vec4<f32> */
    /* fn sample[A : iu32](texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: A, @const offset: vec2<i32>) -> vec4<f32> */
    /* fn sample(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>) -> vec4<f32> */
    /* fn sample(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, @const offset: vec3<i32>) -> vec4<f32> */
    /* fn sample(texture: texture_cube<f32>, sampler: sampler, coords: vec3<f32>) -> vec4<f32> */
    /* fn sample[A : iu32](texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: A) -> vec4<f32> */
    /* fn sample(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>) -> f32 */
    /* fn sample(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>, @const offset: vec2<i32>) -> f32 */
    /* fn sample[A : iu32](texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: A) -> f32 */
    /* fn sample[A : iu32](texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: A, @const offset: vec2<i32>) -> f32 */
    /* fn sample(texture: texture_depth_cube, sampler: sampler, coords: vec3<f32>) -> f32 */
    /* fn sample[A : iu32](texture: texture_depth_cube_array, sampler: sampler, coords: vec3<f32>, array_index: A) -> f32 */
    /* fn sample(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, level: level) -> vec4<f32> */
    /* fn sample(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, level: level, @const offset: vec2<i32>) -> vec4<f32> */
    /* fn sample[A : iu32](texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: A, level: level) -> vec4<f32> */
    /* fn sample[A : iu32](texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: A, level: level, @const offset: vec2<i32>) -> vec4<f32> */
    /* fn sample(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, level: level) -> vec4<f32> */
    /* fn sample(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, level: level, @const offset: vec3<i32>) -> vec4<f32> */
    /* fn sample(texture: texture_cube<f32>, sampler: sampler, coords: vec3<f32>, level: level) -> vec4<f32> */
    /* fn sample[A : iu32](texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: A, level: level) -> vec4<f32> */
    /* fn sample(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>, level: level) -> f32 */
    /* fn sample(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>, level: level, @const offset: vec2<i32>) -> f32 */
    /* fn sample[A : iu32](texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: A, level: level) -> f32 */
    /* fn sample[A : iu32](texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: A, level: level, @const offset: vec2<i32>) -> f32 */
    /* fn sample(texture: texture_depth_cube, sampler: sampler, coords: vec3<f32>, level: level) -> f32 */
    /* fn sample[A : iu32](texture: texture_depth_cube_array, sampler: sampler, coords: vec3<f32>, array_index: A, level: level) -> f32 */
    /* fn sample(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, bias: bias) -> vec4<f32> */
    /* fn sample(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, bias: bias, @const offset: vec2<i32>) -> vec4<f32> */
    /* fn sample[A : iu32](texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: A, bias: bias) -> vec4<f32> */
    /* fn sample[A : iu32](texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: A, bias: bias, @const offset: vec2<i32>) -> vec4<f32> */
    /* fn sample(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, bias: bias) -> vec4<f32> */
    /* fn sample(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, bias: bias, @const offset: vec3<i32>) -> vec4<f32> */
    /* fn sample(texture: texture_cube<f32>, sampler: sampler, coords: vec3<f32>, bias: bias) -> vec4<f32> */
    /* fn sample[A : iu32](texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: A, bias: bias) -> vec4<f32> */
    /* fn sample(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, gradient2d) -> vec4<f32> */
    /* fn sample(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, gradient2d, @const offset: vec2<i32>) -> vec4<f32> */
    /* fn sample[A : iu32](texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: A, gradient2d) -> vec4<f32> */
    /* fn sample[A : iu32](texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: A, gradient2d, @const offset: vec2<i32>) -> vec4<f32> */
    /* fn sample(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, gradient3d) -> vec4<f32> */
    /* fn sample(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, gradient3d, @const offset: vec3<i32>) -> vec4<f32> */
    /* fn sample(texture: texture_cube<f32>, sampler: sampler, coords: vec3<f32>, gradientcube) -> vec4<f32> */
    /* fn sample[A : iu32](texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: A, gradientcube) -> vec4<f32> */
    /* num overloads */ 45,
    /* overloads */ OverloadIndex(0),
  },
  {
    /* [24] */
    /* fn sample_compare(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32) -> f32 */
    /* fn sample_compare(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32, @const offset: vec2<i32>) -> f32 */
    /* fn sample_compare[A : iu32](texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: A, depth_ref: f32) -> f32 */
    /* fn sample_compare[A : iu32](texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: A, depth_ref: f32, @const offset: vec2<i32>) -> f32 */
    /* fn sample_compare(texture: texture_depth_cube, sampler: sampler_comparison, coords: vec3<f32>, depth_ref: f32) -> f32 */
    /* fn sample_compare[A : iu32](texture: texture_depth_cube_array, sampler: sampler_comparison, coords: vec3<f32>, array_index: A, depth_ref: f32) -> f32 */
    /* fn sample_compare(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32, level: level) -> f32 */
    /* fn sample_compare(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32, level: level, @const offset: vec2<i32>) -> f32 */
    /* fn sample_compare[A : iu32](texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: A, depth_ref: f32, level: level) -> f32 */
    /* fn sample_compare[A : iu32](texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: A, depth_ref: f32, level: level, @const offset: vec2<i32>) -> f32 */
    /* fn sample_compare(texture: texture_depth_cube, sampler: sampler_comparison, coords: vec3<f32>, depth_ref: f32, level: level) -> f32 */
    /* fn sample_compare[A : iu32](texture: texture_depth_cube_array, sampler: sampler_comparison, coords: vec3<f32>, array_index: A, depth_ref: f32, level: level) -> f32 */
    /* num overloads */ 12,
    /* overloads */ OverloadIndex(109),
  },
  {
    /* [25] */
    /* fn write(texture: texture_storage_1d<f32_texel_format, writable>, value: vec4<f32>, coords: u32) */
    /* fn write(texture: texture_storage_2d<f32_texel_format, writable>, value: vec4<f32>, coords: vec2<u32>) */
    /* fn write[A : iu32](texture: texture_storage_2d_array<f32_texel_format, writable>, value: vec4<f32>, coords: vec2<u32>, array_index: A) */
    /* fn write(texture: texture_storage_3d<f32_texel_format, writable>, value: vec4<f32>, coords: vec3<u32>) */
    /* fn write(texture: texture_storage_1d<i32_texel_format, writable>, value: vec4<i32>, coords: u32) */
    /* fn write(texture: texture_storage_2d<i32_texel_format, writable>, value: vec4<i32>, coords: vec2<u32>) */
    /* fn write[A : iu32](texture: texture_storage_2d_array<i32_texel_format, writable>, value: vec4<i32>, coords: vec2<u32>, array_index: A) */
    /* fn write(texture: texture_storage_3d<i32_texel_format, writable>, value: vec4<i32>, coords: vec3<u32>) */
    /* fn write(texture: texture_storage_1d<u32_texel_format, writable>, value: vec4<u32>, coords: u32) */
    /* fn write(texture: texture_storage_2d<u32_texel_format, writable>, value: vec4<u32>, coords: vec2<u32>) */
    /* fn write[A : iu32](texture: texture_storage_2d_array<u32_texel_format, writable>, value: vec4<u32>, coords: vec2<u32>, array_index: A) */
    /* fn write(texture: texture_storage_3d<u32_texel_format, writable>, value: vec4<u32>, coords: vec3<u32>) */
    /* num overloads */ 12,
    /* overloads */ OverloadIndex(121),
  },
  {
    /* [26] */
    /* fn distance[N : num, T : f32_f16](vec<N, T>, vec<N, T>) -> T */
    /* num overloads */ 1,
    /* overloads */ OverloadIndex(194),
  },
  {
    /* [27] */
    /* fn dot[N : num, T : f32_f16](vec<N, T>, vec<N, T>) -> T */
    /* num overloads */ 1,
    /* overloads */ OverloadIndex(194),
  },
  {
    /* [28] */
    /* fn fmod[T : f32_f16](T, T) -> T */
    /* fn fmod[N : num, T : f32_f16](vec<N, T>, vec<N, T>) -> vec<N, T> */
    /* fn fmod[N : num, T : f32_f16](T, vec<N, T>) -> vec<N, T> */
    /* fn fmod[N : num, T : f32_f16](vec<N, T>, T) -> vec<N, T> */
    /* num overloads */ 4,
    /* overloads */ OverloadIndex(172),
  },
  {
    /* [29] */
    /* fn frexp[T : f32_f16](T, i32) -> T */
    /* fn frexp[N : num, T : f32_f16](vec<N, T>, vec<N, i32>) -> vec<N, T> */
    /* num overloads */ 2,
    /* overloads */ OverloadIndex(183),
  },
  {
    /* [30] */
    /* fn length[N : num, T : f32_f16](vec<N, T>) -> T */
    /* num overloads */ 1,
    /* overloads */ OverloadIndex(195),
  },
  {
    /* [31] */
    /* fn modf[T : f32_f16](T, T) -> T */
    /* fn modf[N : num, T : f32_f16](vec<N, T>, vec<N, T>) -> vec<N, T> */
    /* num overloads */ 2,
    /* overloads */ OverloadIndex(172),
  },
  {
    /* [32] */
    /* fn sign[T : f32_f16](T) -> T */
    /* fn sign[N : num, T : f32_f16](vec<N, T>) -> vec<N, T> */
    /* num overloads */ 2,
    /* overloads */ OverloadIndex(185),
  },
  {
    /* [33] */
    /* fn threadgroup_barrier(u32) */
    /* num overloads */ 1,
    /* overloads */ OverloadIndex(196),
  },
  {
    /* [34] */
    /* fn simd_ballot(bool) -> vec2<u32> */
    /* num overloads */ 1,
    /* overloads */ OverloadIndex(197),
  },
  {
    /* [35] */
    /* fn quad_shuffle_xor[T : fiu32_f16](T, u32) -> T */
    /* fn quad_shuffle_xor[N : num, T : fiu32_f16](vec<N, T>, u32) -> vec<N, T> */
    /* num overloads */ 2,
    /* overloads */ OverloadIndex(187),
  },
  {
    /* [36] */
    /* fn convert(__packed_vec3<u32>) -> vec3<u32> */
    /* fn convert(__packed_vec3<i32>) -> vec3<i32> */
    /* fn convert(__packed_vec3<f32>) -> vec3<f32> */
    /* fn convert(__packed_vec3<f16>) -> vec3<f16> */
    /* fn convert(vec3<u32>) -> __packed_vec3<u32> */
    /* fn convert(vec3<i32>) -> __packed_vec3<i32> */
    /* fn convert(vec3<f32>) -> __packed_vec3<f32> */
    /* fn convert(vec3<f16>) -> __packed_vec3<f16> */
    /* fn convert(u32) -> u64 */
    /* fn convert<T : subgroup_matrix<subgroup_matrix_kind_left, S, C, R>>[S : f32_f16, C : num, R : num](subgroup_matrix<subgroup_matrix_kind_left, S, C, R>) -> T */
    /* fn convert<T : subgroup_matrix<subgroup_matrix_kind_result, S, C, R>>[S : f32_f16, C : num, R : num](subgroup_matrix<subgroup_matrix_kind_result, S, C, R>) -> T */
    /* fn convert<T : subgroup_matrix<subgroup_matrix_kind_left, S, C, R>>[S : f32_f16, C : num, R : num](subgroup_matrix<subgroup_matrix_kind_right, S, C, R>) -> T */
    /* fn convert<T : subgroup_matrix<subgroup_matrix_kind_left, S, C, R>>[S : f32_f16, C : num, R : num](subgroup_matrix<subgroup_matrix_kind_result, S, C, R>) -> T */
    /* fn convert<T : subgroup_matrix<subgroup_matrix_kind_right, S, C, R>>[S : f32_f16, C : num, R : num](subgroup_matrix<subgroup_matrix_kind_result, S, C, R>) -> T */
    /* num overloads */ 14,
    /* overloads */ OverloadIndex(95),
  },
  {
    /* [37] */
    /* fn make_filled_simdgroup_matrix<T : subgroup_matrix<K, S, C, R>>[K : subgroup_matrix_kind, S : f32_f16, C : num, R : num](S) -> T */
    /* num overloads */ 1,
    /* overloads */ OverloadIndex(198),
  },
  {
    /* [38] */
    /* fn make_diagonal_simdgroup_matrix<T : subgroup_matrix<K, S, C, R>>[K : subgroup_matrix_kind, S : f32_f16, C : num, R : num](S) -> T */
    /* num overloads */ 1,
    /* overloads */ OverloadIndex(198),
  },
  {
    /* [39] */
    /* fn simdgroup_load[K : subgroup_matrix_kind, S : f32_f16, C : num, R : num](subgroup_matrix<K, S, C, R>, ptr<workgroup_or_storage, S, readable>, u64, vec2<u64>, bool) */
    /* num overloads */ 1,
    /* overloads */ OverloadIndex(199),
  },
  {
    /* [40] */
    /* fn simdgroup_store[K : subgroup_matrix_kind, S : f32_f16, C : num, R : num](subgroup_matrix<K, S, C, R>, ptr<workgroup_or_storage, S, writable>, u64, vec2<u64>, bool) */
    /* num overloads */ 1,
    /* overloads */ OverloadIndex(200),
  },
  {
    /* [41] */
    /* fn simdgroup_multiply[S : f32_f16, C : num, R : num, K : num](subgroup_matrix<subgroup_matrix_kind_result, S, C, R>, subgroup_matrix<subgroup_matrix_kind_left, S, K, R>, subgroup_matrix<subgroup_matrix_kind_right, S, C, K>) */
    /* num overloads */ 1,
    /* overloads */ OverloadIndex(201),
  },
  {
    /* [42] */
    /* fn simdgroup_multiply_accumulate[S : f32_f16, C : num, R : num, K : num](subgroup_matrix<subgroup_matrix_kind_result, S, C, R>, subgroup_matrix<subgroup_matrix_kind_left, S, K, R>, subgroup_matrix<subgroup_matrix_kind_right, S, C, K>, subgroup_matrix<subgroup_matrix_kind_result, S, C, R>) */
    /* num overloads */ 1,
    /* overloads */ OverloadIndex(202),
  },
  {
    /* [43] */
    /* fn os_log[T : scalar](string, u32, u32, u32, T) */
    /* fn os_log[N : num, T : scalar](string, u32, u32, u32, vec<N, T>) */
    /* fn os_log[T : scalar](string, f32, f32, f32, T) */
    /* fn os_log[N : num, T : scalar](string, f32, f32, f32, vec<N, T>) */
    /* fn os_log[T : scalar](string, u32, u32, T) */
    /* fn os_log[N : num, T : scalar](string, u32, u32, vec<N, T>) */
    /* num overloads */ 6,
    /* overloads */ OverloadIndex(157),
  },
  {
    /* [44] */
    /* fn pointer_offset<T>[S : address_space, A : access](ptr<S, runtime_array<u8>, A>, u32) -> ptr<S, T, A> */
    /* fn pointer_offset<T>[S : address_space, A : access, N : num](ptr<S, array<u8, N>, A>, u32) -> ptr<S, T, A> */
    /* fn pointer_offset[T, S : address_space, A : access](ptr<S, T, A>, u32) -> ptr<S, T, A> */
    /* num overloads */ 3,
    /* overloads */ OverloadIndex(176),
  },
};

}  // anonymous namespace

const core::intrinsic::TableData Dialect::kData{
  /* templates */ kTemplates,
  /* type_matcher_indices */ kMatcherIndices,
  /* type_matchers */ kTypeMatchers,
  /* number_matchers */ kNumberMatchers,
  /* parameters */ kParameters,
  /* overloads */ kOverloads,
  /* const_eval_functions */ {},
  /* ctor_conv */ {},
  /* builtins */ kBuiltins,
  /* binary '+' */ tint::core::intrinsic::kNoOverloads,
  /* binary '-' */ tint::core::intrinsic::kNoOverloads,
  /* binary '*' */ tint::core::intrinsic::kNoOverloads,
  /* binary '/' */ tint::core::intrinsic::kNoOverloads,
  /* binary '%' */ tint::core::intrinsic::kNoOverloads,
  /* binary '^' */ tint::core::intrinsic::kNoOverloads,
  /* binary '&' */ tint::core::intrinsic::kNoOverloads,
  /* binary '|' */ tint::core::intrinsic::kNoOverloads,
  /* binary '&&' */ tint::core::intrinsic::kNoOverloads,
  /* binary '||' */ tint::core::intrinsic::kNoOverloads,
  /* binary '==' */ tint::core::intrinsic::kNoOverloads,
  /* binary '!=' */ tint::core::intrinsic::kNoOverloads,
  /* binary '<' */ tint::core::intrinsic::kNoOverloads,
  /* binary '>' */ tint::core::intrinsic::kNoOverloads,
  /* binary '<=' */ tint::core::intrinsic::kNoOverloads,
  /* binary '>=' */ tint::core::intrinsic::kNoOverloads,
  /* binary '<<' */ tint::core::intrinsic::kNoOverloads,
  /* binary '>>' */ tint::core::intrinsic::kNoOverloads,
  /* unary '!' */ tint::core::intrinsic::kNoOverloads,
  /* unary '~' */ tint::core::intrinsic::kNoOverloads,
  /* unary '-' */ tint::core::intrinsic::kNoOverloads,
  /* unary '*' */ tint::core::intrinsic::kNoOverloads,
  /* unary '&' */ tint::core::intrinsic::kNoOverloads,
};

}  // namespace tint::msl::intrinsic

// clang-format on
