[ir] Move `image_fetch` and `image_read` over to spirv builtins.
Moves the `image_fetch` and `image_read` SPIR-V intrinsics over to builtins.
Bug: tint:1718
Change-Id: I51e1f89f5d5bad0dfb11d7027a569e5b14e32660
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/152240
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: dan sinclair <dsinclair@chromium.org>
Reviewed-by: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
diff --git a/src/tint/lang/spirv/intrinsic/data/data.cc b/src/tint/lang/spirv/intrinsic/data/data.cc
index 4add088..3829683 100644
--- a/src/tint/lang/spirv/intrinsic/data/data.cc
+++ b/src/tint/lang/spirv/intrinsic/data/data.cc
@@ -606,6 +606,26 @@
};
+/// 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);
+ },
+/* string */ [](MatchState* state) -> std::string {
+ const std::string T = state->TypeName();
+ return "texture_multisampled_2d<" + T + ">";
+ }
+};
+
+
/// TypeMatcher for 'type texture_depth_2d'
constexpr TypeMatcher kTextureDepth2DMatcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
@@ -662,6 +682,124 @@
};
+/// 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);
+ },
+/* string */ [](MatchState*) -> std::string {
+ return "texture_depth_multisampled_2d";
+ }
+};
+
+
+/// 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);
+ },
+/* string */ [](MatchState* state) -> std::string {
+ const std::string F = state->NumName();
+ const std::string A = state->NumName();
+ return "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);
+ },
+/* string */ [](MatchState* state) -> std::string {
+ const std::string F = state->NumName();
+ const std::string A = state->NumName();
+ return "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);
+ },
+/* string */ [](MatchState* state) -> std::string {
+ const std::string F = state->NumName();
+ const std::string A = state->NumName();
+ return "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);
+ },
+/* string */ [](MatchState* state) -> std::string {
+ const std::string F = state->NumName();
+ const std::string A = state->NumName();
+ return "texture_storage_3d<" + F + ", " + A + ">";
+ }
+};
+
+
/// TypeMatcher for 'type ptr'
constexpr TypeMatcher kPtrMatcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
@@ -882,52 +1020,135 @@
}
};
+/// EnumMatcher for 'match f32_texel_format'
+constexpr NumberMatcher kF32TexelFormatMatcher {
+/* match */ [](MatchState&, Number number) -> Number {
+ switch (static_cast<core::TexelFormat>(number.Value())) {
+ case core::TexelFormat::kBgra8Unorm:
+ case core::TexelFormat::kRgba8Unorm:
+ case core::TexelFormat::kRgba8Snorm:
+ case core::TexelFormat::kRgba16Float:
+ case core::TexelFormat::kR32Float:
+ case core::TexelFormat::kRg32Float:
+ case core::TexelFormat::kRgba32Float:
+ return number;
+ default:
+ return Number::invalid;
+ }
+ },
+/* string */ [](MatchState*) -> std::string {
+ return "bgra8unorm, rgba8unorm, rgba8snorm, rgba16float, r32float, rg32float or rgba32float";
+ }
+};
+
+/// EnumMatcher for 'match i32_texel_format'
+constexpr NumberMatcher kI32TexelFormatMatcher {
+/* match */ [](MatchState&, Number number) -> Number {
+ switch (static_cast<core::TexelFormat>(number.Value())) {
+ case core::TexelFormat::kRgba8Sint:
+ case core::TexelFormat::kRgba16Sint:
+ case core::TexelFormat::kR32Sint:
+ case core::TexelFormat::kRg32Sint:
+ case core::TexelFormat::kRgba32Sint:
+ return number;
+ default:
+ return Number::invalid;
+ }
+ },
+/* string */ [](MatchState*) -> std::string {
+ return "rgba8sint, rgba16sint, r32sint, rg32sint or 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::kRgba8Uint:
+ case core::TexelFormat::kRgba16Uint:
+ case core::TexelFormat::kR32Uint:
+ case core::TexelFormat::kRg32Uint:
+ case core::TexelFormat::kRgba32Uint:
+ return number;
+ default:
+ return Number::invalid;
+ }
+ },
+/* string */ [](MatchState*) -> std::string {
+ return "rgba8uint, rgba16uint, r32uint, rg32uint or rgba32uint";
+ }
+};
+
+/// 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;
+ }
+ },
+/* string */ [](MatchState*) -> std::string {
+ return "read or read_write";
+ }
+};
+
/// Type and number matchers
/// The template types, types, and type matchers
constexpr TypeMatcher kTypeMatchers[] = {
/* [0] */ TemplateTypeMatcher<0>::matcher,
/* [1] */ TemplateTypeMatcher<1>::matcher,
- /* [2] */ kBoolMatcher,
- /* [3] */ kF32Matcher,
- /* [4] */ kF16Matcher,
- /* [5] */ kI32Matcher,
- /* [6] */ kU32Matcher,
- /* [7] */ kVec2Matcher,
- /* [8] */ kVec3Matcher,
- /* [9] */ kVec4Matcher,
- /* [10] */ kMat2X2Matcher,
- /* [11] */ kMat2X3Matcher,
- /* [12] */ kMat2X4Matcher,
- /* [13] */ kMat3X2Matcher,
- /* [14] */ kMat3X3Matcher,
- /* [15] */ kMat3X4Matcher,
- /* [16] */ kMat4X2Matcher,
- /* [17] */ kMat4X3Matcher,
- /* [18] */ kMat4X4Matcher,
- /* [19] */ kVecMatcher,
- /* [20] */ kMatMatcher,
- /* [21] */ kAtomicMatcher,
- /* [22] */ kSamplerMatcher,
- /* [23] */ kSamplerComparisonMatcher,
- /* [24] */ kTexture1DMatcher,
- /* [25] */ kTexture2DMatcher,
- /* [26] */ kTexture2DArrayMatcher,
- /* [27] */ kTexture3DMatcher,
- /* [28] */ kTextureCubeMatcher,
- /* [29] */ kTextureCubeArrayMatcher,
- /* [30] */ kTextureDepth2DMatcher,
- /* [31] */ kTextureDepth2DArrayMatcher,
- /* [32] */ kTextureDepthCubeMatcher,
- /* [33] */ kTextureDepthCubeArrayMatcher,
- /* [34] */ kPtrMatcher,
- /* [35] */ kStructWithRuntimeArrayMatcher,
- /* [36] */ kSampledImageMatcher,
- /* [37] */ kF32F16Matcher,
- /* [38] */ kIu32Matcher,
- /* [39] */ kFiu32Matcher,
- /* [40] */ kScalarMatcher,
- /* [41] */ kSamplersMatcher,
+ /* [2] */ TemplateTypeMatcher<2>::matcher,
+ /* [3] */ TemplateTypeMatcher<3>::matcher,
+ /* [4] */ kBoolMatcher,
+ /* [5] */ kF32Matcher,
+ /* [6] */ kF16Matcher,
+ /* [7] */ kI32Matcher,
+ /* [8] */ kU32Matcher,
+ /* [9] */ kVec2Matcher,
+ /* [10] */ kVec3Matcher,
+ /* [11] */ kVec4Matcher,
+ /* [12] */ kMat2X2Matcher,
+ /* [13] */ kMat2X3Matcher,
+ /* [14] */ kMat2X4Matcher,
+ /* [15] */ kMat3X2Matcher,
+ /* [16] */ kMat3X3Matcher,
+ /* [17] */ kMat3X4Matcher,
+ /* [18] */ kMat4X2Matcher,
+ /* [19] */ kMat4X3Matcher,
+ /* [20] */ kMat4X4Matcher,
+ /* [21] */ kVecMatcher,
+ /* [22] */ kMatMatcher,
+ /* [23] */ kAtomicMatcher,
+ /* [24] */ kSamplerMatcher,
+ /* [25] */ kSamplerComparisonMatcher,
+ /* [26] */ kTexture1DMatcher,
+ /* [27] */ kTexture2DMatcher,
+ /* [28] */ kTexture2DArrayMatcher,
+ /* [29] */ kTexture3DMatcher,
+ /* [30] */ kTextureCubeMatcher,
+ /* [31] */ kTextureCubeArrayMatcher,
+ /* [32] */ kTextureMultisampled2DMatcher,
+ /* [33] */ kTextureDepth2DMatcher,
+ /* [34] */ kTextureDepth2DArrayMatcher,
+ /* [35] */ kTextureDepthCubeMatcher,
+ /* [36] */ kTextureDepthCubeArrayMatcher,
+ /* [37] */ kTextureDepthMultisampled2DMatcher,
+ /* [38] */ kTextureStorage1DMatcher,
+ /* [39] */ kTextureStorage2DMatcher,
+ /* [40] */ kTextureStorage2DArrayMatcher,
+ /* [41] */ kTextureStorage3DMatcher,
+ /* [42] */ kPtrMatcher,
+ /* [43] */ kStructWithRuntimeArrayMatcher,
+ /* [44] */ kSampledImageMatcher,
+ /* [45] */ kF32F16Matcher,
+ /* [46] */ kIu32Matcher,
+ /* [47] */ kFiu32Matcher,
+ /* [48] */ kScalarMatcher,
+ /* [49] */ kSamplersMatcher,
};
/// The template numbers, and number matchers
@@ -938,48 +1159,75 @@
/* [3] */ kReadWriteMatcher,
/* [4] */ kStorageMatcher,
/* [5] */ kWorkgroupOrStorageMatcher,
+ /* [6] */ kF32TexelFormatMatcher,
+ /* [7] */ kI32TexelFormatMatcher,
+ /* [8] */ kU32TexelFormatMatcher,
+ /* [9] */ kReadableMatcher,
};
constexpr TypeMatcherIndex kTypeMatcherIndices[] = {
- /* [0] */ TypeMatcherIndex(34),
- /* [1] */ TypeMatcherIndex(21),
+ /* [0] */ TypeMatcherIndex(42),
+ /* [1] */ TypeMatcherIndex(23),
/* [2] */ TypeMatcherIndex(0),
- /* [3] */ TypeMatcherIndex(36),
- /* [4] */ TypeMatcherIndex(24),
+ /* [3] */ TypeMatcherIndex(44),
+ /* [4] */ TypeMatcherIndex(26),
/* [5] */ TypeMatcherIndex(0),
- /* [6] */ TypeMatcherIndex(36),
- /* [7] */ TypeMatcherIndex(25),
+ /* [6] */ TypeMatcherIndex(44),
+ /* [7] */ TypeMatcherIndex(27),
/* [8] */ TypeMatcherIndex(0),
- /* [9] */ TypeMatcherIndex(36),
- /* [10] */ TypeMatcherIndex(26),
+ /* [9] */ TypeMatcherIndex(44),
+ /* [10] */ TypeMatcherIndex(28),
/* [11] */ TypeMatcherIndex(0),
- /* [12] */ TypeMatcherIndex(36),
- /* [13] */ TypeMatcherIndex(27),
+ /* [12] */ TypeMatcherIndex(44),
+ /* [13] */ TypeMatcherIndex(29),
/* [14] */ TypeMatcherIndex(0),
- /* [15] */ TypeMatcherIndex(36),
- /* [16] */ TypeMatcherIndex(28),
+ /* [15] */ TypeMatcherIndex(44),
+ /* [16] */ TypeMatcherIndex(30),
/* [17] */ TypeMatcherIndex(0),
- /* [18] */ TypeMatcherIndex(36),
- /* [19] */ TypeMatcherIndex(29),
+ /* [18] */ TypeMatcherIndex(44),
+ /* [19] */ TypeMatcherIndex(31),
/* [20] */ TypeMatcherIndex(0),
- /* [21] */ TypeMatcherIndex(34),
- /* [22] */ TypeMatcherIndex(35),
- /* [23] */ TypeMatcherIndex(19),
+ /* [21] */ TypeMatcherIndex(42),
+ /* [22] */ TypeMatcherIndex(43),
+ /* [23] */ TypeMatcherIndex(21),
/* [24] */ TypeMatcherIndex(0),
- /* [25] */ TypeMatcherIndex(20),
+ /* [25] */ TypeMatcherIndex(11),
/* [26] */ TypeMatcherIndex(0),
- /* [27] */ TypeMatcherIndex(36),
- /* [28] */ TypeMatcherIndex(30),
- /* [29] */ TypeMatcherIndex(36),
- /* [30] */ TypeMatcherIndex(31),
- /* [31] */ TypeMatcherIndex(36),
- /* [32] */ TypeMatcherIndex(32),
- /* [33] */ TypeMatcherIndex(36),
- /* [34] */ TypeMatcherIndex(33),
- /* [35] */ TypeMatcherIndex(19),
- /* [36] */ TypeMatcherIndex(2),
- /* [37] */ TypeMatcherIndex(6),
- /* [38] */ TypeMatcherIndex(1),
+ /* [27] */ TypeMatcherIndex(9),
+ /* [28] */ TypeMatcherIndex(1),
+ /* [29] */ TypeMatcherIndex(10),
+ /* [30] */ TypeMatcherIndex(1),
+ /* [31] */ TypeMatcherIndex(32),
+ /* [32] */ TypeMatcherIndex(0),
+ /* [33] */ TypeMatcherIndex(11),
+ /* [34] */ TypeMatcherIndex(5),
+ /* [35] */ TypeMatcherIndex(11),
+ /* [36] */ TypeMatcherIndex(7),
+ /* [37] */ TypeMatcherIndex(11),
+ /* [38] */ TypeMatcherIndex(8),
+ /* [39] */ TypeMatcherIndex(9),
+ /* [40] */ TypeMatcherIndex(0),
+ /* [41] */ TypeMatcherIndex(10),
+ /* [42] */ TypeMatcherIndex(0),
+ /* [43] */ TypeMatcherIndex(22),
+ /* [44] */ TypeMatcherIndex(0),
+ /* [45] */ TypeMatcherIndex(44),
+ /* [46] */ TypeMatcherIndex(33),
+ /* [47] */ TypeMatcherIndex(44),
+ /* [48] */ TypeMatcherIndex(34),
+ /* [49] */ TypeMatcherIndex(44),
+ /* [50] */ TypeMatcherIndex(35),
+ /* [51] */ TypeMatcherIndex(44),
+ /* [52] */ TypeMatcherIndex(36),
+ /* [53] */ TypeMatcherIndex(21),
+ /* [54] */ TypeMatcherIndex(4),
+ /* [55] */ TypeMatcherIndex(2),
+ /* [56] */ TypeMatcherIndex(3),
+ /* [57] */ TypeMatcherIndex(37),
+ /* [58] */ TypeMatcherIndex(38),
+ /* [59] */ TypeMatcherIndex(39),
+ /* [60] */ TypeMatcherIndex(40),
+ /* [61] */ TypeMatcherIndex(41),
};
static_assert(TypeMatcherIndex::CanIndex(kTypeMatcherIndices),
@@ -989,13 +1237,13 @@
/* [0] */ NumberMatcherIndex(4),
/* [1] */ NumberMatcherIndex(0),
/* [2] */ NumberMatcherIndex(3),
- /* [3] */ NumberMatcherIndex(1),
- /* [4] */ NumberMatcherIndex(2),
- /* [5] */ NumberMatcherIndex(0),
- /* [6] */ NumberMatcherIndex(2),
- /* [7] */ NumberMatcherIndex(1),
- /* [8] */ NumberMatcherIndex(0),
- /* [9] */ NumberMatcherIndex(1),
+ /* [3] */ NumberMatcherIndex(0),
+ /* [4] */ NumberMatcherIndex(1),
+ /* [5] */ NumberMatcherIndex(2),
+ /* [6] */ NumberMatcherIndex(0),
+ /* [7] */ NumberMatcherIndex(2),
+ /* [8] */ NumberMatcherIndex(1),
+ /* [9] */ NumberMatcherIndex(0),
};
static_assert(NumberMatcherIndex::CanIndex(kNumberMatcherIndices),
@@ -1011,19 +1259,19 @@
{
/* [1] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(38),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(28),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [2] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(38),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(28),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [3] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(38),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(28),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -1047,13 +1295,13 @@
{
/* [7] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(38),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(28),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [8] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(38),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(28),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -1065,200 +1313,200 @@
{
/* [10] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(36),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(4),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [11] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(28),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [12] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(55),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [13] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(35),
- /* number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [14] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(23),
- /* number_matcher_indices */ NumberMatcherIndicesIndex(1),
- },
- {
- /* [15] */
- /* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(23),
- /* number_matcher_indices */ NumberMatcherIndicesIndex(1),
- },
- {
- /* [16] */
- /* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(25),
- /* number_matcher_indices */ NumberMatcherIndicesIndex(7),
- },
- {
- /* [17] */
- /* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(21),
- /* number_matcher_indices */ NumberMatcherIndicesIndex(0),
- },
- {
- /* [18] */
- /* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(2),
- /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- },
- {
- /* [19] */
- /* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(25),
- /* number_matcher_indices */ NumberMatcherIndicesIndex(5),
- },
- {
- /* [20] */
- /* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(25),
- /* number_matcher_indices */ NumberMatcherIndicesIndex(7),
- },
- {
- /* [21] */
- /* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(25),
- /* number_matcher_indices */ NumberMatcherIndicesIndex(8),
- },
- {
- /* [22] */
- /* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(2),
- /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- },
- {
- /* [23] */
- /* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(25),
- /* number_matcher_indices */ NumberMatcherIndicesIndex(8),
- },
- {
- /* [24] */
- /* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(23),
- /* number_matcher_indices */ NumberMatcherIndicesIndex(1),
- },
- {
- /* [25] */
- /* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(2),
- /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- },
- {
- /* [26] */
- /* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(4),
- /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- },
- {
- /* [27] */
- /* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(38),
- /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- },
- {
- /* [28] */
- /* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(7),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
- /* [29] */
+ /* [15] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(38),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(27),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
- /* [30] */
+ /* [16] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(55),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [17] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [18] */
/* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(10),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
- /* [31] */
+ /* [19] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(38),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(29),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
- /* [32] */
+ /* [20] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(55),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [21] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [22] */
/* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(13),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
+ /* [23] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(29),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [24] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(55),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [25] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [26] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(31),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [27] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(27),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [28] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(55),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [29] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [30] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(46),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [31] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(27),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [32] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
/* [33] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(38),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(55),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [34] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(16),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(48),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [35] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(38),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(29),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [36] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(19),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [37] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(38),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(55),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [38] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(28),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(57),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [39] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(27),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [40] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(30),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [41] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(55),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [42] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(32),
- /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(58),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(3),
},
{
/* [43] */
@@ -1269,12 +1517,264 @@
{
/* [44] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(34),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(28),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [45] */
/* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(59),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(3),
+ },
+ {
+ /* [46] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(39),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [47] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(28),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [48] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(60),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(3),
+ },
+ {
+ /* [49] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(41),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [50] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(28),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [51] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(61),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(3),
+ },
+ {
+ /* [52] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(41),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [53] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(28),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [54] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(54),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [55] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [56] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [57] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(53),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ },
+ {
+ /* [58] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(23),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ },
+ {
+ /* [59] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(23),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ },
+ {
+ /* [60] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(43),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(8),
+ },
+ {
+ /* [61] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(21),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(0),
+ },
+ {
+ /* [62] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [63] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(43),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(6),
+ },
+ {
+ /* [64] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(43),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(8),
+ },
+ {
+ /* [65] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(43),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(3),
+ },
+ {
+ /* [66] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [67] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(43),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(3),
+ },
+ {
+ /* [68] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(23),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ },
+ {
+ /* [69] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [70] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(7),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [71] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(28),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [72] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(10),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [73] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(28),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [74] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(13),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [75] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(28),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [76] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(16),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [77] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(28),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [78] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(19),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [79] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(28),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [80] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(46),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [81] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [82] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(48),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [83] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [84] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(50),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [85] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [86] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [87] */
+ /* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
@@ -1287,37 +1787,72 @@
{
/* [0] */
/* name */ "T",
- /* matcher_index */ TypeMatcherIndex(38),
+ /* matcher_index */ TypeMatcherIndex(47),
},
{
/* [1] */
- /* name */ "U",
- /* matcher_index */ TypeMatcherIndex(6),
+ /* name */ "C",
+ /* matcher_index */ TypeMatcherIndex(46),
},
{
/* [2] */
- /* name */ "T",
- /* matcher_index */ TypeMatcherIndex(39),
+ /* name */ "I",
+ /* matcher_index */ TypeMatcherIndex(46),
},
{
/* [3] */
/* name */ "S",
- /* matcher_index */ TypeMatcherIndex(41),
+ /* matcher_index */ TypeMatcherIndex(46),
},
{
/* [4] */
/* name */ "I",
- /* matcher_index */ TypeMatcherIndex(6),
+ /* matcher_index */ TypeMatcherIndex(46),
},
{
/* [5] */
- /* name */ "T",
- /* matcher_index */ TypeMatcherIndex(37),
+ /* name */ "C",
+ /* matcher_index */ TypeMatcherIndex(46),
},
{
/* [6] */
+ /* name */ "S",
+ /* matcher_index */ TypeMatcherIndex(46),
+ },
+ {
+ /* [7] */
/* name */ "T",
- /* matcher_index */ TypeMatcherIndex(40),
+ /* matcher_index */ TypeMatcherIndex(46),
+ },
+ {
+ /* [8] */
+ /* name */ "U",
+ /* matcher_index */ TypeMatcherIndex(8),
+ },
+ {
+ /* [9] */
+ /* name */ "T",
+ /* matcher_index */ TypeMatcherIndex(47),
+ },
+ {
+ /* [10] */
+ /* name */ "S",
+ /* matcher_index */ TypeMatcherIndex(49),
+ },
+ {
+ /* [11] */
+ /* name */ "I",
+ /* matcher_index */ TypeMatcherIndex(8),
+ },
+ {
+ /* [12] */
+ /* name */ "T",
+ /* matcher_index */ TypeMatcherIndex(45),
+ },
+ {
+ /* [13] */
+ /* name */ "T",
+ /* matcher_index */ TypeMatcherIndex(48),
},
};
@@ -1342,21 +1877,51 @@
},
{
/* [3] */
+ /* name */ "F",
+ /* matcher_index */ NumberMatcherIndex(6),
+ },
+ {
+ /* [4] */
+ /* name */ "A",
+ /* matcher_index */ NumberMatcherIndex(9),
+ },
+ {
+ /* [5] */
+ /* name */ "F",
+ /* matcher_index */ NumberMatcherIndex(7),
+ },
+ {
+ /* [6] */
+ /* name */ "A",
+ /* matcher_index */ NumberMatcherIndex(9),
+ },
+ {
+ /* [7] */
+ /* name */ "F",
+ /* matcher_index */ NumberMatcherIndex(8),
+ },
+ {
+ /* [8] */
+ /* name */ "A",
+ /* matcher_index */ NumberMatcherIndex(9),
+ },
+ {
+ /* [9] */
/* name */ "N",
/* matcher_index */ NumberMatcherIndex(/* invalid */),
},
{
- /* [4] */
+ /* [10] */
/* name */ "M",
/* matcher_index */ NumberMatcherIndex(/* invalid */),
},
{
- /* [5] */
+ /* [11] */
/* name */ "A",
/* matcher_index */ NumberMatcherIndex(/* invalid */),
},
{
- /* [6] */
+ /* [12] */
/* name */ "S",
/* matcher_index */ NumberMatcherIndex(5),
},
@@ -1369,129 +1934,129 @@
{
/* [0] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 2,
+ /* num_parameters */ 3,
/* num_template_types */ 2,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(2),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(26),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(3),
+ /* num_template_numbers */ 2,
+ /* template_types */ TemplateTypeIndex(5),
+ /* template_numbers */ TemplateNumberIndex(3),
+ /* parameters */ ParameterIndex(42),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
/* [1] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 2,
+ /* num_parameters */ 3,
/* num_template_types */ 2,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(2),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(28),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
+ /* num_template_numbers */ 2,
+ /* template_types */ TemplateTypeIndex(5),
+ /* template_numbers */ TemplateNumberIndex(5),
+ /* parameters */ ParameterIndex(42),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(35),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
/* [2] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 2,
+ /* num_parameters */ 3,
/* num_template_types */ 2,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(2),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(30),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
+ /* num_template_numbers */ 2,
+ /* template_types */ TemplateTypeIndex(5),
+ /* template_numbers */ TemplateNumberIndex(7),
+ /* parameters */ ParameterIndex(42),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(37),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
/* [3] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 2,
+ /* num_parameters */ 3,
/* num_template_types */ 2,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(2),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(32),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(12),
+ /* num_template_numbers */ 2,
+ /* template_types */ TemplateTypeIndex(5),
+ /* template_numbers */ TemplateNumberIndex(3),
+ /* parameters */ ParameterIndex(45),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
/* [4] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 2,
+ /* num_parameters */ 3,
/* num_template_types */ 2,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(2),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(34),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(15),
+ /* num_template_numbers */ 2,
+ /* template_types */ TemplateTypeIndex(5),
+ /* template_numbers */ TemplateNumberIndex(5),
+ /* parameters */ ParameterIndex(45),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(35),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
/* [5] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 2,
+ /* num_parameters */ 3,
/* num_template_types */ 2,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(2),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(36),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(18),
+ /* num_template_numbers */ 2,
+ /* template_types */ TemplateTypeIndex(5),
+ /* template_numbers */ TemplateNumberIndex(7),
+ /* parameters */ ParameterIndex(45),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(37),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
/* [6] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 2,
- /* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(3),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(38),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(27),
+ /* num_parameters */ 3,
+ /* num_template_types */ 2,
+ /* num_template_numbers */ 2,
+ /* template_types */ TemplateTypeIndex(5),
+ /* template_numbers */ TemplateNumberIndex(3),
+ /* parameters */ ParameterIndex(48),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
/* [7] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 2,
- /* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(3),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(40),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(29),
+ /* num_parameters */ 3,
+ /* num_template_types */ 2,
+ /* num_template_numbers */ 2,
+ /* template_types */ TemplateTypeIndex(5),
+ /* template_numbers */ TemplateNumberIndex(5),
+ /* parameters */ ParameterIndex(48),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(35),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
/* [8] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 2,
- /* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(3),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(42),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(31),
+ /* num_parameters */ 3,
+ /* num_template_types */ 2,
+ /* num_template_numbers */ 2,
+ /* template_types */ TemplateTypeIndex(5),
+ /* template_numbers */ TemplateNumberIndex(7),
+ /* parameters */ ParameterIndex(48),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(37),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
/* [9] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 2,
- /* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(3),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(44),
+ /* num_parameters */ 3,
+ /* num_template_types */ 2,
+ /* num_template_numbers */ 2,
+ /* template_types */ TemplateTypeIndex(5),
+ /* template_numbers */ TemplateNumberIndex(3),
+ /* parameters */ ParameterIndex(51),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
@@ -1500,12 +2065,12 @@
/* [10] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 3,
- /* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(6),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(10),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* num_template_types */ 2,
+ /* num_template_numbers */ 2,
+ /* template_types */ TemplateTypeIndex(5),
+ /* template_numbers */ TemplateNumberIndex(5),
+ /* parameters */ ParameterIndex(51),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(35),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -1513,77 +2078,77 @@
/* [11] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 3,
- /* num_template_types */ 1,
- /* num_template_numbers */ 1,
- /* template_types */ TemplateTypeIndex(6),
- /* template_numbers */ TemplateNumberIndex(3),
- /* parameters */ ParameterIndex(13),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(23),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* num_template_types */ 2,
+ /* num_template_numbers */ 2,
+ /* template_types */ TemplateTypeIndex(5),
+ /* template_numbers */ TemplateNumberIndex(7),
+ /* parameters */ ParameterIndex(51),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(37),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
/* [12] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 2,
- /* num_template_types */ 1,
- /* num_template_numbers */ 1,
- /* template_types */ TemplateTypeIndex(4),
- /* template_numbers */ TemplateNumberIndex(5),
- /* parameters */ ParameterIndex(17),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(37),
+ /* num_template_types */ 2,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(9),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(10),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(3),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
/* [13] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 4,
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 2,
/* num_template_types */ 2,
- /* num_template_numbers */ 1,
- /* template_types */ TemplateTypeIndex(0),
- /* template_numbers */ TemplateNumberIndex(6),
- /* parameters */ ParameterIndex(6),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(9),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(70),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
/* [14] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 6,
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 2,
/* num_template_types */ 2,
- /* num_template_numbers */ 1,
- /* template_types */ TemplateTypeIndex(0),
- /* template_numbers */ TemplateNumberIndex(6),
- /* parameters */ ParameterIndex(0),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(9),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(72),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
/* [15] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 3,
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 2,
/* num_template_types */ 2,
- /* num_template_numbers */ 1,
- /* template_types */ TemplateTypeIndex(0),
- /* template_numbers */ TemplateNumberIndex(6),
- /* parameters */ ParameterIndex(0),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(9),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(74),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(12),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
/* [16] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 4,
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 2,
/* num_template_types */ 2,
- /* num_template_numbers */ 1,
- /* template_types */ TemplateTypeIndex(0),
- /* template_numbers */ TemplateNumberIndex(6),
- /* parameters */ ParameterIndex(6),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(/* invalid */),
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(9),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(76),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(15),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -1591,12 +2156,12 @@
/* [17] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 2,
- /* num_template_types */ 1,
- /* num_template_numbers */ 1,
- /* template_types */ TemplateTypeIndex(5),
- /* template_numbers */ TemplateNumberIndex(3),
- /* parameters */ ParameterIndex(14),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* num_template_types */ 2,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(9),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(78),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(18),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -1605,12 +2170,12 @@
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 2,
/* num_template_types */ 1,
- /* num_template_numbers */ 3,
- /* template_types */ TemplateTypeIndex(5),
- /* template_numbers */ TemplateNumberIndex(0),
- /* parameters */ ParameterIndex(19),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(25),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(3),
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(10),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(80),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(45),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -1618,12 +2183,12 @@
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 2,
/* num_template_types */ 1,
- /* num_template_numbers */ 2,
- /* template_types */ TemplateTypeIndex(5),
- /* template_numbers */ TemplateNumberIndex(3),
- /* parameters */ ParameterIndex(21),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(25),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(8),
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(10),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(82),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(47),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -1631,12 +2196,12 @@
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 2,
/* num_template_types */ 1,
- /* num_template_numbers */ 2,
- /* template_types */ TemplateTypeIndex(5),
- /* template_numbers */ TemplateNumberIndex(3),
- /* parameters */ ParameterIndex(23),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(23),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(3),
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(10),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(84),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(49),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -1644,23 +2209,283 @@
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 2,
/* num_template_types */ 1,
- /* num_template_numbers */ 2,
- /* template_types */ TemplateTypeIndex(5),
- /* template_numbers */ TemplateNumberIndex(3),
- /* parameters */ ParameterIndex(15),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(23),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(3),
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(10),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(86),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(51),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
/* [22] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 4,
+ /* num_template_types */ 4,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(0),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(10),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(25),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [23] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 4,
+ /* num_template_types */ 4,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(0),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(14),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(25),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [24] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 4,
+ /* num_template_types */ 4,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(0),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(18),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(25),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [25] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 4,
+ /* num_template_types */ 4,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(0),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(22),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(25),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [26] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 4,
+ /* num_template_types */ 4,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(0),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(26),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(25),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [27] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 4,
+ /* num_template_types */ 3,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(4),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(30),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [28] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 4,
+ /* num_template_types */ 3,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(4),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(34),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [29] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 4,
+ /* num_template_types */ 3,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(4),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(38),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [30] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 3,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(13),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(54),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [31] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 3,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 1,
+ /* template_types */ TemplateTypeIndex(13),
+ /* template_numbers */ TemplateNumberIndex(9),
+ /* parameters */ ParameterIndex(57),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(23),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [32] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 2,
/* num_template_types */ 1,
/* num_template_numbers */ 1,
- /* template_types */ TemplateTypeIndex(5),
- /* template_numbers */ TemplateNumberIndex(3),
- /* parameters */ ParameterIndex(24),
+ /* template_types */ TemplateTypeIndex(11),
+ /* template_numbers */ TemplateNumberIndex(11),
+ /* parameters */ ParameterIndex(61),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(38),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [33] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 4,
+ /* num_template_types */ 2,
+ /* num_template_numbers */ 1,
+ /* template_types */ TemplateTypeIndex(7),
+ /* template_numbers */ TemplateNumberIndex(12),
+ /* parameters */ ParameterIndex(6),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [34] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 6,
+ /* num_template_types */ 2,
+ /* num_template_numbers */ 1,
+ /* template_types */ TemplateTypeIndex(7),
+ /* template_numbers */ TemplateNumberIndex(12),
+ /* parameters */ ParameterIndex(0),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [35] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 3,
+ /* num_template_types */ 2,
+ /* num_template_numbers */ 1,
+ /* template_types */ TemplateTypeIndex(7),
+ /* template_numbers */ TemplateNumberIndex(12),
+ /* parameters */ ParameterIndex(0),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [36] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 4,
+ /* num_template_types */ 2,
+ /* num_template_numbers */ 1,
+ /* template_types */ TemplateTypeIndex(7),
+ /* template_numbers */ TemplateNumberIndex(12),
+ /* parameters */ ParameterIndex(6),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(/* invalid */),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [37] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 2,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 1,
+ /* template_types */ TemplateTypeIndex(12),
+ /* template_numbers */ TemplateNumberIndex(9),
+ /* parameters */ ParameterIndex(58),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [38] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 2,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 3,
+ /* template_types */ TemplateTypeIndex(12),
+ /* template_numbers */ TemplateNumberIndex(0),
+ /* parameters */ ParameterIndex(63),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(43),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(4),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [39] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 2,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 2,
+ /* template_types */ TemplateTypeIndex(12),
+ /* template_numbers */ TemplateNumberIndex(9),
+ /* parameters */ ParameterIndex(65),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(43),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(3),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [40] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 2,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 2,
+ /* template_types */ TemplateTypeIndex(12),
+ /* template_numbers */ TemplateNumberIndex(9),
+ /* parameters */ ParameterIndex(67),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(23),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(4),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [41] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 2,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 2,
+ /* template_types */ TemplateTypeIndex(12),
+ /* template_numbers */ TemplateNumberIndex(9),
+ /* parameters */ ParameterIndex(59),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(23),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(4),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [42] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 2,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 1,
+ /* template_types */ TemplateTypeIndex(12),
+ /* template_numbers */ TemplateNumberIndex(9),
+ /* parameters */ ParameterIndex(68),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(23),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
@@ -1675,112 +2500,142 @@
/* [0] */
/* fn array_length<I : u32, A : access>(ptr<storage, struct_with_runtime_array, A>, I) -> u32 */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(12),
+ /* overloads */ OverloadIndex(32),
},
{
/* [1] */
/* fn atomic_and<T : iu32, U : u32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, U, U, T) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(13),
+ /* overloads */ OverloadIndex(33),
},
{
/* [2] */
/* fn atomic_compare_exchange<T : iu32, U : u32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, U, U, U, T, T) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(14),
+ /* overloads */ OverloadIndex(34),
},
{
/* [3] */
/* fn atomic_exchange<T : iu32, U : u32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, U, U, T) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(13),
+ /* overloads */ OverloadIndex(33),
},
{
/* [4] */
/* fn atomic_iadd<T : iu32, U : u32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, U, U, T) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(13),
+ /* overloads */ OverloadIndex(33),
},
{
/* [5] */
/* fn atomic_isub<T : iu32, U : u32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, U, U, T) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(13),
+ /* overloads */ OverloadIndex(33),
},
{
/* [6] */
/* fn atomic_load<T : iu32, U : u32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, U, U) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(15),
+ /* overloads */ OverloadIndex(35),
},
{
/* [7] */
/* fn atomic_or<T : iu32, U : u32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, U, U, T) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(13),
+ /* overloads */ OverloadIndex(33),
},
{
/* [8] */
/* fn atomic_smax<T : iu32, U : u32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, U, U, T) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(13),
+ /* overloads */ OverloadIndex(33),
},
{
/* [9] */
/* fn atomic_smin<T : iu32, U : u32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, U, U, T) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(13),
+ /* overloads */ OverloadIndex(33),
},
{
/* [10] */
/* fn atomic_store<T : iu32, U : u32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, U, U, T) */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(16),
+ /* overloads */ OverloadIndex(36),
},
{
/* [11] */
/* fn atomic_umax<T : iu32, U : u32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, U, U, T) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(13),
+ /* overloads */ OverloadIndex(33),
},
{
/* [12] */
/* fn atomic_umin<T : iu32, U : u32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, U, U, T) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(13),
+ /* overloads */ OverloadIndex(33),
},
{
/* [13] */
/* fn atomic_xor<T : iu32, U : u32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, U, U, T) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(13),
+ /* overloads */ OverloadIndex(33),
},
{
/* [14] */
/* fn dot<N : num, T : f32_f16>(vec<N, T>, vec<N, T>) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(17),
+ /* overloads */ OverloadIndex(37),
},
{
/* [15] */
- /* fn matrix_times_matrix<T : f32_f16, K : num, C : num, R : num>(mat<K, R, T>, mat<C, K, T>) -> mat<C, R, T> */
- /* num overloads */ 1,
- /* overloads */ OverloadIndex(18),
+ /* fn image_fetch<T : fiu32, C : iu32, I : iu32, S : iu32>(texture_1d<T>, C, I, S) -> vec4<T> */
+ /* fn image_fetch<T : fiu32, C : iu32, I : iu32, S : iu32>(texture_2d<T>, vec2<C>, I, S) -> vec4<T> */
+ /* fn image_fetch<T : fiu32, C : iu32, I : iu32, S : iu32>(texture_2d_array<T>, vec3<C>, I, S) -> vec4<T> */
+ /* fn image_fetch<T : fiu32, C : iu32, I : iu32, S : iu32>(texture_3d<T>, vec3<C>, I, S) -> vec4<T> */
+ /* fn image_fetch<T : fiu32, C : iu32, I : iu32, S : iu32>(texture_multisampled_2d<T>, vec2<C>, I, S) -> vec4<T> */
+ /* fn image_fetch<I : iu32, C : iu32, S : iu32>(texture_depth_2d, vec2<C>, I, S) -> vec4<f32> */
+ /* fn image_fetch<I : iu32, C : iu32, S : iu32>(texture_depth_2d_array, vec3<C>, I, S) -> vec4<f32> */
+ /* fn image_fetch<I : iu32, C : iu32, S : iu32>(texture_depth_multisampled_2d, vec2<C>, I, S) -> vec4<f32> */
+ /* num overloads */ 8,
+ /* overloads */ OverloadIndex(22),
},
{
/* [16] */
- /* fn matrix_times_scalar<T : f32_f16, N : num, M : num>(mat<N, M, T>, T) -> mat<N, M, T> */
- /* num overloads */ 1,
- /* overloads */ OverloadIndex(19),
+ /* fn image_read<F : f32_texel_format, A : readable, C : iu32, S : iu32>(texture_storage_1d<F, A>, C, S) -> vec4<f32> */
+ /* fn image_read<F : i32_texel_format, A : readable, C : iu32, S : iu32>(texture_storage_1d<F, A>, C, S) -> vec4<i32> */
+ /* fn image_read<F : u32_texel_format, A : readable, C : iu32, S : iu32>(texture_storage_1d<F, A>, C, S) -> vec4<u32> */
+ /* fn image_read<F : f32_texel_format, A : readable, C : iu32, S : iu32>(texture_storage_2d<F, A>, vec2<C>, S) -> vec4<f32> */
+ /* fn image_read<F : i32_texel_format, A : readable, C : iu32, S : iu32>(texture_storage_2d<F, A>, vec2<C>, S) -> vec4<i32> */
+ /* fn image_read<F : u32_texel_format, A : readable, C : iu32, S : iu32>(texture_storage_2d<F, A>, vec2<C>, S) -> vec4<u32> */
+ /* fn image_read<F : f32_texel_format, A : readable, C : iu32, S : iu32>(texture_storage_2d_array<F, A>, vec3<C>, S) -> vec4<f32> */
+ /* fn image_read<F : i32_texel_format, A : readable, C : iu32, S : iu32>(texture_storage_2d_array<F, A>, vec3<C>, S) -> vec4<i32> */
+ /* fn image_read<F : u32_texel_format, A : readable, C : iu32, S : iu32>(texture_storage_2d_array<F, A>, vec3<C>, S) -> vec4<u32> */
+ /* fn image_read<F : f32_texel_format, A : readable, C : iu32, S : iu32>(texture_storage_3d<F, A>, vec3<C>, S) -> vec4<f32> */
+ /* fn image_read<F : i32_texel_format, A : readable, C : iu32, S : iu32>(texture_storage_3d<F, A>, vec3<C>, S) -> vec4<i32> */
+ /* fn image_read<F : u32_texel_format, A : readable, C : iu32, S : iu32>(texture_storage_3d<F, A>, vec3<C>, S) -> vec4<u32> */
+ /* num overloads */ 12,
+ /* overloads */ OverloadIndex(0),
},
{
/* [17] */
- /* fn matrix_times_vector<T : f32_f16, N : num, M : num>(mat<N, M, T>, vec<N, T>) -> vec<M, T> */
+ /* fn matrix_times_matrix<T : f32_f16, K : num, C : num, R : num>(mat<K, R, T>, mat<C, K, T>) -> mat<C, R, T> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(20),
+ /* overloads */ OverloadIndex(38),
},
{
/* [18] */
+ /* fn matrix_times_scalar<T : f32_f16, N : num, M : num>(mat<N, M, T>, T) -> mat<N, M, T> */
+ /* num overloads */ 1,
+ /* overloads */ OverloadIndex(39),
+ },
+ {
+ /* [19] */
+ /* fn matrix_times_vector<T : f32_f16, N : num, M : num>(mat<N, M, T>, vec<N, T>) -> vec<M, T> */
+ /* num overloads */ 1,
+ /* overloads */ OverloadIndex(40),
+ },
+ {
+ /* [20] */
/* fn sampled_image<T : fiu32, S : samplers>(texture_1d<T>, S) -> sampled_image<texture_1d<T>> */
/* fn sampled_image<T : fiu32, S : samplers>(texture_2d<T>, S) -> sampled_image<texture_2d<T>> */
/* fn sampled_image<T : fiu32, S : samplers>(texture_2d_array<T>, S) -> sampled_image<texture_2d_array<T>> */
@@ -1792,26 +2647,26 @@
/* fn sampled_image<S : samplers>(texture_depth_cube, S) -> sampled_image<texture_depth_cube> */
/* fn sampled_image<S : samplers>(texture_depth_cube_array, S) -> sampled_image<texture_depth_cube_array> */
/* num overloads */ 10,
- /* overloads */ OverloadIndex(0),
- },
- {
- /* [19] */
- /* fn select<T : scalar>(bool, T, T) -> T */
- /* fn select<N : num, T : scalar>(vec<N, bool>, vec<N, T>, vec<N, T>) -> vec<N, T> */
- /* num overloads */ 2,
- /* overloads */ OverloadIndex(10),
- },
- {
- /* [20] */
- /* fn vector_times_matrix<T : f32_f16, N : num, M : num>(vec<N, T>, mat<M, N, T>) -> vec<M, T> */
- /* num overloads */ 1,
- /* overloads */ OverloadIndex(21),
+ /* overloads */ OverloadIndex(12),
},
{
/* [21] */
+ /* fn select<T : scalar>(bool, T, T) -> T */
+ /* fn select<N : num, T : scalar>(vec<N, bool>, vec<N, T>, vec<N, T>) -> vec<N, T> */
+ /* num overloads */ 2,
+ /* overloads */ OverloadIndex(30),
+ },
+ {
+ /* [22] */
+ /* fn vector_times_matrix<T : f32_f16, N : num, M : num>(vec<N, T>, mat<M, N, T>) -> vec<M, T> */
+ /* num overloads */ 1,
+ /* overloads */ OverloadIndex(41),
+ },
+ {
+ /* [23] */
/* fn vector_times_scalar<T : f32_f16, N : num>(vec<N, T>, T) -> vec<N, T> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(22),
+ /* overloads */ OverloadIndex(42),
},
};
diff --git a/src/tint/lang/spirv/ir/function.cc b/src/tint/lang/spirv/ir/function.cc
index a0e4d8f..6cfdceb 100644
--- a/src/tint/lang/spirv/ir/function.cc
+++ b/src/tint/lang/spirv/ir/function.cc
@@ -59,6 +59,10 @@
return "spirv.atomic_xor";
case Function::kDot:
return "spirv.dot";
+ case Function::kImageFetch:
+ return "spirv.image_fetch";
+ case Function::kImageRead:
+ return "spirv.image_read";
case Function::kMatrixTimesMatrix:
return "spirv.matrix_times_matrix";
case Function::kMatrixTimesScalar:
diff --git a/src/tint/lang/spirv/ir/function.h b/src/tint/lang/spirv/ir/function.h
index 50cd120..5fa185c 100644
--- a/src/tint/lang/spirv/ir/function.h
+++ b/src/tint/lang/spirv/ir/function.h
@@ -49,6 +49,8 @@
kAtomicUmin,
kAtomicXor,
kDot,
+ kImageFetch,
+ kImageRead,
kMatrixTimesMatrix,
kMatrixTimesScalar,
kMatrixTimesVector,
diff --git a/src/tint/lang/spirv/ir/intrinsic.cc b/src/tint/lang/spirv/ir/intrinsic.cc
index 86623ba..61dd42f 100644
--- a/src/tint/lang/spirv/ir/intrinsic.cc
+++ b/src/tint/lang/spirv/ir/intrinsic.cc
@@ -32,9 +32,6 @@
if (str == "image_dref_gather") {
return Intrinsic::kImageDrefGather;
}
- if (str == "image_fetch") {
- return Intrinsic::kImageFetch;
- }
if (str == "image_gather") {
return Intrinsic::kImageGather;
}
@@ -44,9 +41,6 @@
if (str == "image_query_size_lod") {
return Intrinsic::kImageQuerySizeLod;
}
- if (str == "image_read") {
- return Intrinsic::kImageRead;
- }
if (str == "image_sample_dref_explicit_lod") {
return Intrinsic::kImageSampleDrefExplicitLod;
}
@@ -71,16 +65,12 @@
return "undefined";
case Intrinsic::kImageDrefGather:
return "image_dref_gather";
- case Intrinsic::kImageFetch:
- return "image_fetch";
case Intrinsic::kImageGather:
return "image_gather";
case Intrinsic::kImageQuerySize:
return "image_query_size";
case Intrinsic::kImageQuerySizeLod:
return "image_query_size_lod";
- case Intrinsic::kImageRead:
- return "image_read";
case Intrinsic::kImageSampleDrefExplicitLod:
return "image_sample_dref_explicit_lod";
case Intrinsic::kImageSampleDrefImplicitLod:
diff --git a/src/tint/lang/spirv/ir/intrinsic.h b/src/tint/lang/spirv/ir/intrinsic.h
index a45688c..f6728de 100644
--- a/src/tint/lang/spirv/ir/intrinsic.h
+++ b/src/tint/lang/spirv/ir/intrinsic.h
@@ -35,11 +35,9 @@
enum class Intrinsic : uint8_t {
kUndefined,
kImageDrefGather,
- kImageFetch,
kImageGather,
kImageQuerySize,
kImageQuerySizeLod,
- kImageRead,
kImageSampleDrefExplicitLod,
kImageSampleDrefImplicitLod,
kImageSampleExplicitLod,
@@ -66,11 +64,9 @@
constexpr const char* kIntrinsicStrings[] = {
"image_dref_gather",
- "image_fetch",
"image_gather",
"image_query_size",
"image_query_size_lod",
- "image_read",
"image_sample_dref_explicit_lod",
"image_sample_dref_implicit_lod",
"image_sample_explicit_lod",
diff --git a/src/tint/lang/spirv/spirv.def b/src/tint/lang/spirv/spirv.def
index 9557909..332d31b 100644
--- a/src/tint/lang/spirv/spirv.def
+++ b/src/tint/lang/spirv/spirv.def
@@ -47,10 +47,16 @@
type texture_3d<T>
type texture_cube<T>
type texture_cube_array<T>
+type texture_multisampled_2d<T>
type texture_depth_2d
type texture_depth_2d_array
type texture_depth_cube
type texture_depth_cube_array
+type texture_depth_multisampled_2d
+type texture_storage_1d<F: texel_format, A: access>
+type texture_storage_2d<F: texel_format, A: access>
+type texture_storage_2d_array<F: texel_format, A: access>
+type texture_storage_3d<F: texel_format, A: access>
type ptr<S: address_space, T, A: access>
type struct_with_runtime_array
@@ -72,6 +78,26 @@
read_write
}
+enum texel_format {
+ bgra8unorm
+ rgba8unorm
+ rgba8snorm
+ rgba8uint
+ rgba8sint
+ rgba16uint
+ rgba16sint
+ rgba16float
+ r32uint
+ r32sint
+ r32float
+ rg32uint
+ rg32sint
+ rg32float
+ rgba32uint
+ rgba32sint
+ rgba32float
+}
+
match f32_f16: f32 | f16
match iu32: i32 | u32
match fiu32: f32 | i32 | u32
@@ -88,17 +114,40 @@
: sampler
| sampler_comparison
+match f32_texel_format
+ : texel_format.bgra8unorm
+ | texel_format.rgba8unorm
+ | texel_format.rgba8snorm
+ | texel_format.rgba16float
+ | texel_format.r32float
+ | texel_format.rg32float
+ | texel_format.rgba32float
+match i32_texel_format
+ : texel_format.rgba8sint
+ | texel_format.rgba16sint
+ | texel_format.r32sint
+ | texel_format.rg32sint
+ | texel_format.rgba32sint
+match u32_texel_format
+ : texel_format.rgba8uint
+ | texel_format.rgba16uint
+ | texel_format.r32uint
+ | texel_format.rg32uint
+ | texel_format.rgba32uint
+
+match readable
+ : access.read
+ | access.read_write
+
////////////////////////////////////////////////////////////////////////////////
// Enumerators //
////////////////////////////////////////////////////////////////////////////////
enum intrinsic {
- image_fetch
image_gather
image_dref_gather
image_query_size
image_query_size_lod
- image_read
image_sample_implicit_lod
image_sample_explicit_lod
image_sample_dref_implicit_lod
@@ -127,6 +176,27 @@
fn dot<N: num, T: f32_f16>(vec<N, T>, vec<N, T>) -> T
+fn image_fetch<T: fiu32, C: iu32, I: iu32, S: iu32>(texture_1d<T>, C, I, S) -> vec4<T>
+fn image_fetch<T: fiu32, C: iu32, I: iu32, S: iu32>(texture_2d<T>, vec2<C>, I, S) -> vec4<T>
+fn image_fetch<T: fiu32, C: iu32, I: iu32, S: iu32>(texture_2d_array<T>, vec3<C>, I, S) -> vec4<T>
+fn image_fetch<T: fiu32, C: iu32, I: iu32, S: iu32>(texture_3d<T>, vec3<C>, I, S) -> vec4<T>
+fn image_fetch<T: fiu32, C: iu32, I: iu32, S: iu32>(texture_multisampled_2d<T>, vec2<C>, I, S) -> vec4<T>
+fn image_fetch<I: iu32, C: iu32, S: iu32>(texture_depth_2d, vec2<C>, I, S) -> vec4<f32>
+fn image_fetch<I: iu32, C: iu32, S: iu32>(texture_depth_2d_array, vec3<C>, I, S) -> vec4<f32>
+fn image_fetch<I: iu32, C: iu32, S: iu32>(texture_depth_multisampled_2d, vec2<C>, I, S) -> vec4<f32>
+fn image_read<F: f32_texel_format, A: readable, C: iu32, S: iu32>(texture_storage_1d<F, A>, C, S) -> vec4<f32>
+fn image_read<F: i32_texel_format, A: readable, C: iu32, S: iu32>(texture_storage_1d<F, A>, C, S) -> vec4<i32>
+fn image_read<F: u32_texel_format, A: readable, C: iu32, S: iu32>(texture_storage_1d<F, A>, C, S) -> vec4<u32>
+fn image_read<F: f32_texel_format, A: readable, C: iu32, S: iu32>(texture_storage_2d<F, A>, vec2<C>, S) -> vec4<f32>
+fn image_read<F: i32_texel_format, A: readable, C: iu32, S: iu32>(texture_storage_2d<F, A>, vec2<C>, S) -> vec4<i32>
+fn image_read<F: u32_texel_format, A: readable, C: iu32, S: iu32>(texture_storage_2d<F, A>, vec2<C>, S) -> vec4<u32>
+fn image_read<F: f32_texel_format, A: readable, C: iu32, S: iu32>(texture_storage_2d_array<F, A>, vec3<C>, S) -> vec4<f32>
+fn image_read<F: i32_texel_format, A: readable, C: iu32, S: iu32>(texture_storage_2d_array<F, A>, vec3<C>, S) -> vec4<i32>
+fn image_read<F: u32_texel_format, A: readable, C: iu32, S: iu32>(texture_storage_2d_array<F, A>, vec3<C>, S) -> vec4<u32>
+fn image_read<F: f32_texel_format, A: readable, C: iu32, S: iu32>(texture_storage_3d<F, A>, vec3<C>, S) -> vec4<f32>
+fn image_read<F: i32_texel_format, A: readable, C: iu32, S: iu32>(texture_storage_3d<F, A>, vec3<C>, S) -> vec4<i32>
+fn image_read<F: u32_texel_format, A: readable, C: iu32, S: iu32>(texture_storage_3d<F, A>, vec3<C>, S) -> vec4<u32>
+
fn matrix_times_matrix<T: f32_f16, K: num, C: num, R: num>(mat<K, R, T>, mat<C, K, T>) -> mat<C, R, T>
fn matrix_times_scalar<T: f32_f16, N: num, M: num>(mat<N, M, T>, T) -> mat<N, M, T>
fn matrix_times_vector<T: f32_f16, N: num, M: num>(mat<N, M, T>, vec<N, T>) -> vec<M, T>
diff --git a/src/tint/lang/spirv/writer/printer/printer.cc b/src/tint/lang/spirv/writer/printer/printer.cc
index c5d07c7..2b882ee 100644
--- a/src/tint/lang/spirv/writer/printer/printer.cc
+++ b/src/tint/lang/spirv/writer/printer/printer.cc
@@ -1081,6 +1081,12 @@
case spirv::ir::Function::kDot:
op = spv::Op::OpDot;
break;
+ case spirv::ir::Function::kImageFetch:
+ op = spv::Op::OpImageFetch;
+ break;
+ case spirv::ir::Function::kImageRead:
+ op = spv::Op::OpImageRead;
+ break;
case spirv::ir::Function::kMatrixTimesMatrix:
op = spv::Op::OpMatrixTimesMatrix;
break;
@@ -1566,9 +1572,6 @@
spv::Op op = spv::Op::Max;
switch (call->Kind()) {
- case spirv::ir::Intrinsic::kImageFetch:
- op = spv::Op::OpImageFetch;
- break;
case spirv::ir::Intrinsic::kImageGather:
op = spv::Op::OpImageGather;
break;
@@ -1583,9 +1586,6 @@
module_.PushCapability(SpvCapabilityImageQuery);
op = spv::Op::OpImageQuerySizeLod;
break;
- case spirv::ir::Intrinsic::kImageRead:
- op = spv::Op::OpImageRead;
- break;
case spirv::ir::Intrinsic::kImageSampleImplicitLod:
op = spv::Op::OpImageSampleImplicitLod;
break;
diff --git a/src/tint/lang/spirv/writer/raise/builtin_polyfill.cc b/src/tint/lang/spirv/writer/raise/builtin_polyfill.cc
index d5fd5bb..f4fa112 100644
--- a/src/tint/lang/spirv/writer/raise/builtin_polyfill.cc
+++ b/src/tint/lang/spirv/writer/raise/builtin_polyfill.cc
@@ -659,11 +659,11 @@
coords = AppendArrayIndex(coords, array_idx, builtin);
}
- // Start building the argument list for the intrinsic.
+ // Start building the argument list for the builtin.
// The first two operands are always the texture and then the coordinates.
- Vector<core::ir::Value*, 8> intrinsic_args;
- intrinsic_args.Push(texture);
- intrinsic_args.Push(coords);
+ Vector<core::ir::Value*, 8> builtin_args;
+ builtin_args.Push(texture);
+ builtin_args.Push(coords);
// Add the optional image operands, if any.
ImageOperands operands;
@@ -673,20 +673,19 @@
} else {
operands.lod = next_arg();
}
- AppendImageOperands(operands, intrinsic_args, builtin, /* requires_float_lod */ false);
+ AppendImageOperands(operands, builtin_args, builtin, /* requires_float_lod */ false);
- // Call the intrinsic.
+ // Call the builtin.
// The result is always a vec4 in SPIR-V.
auto* result_ty = builtin->Result()->Type();
bool expects_scalar_result = result_ty->Is<core::type::Scalar>();
if (expects_scalar_result) {
result_ty = ty.vec4(result_ty);
}
- auto intrinsic = texture_ty->Is<core::type::StorageTexture>()
- ? spirv::ir::Intrinsic::kImageRead
- : spirv::ir::Intrinsic::kImageFetch;
+ auto kind = texture_ty->Is<core::type::StorageTexture>() ? spirv::ir::Function::kImageRead
+ : spirv::ir::Function::kImageFetch;
auto* texture_call =
- b.Call<spirv::ir::IntrinsicCall>(result_ty, intrinsic, std::move(intrinsic_args));
+ b.Call<spirv::ir::BuiltinCall>(result_ty, kind, std::move(builtin_args));
texture_call->InsertBefore(builtin);
auto* result = texture_call->Result();