Import Tint changes from Dawn
Changes:
- 34eee4e680119d3e3c8950bf8c81423813bd550d [hlsl] Invert 'w' component of fragment position by James Price <jrprice@google.com>
- 85b77e002384a06fa182fb672ce98f0e942a5b59 Tint: implement the polyfill of pack4x{U|I}8 with dot pro... by Jiawei Shao <jiawei.shao@intel.com>
- 692b15ba4e194a2f030022989db335814e43ebc8 [tint] Fix nested texture-sampler pair collection by James Price <jrprice@google.com>
- 47ae7fc989645406705ec765a17f686e93e58226 [glsl] Match parameter order in CombineSamplers by James Price <jrprice@google.com>
- c8ca47fb936a40af08c055e28453dd58a2a8e5b3 Implement pack4xI8 and pack4xU8 by Jiawei Shao <jiawei.shao@intel.com>
- fa12b64a994c2db2cd5f8ff05a179c93e727c17b [spirv-reader] Emit module-scope private variables by James Price <jrprice@google.com>
- 6fcd2dbf85165d68c4f2b176b60ddc51bb1ca1c5 [spirv-reader] Handle OpConstantNull by James Price <jrprice@google.com>
- 44fd934e2adc874bc95db04957e7a088d5c41c99 [spirv-reader] Emit function-scope variables by James Price <jrprice@google.com>
- 09b618cf4ec14b9248f4eff7dcb91d05d9eac964 [spirv-reader] Handle vertex shader declarations by James Price <jrprice@google.com>
- 507a650b8a55743a495f4bff335857ee0192246d [spirv-reader] Handle fragment shader declarations by James Price <jrprice@google.com>
- ceb2cd5e21d46fe7cfb7dcb97f25051289969c5e [spirv-reader] Handle float types and constants by James Price <jrprice@google.com>
- 3699f6541792b174cd9e0e8a69f14684d12b382a [spirv-reader] Handle integer types and constants by James Price <jrprice@google.com>
- 2d70c1d55f54f209c25e8a6aed3cf55eb9d255ad [spirv-reader] Implement OpReturnValue by James Price <jrprice@google.com>
- 884af6b070cbee6e32731ad6bf3746b30231aa32 [spirv-reader] Emit function parameters by James Price <jrprice@google.com>
- 9c54476ce64f21d6878ede05af9397dd55973a14 [ir] Fix cloning of variable initializers by James Price <jrprice@google.com>
- 3bb3c53010c7c655a24501d1b8dd76aee33da85f Canonicalize index-ordering of entry point attributes by David Neto <dneto@google.com>
- 0044a0e04d2b4627d2c20c7986525eb4f29ca895 Generate texture builtin cases in a fixed order by David Neto <dneto@google.com>
- ae7600a10992bb52603c66f1760778fcb0650864 [tint][ir] Serialize StorageTexture types by Ben Clayton <bclayton@google.com>
- 60c67169d7d3278f85a91fdba3abce6f16f468ac [msl] Fix default interpolation sampling by James Price <jrprice@google.com>
- 615eeaaaba9ba8b21de204f31d37e8ff075c78f5 [tint][ir] Serialize SampledTexture types and fn return l... by Ben Clayton <bclayton@google.com>
- 66926dc3ebe9343f69a74263373f794933a565f5 [spirv-reader] Emit basic function calls by James Price <jrprice@google.com>
- 230cd69cba7595b55399ab7b06fac2b520678b0e [spirv-reader] Handle entry point declarations for GLComp... by James Price <jrprice@google.com>
- 8eae7c09ab83155ed3114dc1cfaba5b939517b7b [spirv-reader] Start emitting functions by James Price <jrprice@google.com>
- d0dadce62bd0c397373fab0fa5e2dead57b580c6 [spirv-reader] Add PIMPL parser sources by James Price <jrprice@google.com>
GitOrigin-RevId: 34eee4e680119d3e3c8950bf8c81423813bd550d
Change-Id: Id410cc6bce78aff8bdd1c045afdac7fe92c1aa63
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/165820
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
diff --git a/src/tint/cmd/test/BUILD.bazel b/src/tint/cmd/test/BUILD.bazel
index e0e9b73..a44e992 100644
--- a/src/tint/cmd/test/BUILD.bazel
+++ b/src/tint/cmd/test/BUILD.bazel
@@ -121,6 +121,11 @@
],
"//conditions:default": [],
}) + select({
+ ":tint_build_spv_reader": [
+ "//src/tint/lang/spirv/reader/parser:test",
+ ],
+ "//conditions:default": [],
+ }) + select({
":tint_build_spv_reader_and_tint_build_wgsl_reader_and_tint_build_wgsl_writer": [
"//src/tint/lang/spirv/reader/ast_lower:test",
],
diff --git a/src/tint/cmd/test/BUILD.cmake b/src/tint/cmd/test/BUILD.cmake
index 909b3e8..e79c221 100644
--- a/src/tint/cmd/test/BUILD.cmake
+++ b/src/tint/cmd/test/BUILD.cmake
@@ -133,6 +133,12 @@
)
endif(TINT_BUILD_MSL_WRITER AND TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER)
+if(TINT_BUILD_SPV_READER)
+ tint_target_add_dependencies(tint_cmd_test_test_cmd test_cmd
+ tint_lang_spirv_reader_parser_test
+ )
+endif(TINT_BUILD_SPV_READER)
+
if(TINT_BUILD_SPV_READER AND TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER)
tint_target_add_dependencies(tint_cmd_test_test_cmd test_cmd
tint_lang_spirv_reader_ast_lower_test
diff --git a/src/tint/cmd/test/BUILD.gn b/src/tint/cmd/test/BUILD.gn
index 622cf0f..55c146b 100644
--- a/src/tint/cmd/test/BUILD.gn
+++ b/src/tint/cmd/test/BUILD.gn
@@ -127,6 +127,10 @@
deps += [ "${tint_src_dir}/lang/msl/writer/ast_raise:unittests" ]
}
+ if (tint_build_spv_reader) {
+ deps += [ "${tint_src_dir}/lang/spirv/reader/parser:unittests" ]
+ }
+
if (tint_build_spv_reader && tint_build_wgsl_reader &&
tint_build_wgsl_writer) {
deps += [ "${tint_src_dir}/lang/spirv/reader/ast_lower:unittests" ]
diff --git a/src/tint/lang/core/builtin_fn.cc b/src/tint/lang/core/builtin_fn.cc
index 0109b7e..8020b24 100644
--- a/src/tint/lang/core/builtin_fn.cc
+++ b/src/tint/lang/core/builtin_fn.cc
@@ -219,6 +219,12 @@
if (name == "pack4x8unorm") {
return BuiltinFn::kPack4X8Unorm;
}
+ if (name == "pack4xI8") {
+ return BuiltinFn::kPack4XI8;
+ }
+ if (name == "pack4xU8") {
+ return BuiltinFn::kPack4XU8;
+ }
if (name == "pow") {
return BuiltinFn::kPow;
}
@@ -514,6 +520,10 @@
return "pack4x8snorm";
case BuiltinFn::kPack4X8Unorm:
return "pack4x8unorm";
+ case BuiltinFn::kPack4XI8:
+ return "pack4xI8";
+ case BuiltinFn::kPack4XU8:
+ return "pack4xU8";
case BuiltinFn::kPow:
return "pow";
case BuiltinFn::kQuantizeToF16:
@@ -690,7 +700,8 @@
}
bool IsPacked4x8IntegerDotProductBuiltin(BuiltinFn f) {
- return f == BuiltinFn::kDot4I8Packed || f == BuiltinFn::kDot4U8Packed;
+ return f == BuiltinFn::kDot4I8Packed || f == BuiltinFn::kDot4U8Packed ||
+ f == BuiltinFn::kPack4XI8 || f == BuiltinFn::kPack4XU8;
}
bool IsSubgroup(BuiltinFn f) {
diff --git a/src/tint/lang/core/builtin_fn.cc.tmpl b/src/tint/lang/core/builtin_fn.cc.tmpl
index 0a39072..4f0e7e6 100644
--- a/src/tint/lang/core/builtin_fn.cc.tmpl
+++ b/src/tint/lang/core/builtin_fn.cc.tmpl
@@ -101,7 +101,8 @@
}
bool IsPacked4x8IntegerDotProductBuiltin(BuiltinFn f) {
- return f == BuiltinFn::kDot4I8Packed || f == BuiltinFn::kDot4U8Packed;
+ return f == BuiltinFn::kDot4I8Packed || f == BuiltinFn::kDot4U8Packed ||
+ f == BuiltinFn::kPack4XI8 || f == BuiltinFn::kPack4XU8;
}
bool IsSubgroup(BuiltinFn f) {
diff --git a/src/tint/lang/core/builtin_fn.h b/src/tint/lang/core/builtin_fn.h
index badcd4c..95249bd 100644
--- a/src/tint/lang/core/builtin_fn.h
+++ b/src/tint/lang/core/builtin_fn.h
@@ -107,6 +107,8 @@
kPack2X16Unorm,
kPack4X8Snorm,
kPack4X8Unorm,
+ kPack4XI8,
+ kPack4XU8,
kPow,
kQuantizeToF16,
kRadians,
@@ -245,6 +247,8 @@
BuiltinFn::kPack2X16Unorm,
BuiltinFn::kPack4X8Snorm,
BuiltinFn::kPack4X8Unorm,
+ BuiltinFn::kPack4XI8,
+ BuiltinFn::kPack4XU8,
BuiltinFn::kPow,
BuiltinFn::kQuantizeToF16,
BuiltinFn::kRadians,
@@ -365,6 +369,8 @@
"pack2x16unorm",
"pack4x8snorm",
"pack4x8unorm",
+ "pack4xI8",
+ "pack4xU8",
"pow",
"quantizeToF16",
"radians",
diff --git a/src/tint/lang/core/constant/eval.cc b/src/tint/lang/core/constant/eval.cc
index cd21f0a..7a83d71 100644
--- a/src/tint/lang/core/constant/eval.cc
+++ b/src/tint/lang/core/constant/eval.cc
@@ -3268,6 +3268,34 @@
return CreateScalar(source, ty, ret);
}
+Eval::Result Eval::pack4xI8(const core::type::Type* ty,
+ VectorRef<const Value*> args,
+ const Source& source) {
+ auto* e = args[0];
+ auto e0 = e->Index(0)->ValueAs<i32>();
+ auto e1 = e->Index(1)->ValueAs<i32>();
+ auto e2 = e->Index(2)->ValueAs<i32>();
+ auto e3 = e->Index(3)->ValueAs<i32>();
+
+ int32_t mask = 0xff;
+ u32 ret = u32((e0 & mask) | ((e1 & mask) << 8) | ((e2 & mask) << 16) | ((e3 & mask) << 24));
+ return CreateScalar(source, ty, ret);
+}
+
+Eval::Result Eval::pack4xU8(const core::type::Type* ty,
+ VectorRef<const Value*> args,
+ const Source& source) {
+ auto* e = args[0];
+ auto e0 = e->Index(0)->ValueAs<u32>();
+ auto e1 = e->Index(1)->ValueAs<u32>();
+ auto e2 = e->Index(2)->ValueAs<u32>();
+ auto e3 = e->Index(3)->ValueAs<u32>();
+
+ uint32_t mask = 0xff;
+ u32 ret = u32((e0 & mask) | ((e1 & mask) << 8) | ((e2 & mask) << 16) | ((e3 & mask) << 24));
+ return CreateScalar(source, ty, ret);
+}
+
Eval::Result Eval::pow(const core::type::Type* ty,
VectorRef<const Value*> args,
const Source& source) {
diff --git a/src/tint/lang/core/constant/eval.h b/src/tint/lang/core/constant/eval.h
index 7d12980..00114fa 100644
--- a/src/tint/lang/core/constant/eval.h
+++ b/src/tint/lang/core/constant/eval.h
@@ -777,6 +777,20 @@
VectorRef<const Value*> args,
const Source& source);
+ /// pack4xI8 builtin
+ /// @param ty the expression type
+ /// @param args the input arguments
+ /// @param source the source location
+ /// @return the result value, or null if the value cannot be calculated
+ Result pack4xI8(const core::type::Type* ty, VectorRef<const Value*> args, const Source& source);
+
+ /// pack4xU8 builtin
+ /// @param ty the expression type
+ /// @param args the input arguments
+ /// @param source the source location
+ /// @return the result value, or null if the value cannot be calculated
+ Result pack4xU8(const core::type::Type* ty, VectorRef<const Value*> args, const Source& source);
+
/// pow builtin
/// @param ty the expression type
/// @param args the input arguments
diff --git a/src/tint/lang/core/constant/eval_builtin_test.cc b/src/tint/lang/core/constant/eval_builtin_test.cc
index c2ae7a2..a07f32b 100644
--- a/src/tint/lang/core/constant/eval_builtin_test.cc
+++ b/src/tint/lang/core/constant/eval_builtin_test.cc
@@ -2974,5 +2974,47 @@
testing::Combine(testing::Values(core::BuiltinFn::kDot4U8Packed),
testing::ValuesIn(Dot4U8PackedCases())));
+std::vector<Case> Pack4xI8Cases() {
+ return {
+ C({Vec(i32(0), i32(0), i32(0), i32(0))}, Val(u32(0x0000'0000))),
+ C({Vec(i32(1), i32(2), i32(3), i32(4))}, Val(u32(0x0403'0201))),
+ C({Vec(i32(-1), i32(-2), i32(-3), i32(-4))}, Val(u32(0xFCFD'FEFF))),
+ C({Vec(i32(-1), i32(2), i32(3), i32(4))}, Val(u32(0x0403'02FF))),
+ C({Vec(i32(1), i32(-2), i32(3), i32(4))}, Val(u32(0x0403'FE01))),
+ C({Vec(i32(1), i32(2), i32(-3), i32(4))}, Val(u32(0x04FD'0201))),
+ C({Vec(i32(1), i32(2), i32(3), i32(-4))}, Val(u32(0xFC03'0201))),
+ C({Vec(i32(1), i32(-2), i32(-3), i32(-4))}, Val(u32(0xFCFD'FE01))),
+ C({Vec(i32(-1), i32(2), i32(-3), i32(-4))}, Val(u32(0xFCFD'02FF))),
+ C({Vec(i32(-1), i32(-2), i32(3), i32(-4))}, Val(u32(0xFC03'FEFF))),
+ C({Vec(i32(-1), i32(-2), i32(-3), i32(4))}, Val(u32(0x04FD'FEFF))),
+ C({Vec(i32(-1), i32(-2), i32(3), i32(4))}, Val(u32(0x0403'FEFF))),
+ C({Vec(i32(-1), i32(2), i32(-3), i32(4))}, Val(u32(0x04FD'02FF))),
+ C({Vec(i32(-1), i32(2), i32(3), i32(-4))}, Val(u32(0xFC03'02FF))),
+ C({Vec(i32(1), i32(-2), i32(-3), i32(4))}, Val(u32(0x04FD'FE01))),
+ C({Vec(i32(1), i32(-2), i32(3), i32(-4))}, Val(u32(0xFC03'FE01))),
+ C({Vec(i32(1), i32(2), i32(-3), i32(-4))}, Val(u32(0xFCFD'0201))),
+ C({Vec(i32(127), i32(128), i32(-128), i32(-129))}, Val(u32(0x7F80'807F))),
+ };
+}
+INSTANTIATE_TEST_SUITE_P( //
+ Pack4xI8,
+ ConstEvalBuiltinTest,
+ testing::Combine(testing::Values(core::BuiltinFn::kPack4XI8),
+ testing::ValuesIn(Pack4xI8Cases())));
+
+std::vector<Case> Pack4xU8Cases() {
+ return {
+ C({Vec(u32(0), u32(0), u32(0), u32(0))}, Val(u32(0x0000'0000))),
+ C({Vec(u32(2), u32(4), u32(6), u32(8))}, Val(u32(0x0806'0402))),
+ C({Vec(u32(255), u32(255), u32(255), u32(255))}, Val(u32(0xFFFF'FFFF))),
+ C({Vec(u32(254), u32(255), u32(256), u32(257))}, Val(u32(0x0100'FFFE))),
+ };
+}
+INSTANTIATE_TEST_SUITE_P( //
+ Pack4xU8,
+ ConstEvalBuiltinTest,
+ testing::Combine(testing::Values(core::BuiltinFn::kPack4XU8),
+ testing::ValuesIn(Pack4xU8Cases())));
+
} // namespace
} // namespace tint::core::constant::test
diff --git a/src/tint/lang/core/core.def b/src/tint/lang/core/core.def
index 2337b79..137caf5 100644
--- a/src/tint/lang/core/core.def
+++ b/src/tint/lang/core/core.def
@@ -632,6 +632,8 @@
@must_use @const fn pack2x16unorm(vec2<f32>) -> u32
@must_use @const fn pack4x8snorm(vec4<f32>) -> u32
@must_use @const fn pack4x8unorm(vec4<f32>) -> u32
+@must_use @const fn pack4xI8(vec4<i32>) -> u32
+@must_use @const fn pack4xU8(vec4<u32>) -> u32
@must_use @const fn pow<T: fa_f32_f16>(T, T) -> T
@must_use @const fn pow<N: num, T: fa_f32_f16>(vec<N, T>, vec<N, T>) -> vec<N, T>
@must_use @const fn quantizeToF16(f32) -> f32
diff --git a/src/tint/lang/core/intrinsic/data.cc b/src/tint/lang/core/intrinsic/data.cc
index b34f22d..72dd318 100644
--- a/src/tint/lang/core/intrinsic/data.cc
+++ b/src/tint/lang/core/intrinsic/data.cc
@@ -1884,50 +1884,50 @@
/* [27] */ TypeMatcherIndex(9),
/* [28] */ TypeMatcherIndex(13),
/* [29] */ TypeMatcherIndex(9),
- /* [30] */ TypeMatcherIndex(30),
- /* [31] */ TypeMatcherIndex(0),
- /* [32] */ TypeMatcherIndex(11),
+ /* [30] */ TypeMatcherIndex(13),
+ /* [31] */ TypeMatcherIndex(7),
+ /* [32] */ TypeMatcherIndex(13),
/* [33] */ TypeMatcherIndex(8),
- /* [34] */ TypeMatcherIndex(31),
+ /* [34] */ TypeMatcherIndex(30),
/* [35] */ TypeMatcherIndex(0),
- /* [36] */ TypeMatcherIndex(32),
- /* [37] */ TypeMatcherIndex(0),
- /* [38] */ TypeMatcherIndex(12),
- /* [39] */ TypeMatcherIndex(8),
- /* [40] */ TypeMatcherIndex(33),
+ /* [36] */ TypeMatcherIndex(11),
+ /* [37] */ TypeMatcherIndex(8),
+ /* [38] */ TypeMatcherIndex(31),
+ /* [39] */ TypeMatcherIndex(0),
+ /* [40] */ TypeMatcherIndex(32),
/* [41] */ TypeMatcherIndex(0),
- /* [42] */ TypeMatcherIndex(34),
- /* [43] */ TypeMatcherIndex(0),
- /* [44] */ TypeMatcherIndex(35),
+ /* [42] */ TypeMatcherIndex(12),
+ /* [43] */ TypeMatcherIndex(8),
+ /* [44] */ TypeMatcherIndex(33),
/* [45] */ TypeMatcherIndex(0),
- /* [46] */ TypeMatcherIndex(36),
+ /* [46] */ TypeMatcherIndex(34),
/* [47] */ TypeMatcherIndex(0),
- /* [48] */ TypeMatcherIndex(13),
+ /* [48] */ TypeMatcherIndex(35),
/* [49] */ TypeMatcherIndex(0),
- /* [50] */ TypeMatcherIndex(11),
- /* [51] */ TypeMatcherIndex(7),
- /* [52] */ TypeMatcherIndex(12),
- /* [53] */ TypeMatcherIndex(9),
- /* [54] */ TypeMatcherIndex(30),
- /* [55] */ TypeMatcherIndex(9),
- /* [56] */ TypeMatcherIndex(31),
+ /* [50] */ TypeMatcherIndex(36),
+ /* [51] */ TypeMatcherIndex(0),
+ /* [52] */ TypeMatcherIndex(13),
+ /* [53] */ TypeMatcherIndex(0),
+ /* [54] */ TypeMatcherIndex(11),
+ /* [55] */ TypeMatcherIndex(7),
+ /* [56] */ TypeMatcherIndex(12),
/* [57] */ TypeMatcherIndex(9),
- /* [58] */ TypeMatcherIndex(32),
+ /* [58] */ TypeMatcherIndex(30),
/* [59] */ TypeMatcherIndex(9),
- /* [60] */ TypeMatcherIndex(33),
+ /* [60] */ TypeMatcherIndex(31),
/* [61] */ TypeMatcherIndex(9),
- /* [62] */ TypeMatcherIndex(12),
- /* [63] */ TypeMatcherIndex(7),
- /* [64] */ TypeMatcherIndex(34),
+ /* [62] */ TypeMatcherIndex(32),
+ /* [63] */ TypeMatcherIndex(9),
+ /* [64] */ TypeMatcherIndex(33),
/* [65] */ TypeMatcherIndex(9),
- /* [66] */ TypeMatcherIndex(35),
- /* [67] */ TypeMatcherIndex(9),
- /* [68] */ TypeMatcherIndex(11),
- /* [69] */ TypeMatcherIndex(0),
- /* [70] */ TypeMatcherIndex(13),
- /* [71] */ TypeMatcherIndex(7),
- /* [72] */ TypeMatcherIndex(13),
- /* [73] */ TypeMatcherIndex(8),
+ /* [66] */ TypeMatcherIndex(12),
+ /* [67] */ TypeMatcherIndex(7),
+ /* [68] */ TypeMatcherIndex(34),
+ /* [69] */ TypeMatcherIndex(9),
+ /* [70] */ TypeMatcherIndex(35),
+ /* [71] */ TypeMatcherIndex(9),
+ /* [72] */ TypeMatcherIndex(11),
+ /* [73] */ TypeMatcherIndex(0),
/* [74] */ TypeMatcherIndex(11),
/* [75] */ TypeMatcherIndex(1),
/* [76] */ TypeMatcherIndex(12),
@@ -2177,7 +2177,7 @@
{
/* [19] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(58),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(62),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2213,7 +2213,7 @@
{
/* [25] */
/* usage */ core::ParameterUsage::kOffset,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(50),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(54),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2225,7 +2225,7 @@
{
/* [27] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(36),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(40),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2249,7 +2249,7 @@
{
/* [31] */
/* usage */ core::ParameterUsage::kOffset,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(50),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(54),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2285,13 +2285,13 @@
{
/* [37] */
/* usage */ core::ParameterUsage::kOffset,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(50),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(54),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [38] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(58),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(62),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2321,13 +2321,13 @@
{
/* [43] */
/* usage */ core::ParameterUsage::kOffset,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(50),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(54),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [44] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(60),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2357,13 +2357,13 @@
{
/* [49] */
/* usage */ core::ParameterUsage::kOffset,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(50),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(54),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [50] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(60),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(64),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2375,31 +2375,31 @@
{
/* [52] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [53] */
/* usage */ core::ParameterUsage::kDdx,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [54] */
/* usage */ core::ParameterUsage::kDdy,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [55] */
/* usage */ core::ParameterUsage::kOffset,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(62),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(66),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [56] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(66),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(70),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2411,7 +2411,7 @@
{
/* [58] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2423,19 +2423,19 @@
{
/* [60] */
/* usage */ core::ParameterUsage::kDdx,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [61] */
/* usage */ core::ParameterUsage::kDdy,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [62] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(58),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(62),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2465,7 +2465,7 @@
{
/* [67] */
/* usage */ core::ParameterUsage::kOffset,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(50),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(54),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2501,7 +2501,7 @@
{
/* [73] */
/* usage */ core::ParameterUsage::kOffset,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(50),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(54),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2513,7 +2513,7 @@
{
/* [75] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(34),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(38),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2531,7 +2531,7 @@
{
/* [78] */
/* usage */ core::ParameterUsage::kOffset,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(50),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(54),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2543,7 +2543,7 @@
{
/* [80] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(44),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(48),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2555,7 +2555,7 @@
{
/* [82] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2591,7 +2591,7 @@
{
/* [88] */
/* usage */ core::ParameterUsage::kOffset,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(50),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(54),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2621,7 +2621,7 @@
{
/* [93] */
/* usage */ core::ParameterUsage::kOffset,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(50),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(54),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2639,7 +2639,7 @@
{
/* [96] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2657,7 +2657,7 @@
{
/* [99] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(58),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(62),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2681,13 +2681,13 @@
{
/* [103] */
/* usage */ core::ParameterUsage::kOffset,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(50),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(54),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [104] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(60),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2711,13 +2711,13 @@
{
/* [108] */
/* usage */ core::ParameterUsage::kOffset,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(50),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(54),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [109] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(60),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(64),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2729,7 +2729,7 @@
{
/* [111] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2741,13 +2741,13 @@
{
/* [113] */
/* usage */ core::ParameterUsage::kOffset,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(62),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(66),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [114] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(66),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(70),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2759,7 +2759,7 @@
{
/* [116] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2777,7 +2777,7 @@
{
/* [119] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(64),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(68),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2789,25 +2789,25 @@
{
/* [121] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [122] */
/* usage */ core::ParameterUsage::kDdx,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [123] */
/* usage */ core::ParameterUsage::kDdy,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [124] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(60),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2831,13 +2831,13 @@
{
/* [128] */
/* usage */ core::ParameterUsage::kOffset,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(50),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(54),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [129] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(60),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(64),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2849,7 +2849,7 @@
{
/* [131] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2861,13 +2861,13 @@
{
/* [133] */
/* usage */ core::ParameterUsage::kOffset,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(62),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(66),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [134] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(66),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(70),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2879,7 +2879,7 @@
{
/* [136] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2921,7 +2921,7 @@
{
/* [143] */
/* usage */ core::ParameterUsage::kOffset,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(50),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(54),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2939,7 +2939,7 @@
{
/* [146] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2987,7 +2987,7 @@
{
/* [154] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(42),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(46),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2999,7 +2999,7 @@
{
/* [156] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3023,7 +3023,7 @@
{
/* [160] */
/* usage */ core::ParameterUsage::kOffset,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(50),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(54),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3041,7 +3041,7 @@
{
/* [163] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3053,7 +3053,7 @@
{
/* [165] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(60),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3071,13 +3071,13 @@
{
/* [168] */
/* usage */ core::ParameterUsage::kOffset,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(50),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(54),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [169] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(60),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(64),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3089,19 +3089,19 @@
{
/* [171] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [172] */
/* usage */ core::ParameterUsage::kOffset,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(62),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(66),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [173] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(64),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(68),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3113,7 +3113,7 @@
{
/* [175] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3125,7 +3125,7 @@
{
/* [177] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(64),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(68),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3137,7 +3137,7 @@
{
/* [179] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3161,7 +3161,7 @@
{
/* [183] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3179,7 +3179,7 @@
{
/* [186] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(68),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(72),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3203,7 +3203,7 @@
{
/* [190] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(68),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(72),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3215,7 +3215,7 @@
{
/* [192] */
/* usage */ core::ParameterUsage::kValue,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(70),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(30),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3227,7 +3227,7 @@
{
/* [194] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(68),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(72),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3239,13 +3239,13 @@
{
/* [196] */
/* usage */ core::ParameterUsage::kValue,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(72),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(32),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [197] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(36),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(40),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3275,7 +3275,7 @@
{
/* [202] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(68),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(72),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3317,25 +3317,25 @@
{
/* [209] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(68),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(72),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [210] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(68),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(72),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [211] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(68),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(72),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [212] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(68),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(72),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3365,25 +3365,25 @@
{
/* [217] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(48),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(52),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [218] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(48),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(52),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [219] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(48),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(52),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [220] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(48),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(52),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3473,7 +3473,7 @@
{
/* [235] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(54),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(58),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3533,7 +3533,7 @@
{
/* [245] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(68),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(72),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3575,7 +3575,7 @@
{
/* [252] */
/* usage */ core::ParameterUsage::kValue,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(70),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(30),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3587,13 +3587,13 @@
{
/* [254] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(68),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(72),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [255] */
/* usage */ core::ParameterUsage::kValue,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(70),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(30),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3611,7 +3611,7 @@
{
/* [258] */
/* usage */ core::ParameterUsage::kValue,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(70),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(30),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3629,7 +3629,7 @@
{
/* [261] */
/* usage */ core::ParameterUsage::kValue,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(72),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(32),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3641,13 +3641,13 @@
{
/* [263] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(68),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(72),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [264] */
/* usage */ core::ParameterUsage::kValue,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(72),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(32),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3665,13 +3665,13 @@
{
/* [267] */
/* usage */ core::ParameterUsage::kValue,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(72),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(32),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [268] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(30),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(34),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3689,7 +3689,7 @@
{
/* [271] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(34),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(38),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3707,7 +3707,7 @@
{
/* [274] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(40),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(44),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3725,7 +3725,7 @@
{
/* [277] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(46),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(50),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3749,7 +3749,7 @@
{
/* [281] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(68),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(72),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3767,7 +3767,7 @@
{
/* [284] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(68),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(72),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3785,7 +3785,7 @@
{
/* [287] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(68),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(72),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3803,7 +3803,7 @@
{
/* [290] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(68),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(72),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3821,7 +3821,7 @@
{
/* [293] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(68),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(72),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3833,7 +3833,7 @@
{
/* [295] */
/* usage */ core::ParameterUsage::kXy,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(68),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(72),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3857,7 +3857,7 @@
{
/* [299] */
/* usage */ core::ParameterUsage::kYz,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(68),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(72),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3881,7 +3881,7 @@
{
/* [303] */
/* usage */ core::ParameterUsage::kZw,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(68),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(72),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3911,7 +3911,7 @@
{
/* [308] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(30),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(34),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3923,7 +3923,7 @@
{
/* [310] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(34),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(38),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3935,7 +3935,7 @@
{
/* [312] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(36),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(40),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3947,7 +3947,7 @@
{
/* [314] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(40),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(44),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3959,7 +3959,7 @@
{
/* [316] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(42),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(46),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3971,7 +3971,7 @@
{
/* [318] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(44),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(48),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -4037,7 +4037,7 @@
{
/* [329] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(68),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(72),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -4085,7 +4085,7 @@
{
/* [337] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(68),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(72),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -4097,7 +4097,7 @@
{
/* [339] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(68),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(72),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -4109,7 +4109,7 @@
{
/* [341] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(68),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(72),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -4235,13 +4235,13 @@
{
/* [362] */
/* usage */ core::ParameterUsage::kXy,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(68),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(72),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [363] */
/* usage */ core::ParameterUsage::kZw,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(68),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(72),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -4306,217 +4306,229 @@
},
{
/* [374] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(30),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [375] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(32),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [376] */
/* usage */ core::ParameterUsage::kTexture,
/* type_matcher_indices */ TypeMatcherIndicesIndex(163),
/* number_matcher_indices */ NumberMatcherIndicesIndex(2),
},
{
- /* [375] */
+ /* [377] */
/* usage */ core::ParameterUsage::kTexture,
/* type_matcher_indices */ TypeMatcherIndicesIndex(164),
/* number_matcher_indices */ NumberMatcherIndicesIndex(2),
},
{
- /* [376] */
+ /* [378] */
/* usage */ core::ParameterUsage::kTexture,
/* type_matcher_indices */ TypeMatcherIndicesIndex(165),
/* number_matcher_indices */ NumberMatcherIndicesIndex(2),
},
{
- /* [377] */
+ /* [379] */
/* usage */ core::ParameterUsage::kTexture,
/* type_matcher_indices */ TypeMatcherIndicesIndex(166),
/* number_matcher_indices */ NumberMatcherIndicesIndex(2),
},
{
- /* [378] */
- /* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(51),
- /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- },
- {
- /* [379] */
- /* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(85),
- /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- },
- {
/* [380] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(74),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(31),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [381] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(76),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(85),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [382] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(96),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(74),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [383] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(102),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(76),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [384] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(106),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(96),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [385] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(104),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(102),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [386] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(108),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(106),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [387] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(112),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(104),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [388] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(110),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(108),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [389] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(114),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(112),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [390] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(118),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(110),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [391] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(116),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(114),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [392] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(120),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(118),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [393] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(124),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(116),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [394] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(122),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(120),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [395] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(126),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(124),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [396] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(130),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(122),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [397] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(128),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(126),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [398] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(132),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(130),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [399] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(136),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(128),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [400] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(134),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(132),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [401] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(138),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(136),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [402] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(142),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(134),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [403] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(140),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(138),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [404] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(144),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(142),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [405] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(148),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(140),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [406] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(146),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(144),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [407] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(150),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(148),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [408] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(154),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(146),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [409] */
/* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(150),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [410] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(154),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [411] */
+ /* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(152),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
@@ -4816,63 +4828,65 @@
/* [45] */ &core::constant::Eval::pack2x16unorm,
/* [46] */ &core::constant::Eval::pack4x8snorm,
/* [47] */ &core::constant::Eval::pack4x8unorm,
- /* [48] */ &core::constant::Eval::pow,
- /* [49] */ &core::constant::Eval::quantizeToF16,
- /* [50] */ &core::constant::Eval::radians,
- /* [51] */ &core::constant::Eval::reflect,
- /* [52] */ &core::constant::Eval::refract,
- /* [53] */ &core::constant::Eval::reverseBits,
- /* [54] */ &core::constant::Eval::round,
- /* [55] */ &core::constant::Eval::saturate,
- /* [56] */ &core::constant::Eval::select_bool,
- /* [57] */ &core::constant::Eval::select_boolvec,
- /* [58] */ &core::constant::Eval::sign,
- /* [59] */ &core::constant::Eval::sin,
- /* [60] */ &core::constant::Eval::sinh,
- /* [61] */ &core::constant::Eval::smoothstep,
- /* [62] */ &core::constant::Eval::sqrt,
- /* [63] */ &core::constant::Eval::step,
- /* [64] */ &core::constant::Eval::tan,
- /* [65] */ &core::constant::Eval::tanh,
- /* [66] */ &core::constant::Eval::transpose,
- /* [67] */ &core::constant::Eval::trunc,
- /* [68] */ &core::constant::Eval::unpack2x16float,
- /* [69] */ &core::constant::Eval::unpack2x16snorm,
- /* [70] */ &core::constant::Eval::unpack2x16unorm,
- /* [71] */ &core::constant::Eval::unpack4x8snorm,
- /* [72] */ &core::constant::Eval::unpack4x8unorm,
- /* [73] */ &core::constant::Eval::Identity,
- /* [74] */ &core::constant::Eval::Not,
- /* [75] */ &core::constant::Eval::Complement,
- /* [76] */ &core::constant::Eval::UnaryMinus,
- /* [77] */ &core::constant::Eval::Plus,
- /* [78] */ &core::constant::Eval::Minus,
- /* [79] */ &core::constant::Eval::Multiply,
- /* [80] */ &core::constant::Eval::MultiplyMatVec,
- /* [81] */ &core::constant::Eval::MultiplyVecMat,
- /* [82] */ &core::constant::Eval::MultiplyMatMat,
- /* [83] */ &core::constant::Eval::Divide,
- /* [84] */ &core::constant::Eval::Modulo,
- /* [85] */ &core::constant::Eval::Xor,
- /* [86] */ &core::constant::Eval::And,
- /* [87] */ &core::constant::Eval::Or,
- /* [88] */ &core::constant::Eval::LogicalAnd,
- /* [89] */ &core::constant::Eval::LogicalOr,
- /* [90] */ &core::constant::Eval::Equal,
- /* [91] */ &core::constant::Eval::NotEqual,
- /* [92] */ &core::constant::Eval::LessThan,
- /* [93] */ &core::constant::Eval::GreaterThan,
- /* [94] */ &core::constant::Eval::LessThanEqual,
- /* [95] */ &core::constant::Eval::GreaterThanEqual,
- /* [96] */ &core::constant::Eval::ShiftLeft,
- /* [97] */ &core::constant::Eval::ShiftRight,
- /* [98] */ &core::constant::Eval::Zero,
- /* [99] */ &core::constant::Eval::Conv,
- /* [100] */ &core::constant::Eval::VecSplat,
- /* [101] */ &core::constant::Eval::VecInitS,
- /* [102] */ &core::constant::Eval::VecInitM,
- /* [103] */ &core::constant::Eval::MatInitS,
- /* [104] */ &core::constant::Eval::MatInitV,
+ /* [48] */ &core::constant::Eval::pack4xI8,
+ /* [49] */ &core::constant::Eval::pack4xU8,
+ /* [50] */ &core::constant::Eval::pow,
+ /* [51] */ &core::constant::Eval::quantizeToF16,
+ /* [52] */ &core::constant::Eval::radians,
+ /* [53] */ &core::constant::Eval::reflect,
+ /* [54] */ &core::constant::Eval::refract,
+ /* [55] */ &core::constant::Eval::reverseBits,
+ /* [56] */ &core::constant::Eval::round,
+ /* [57] */ &core::constant::Eval::saturate,
+ /* [58] */ &core::constant::Eval::select_bool,
+ /* [59] */ &core::constant::Eval::select_boolvec,
+ /* [60] */ &core::constant::Eval::sign,
+ /* [61] */ &core::constant::Eval::sin,
+ /* [62] */ &core::constant::Eval::sinh,
+ /* [63] */ &core::constant::Eval::smoothstep,
+ /* [64] */ &core::constant::Eval::sqrt,
+ /* [65] */ &core::constant::Eval::step,
+ /* [66] */ &core::constant::Eval::tan,
+ /* [67] */ &core::constant::Eval::tanh,
+ /* [68] */ &core::constant::Eval::transpose,
+ /* [69] */ &core::constant::Eval::trunc,
+ /* [70] */ &core::constant::Eval::unpack2x16float,
+ /* [71] */ &core::constant::Eval::unpack2x16snorm,
+ /* [72] */ &core::constant::Eval::unpack2x16unorm,
+ /* [73] */ &core::constant::Eval::unpack4x8snorm,
+ /* [74] */ &core::constant::Eval::unpack4x8unorm,
+ /* [75] */ &core::constant::Eval::Identity,
+ /* [76] */ &core::constant::Eval::Not,
+ /* [77] */ &core::constant::Eval::Complement,
+ /* [78] */ &core::constant::Eval::UnaryMinus,
+ /* [79] */ &core::constant::Eval::Plus,
+ /* [80] */ &core::constant::Eval::Minus,
+ /* [81] */ &core::constant::Eval::Multiply,
+ /* [82] */ &core::constant::Eval::MultiplyMatVec,
+ /* [83] */ &core::constant::Eval::MultiplyVecMat,
+ /* [84] */ &core::constant::Eval::MultiplyMatMat,
+ /* [85] */ &core::constant::Eval::Divide,
+ /* [86] */ &core::constant::Eval::Modulo,
+ /* [87] */ &core::constant::Eval::Xor,
+ /* [88] */ &core::constant::Eval::And,
+ /* [89] */ &core::constant::Eval::Or,
+ /* [90] */ &core::constant::Eval::LogicalAnd,
+ /* [91] */ &core::constant::Eval::LogicalOr,
+ /* [92] */ &core::constant::Eval::Equal,
+ /* [93] */ &core::constant::Eval::NotEqual,
+ /* [94] */ &core::constant::Eval::LessThan,
+ /* [95] */ &core::constant::Eval::GreaterThan,
+ /* [96] */ &core::constant::Eval::LessThanEqual,
+ /* [97] */ &core::constant::Eval::GreaterThanEqual,
+ /* [98] */ &core::constant::Eval::ShiftLeft,
+ /* [99] */ &core::constant::Eval::ShiftRight,
+ /* [100] */ &core::constant::Eval::Zero,
+ /* [101] */ &core::constant::Eval::Conv,
+ /* [102] */ &core::constant::Eval::VecSplat,
+ /* [103] */ &core::constant::Eval::VecInitS,
+ /* [104] */ &core::constant::Eval::VecInitM,
+ /* [105] */ &core::constant::Eval::MatInitS,
+ /* [106] */ &core::constant::Eval::MatInitV,
};
static_assert(ConstEvalFunctionIndex::CanIndex(kConstEvalFunctions),
@@ -4914,7 +4928,7 @@
/* template_types */ TemplateTypeIndex(0),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(75),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(32),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(36),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -4927,7 +4941,7 @@
/* template_types */ TemplateTypeIndex(12),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(310),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(32),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(36),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -4940,7 +4954,7 @@
/* template_types */ TemplateTypeIndex(0),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(27),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(32),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(36),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -4953,7 +4967,7 @@
/* template_types */ TemplateTypeIndex(12),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(312),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(32),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(36),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -4966,7 +4980,7 @@
/* template_types */ TemplateTypeIndex(0),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(274),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(38),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(42),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -4979,7 +4993,7 @@
/* template_types */ TemplateTypeIndex(12),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(314),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(38),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(42),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -4992,7 +5006,7 @@
/* template_types */ TemplateTypeIndex(0),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(154),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(32),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(36),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5005,7 +5019,7 @@
/* template_types */ TemplateTypeIndex(12),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(316),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(32),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(36),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5018,7 +5032,7 @@
/* template_types */ TemplateTypeIndex(0),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(80),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(32),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(36),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5031,7 +5045,7 @@
/* template_types */ TemplateTypeIndex(12),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(318),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(32),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(36),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5044,7 +5058,7 @@
/* template_types */ TemplateTypeIndex(0),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(277),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(32),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(36),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5057,7 +5071,7 @@
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(89),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(32),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(36),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5070,7 +5084,7 @@
/* template_types */ TemplateTypeIndex(3),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(320),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(32),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(36),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5083,7 +5097,7 @@
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(32),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(32),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(36),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5096,7 +5110,7 @@
/* template_types */ TemplateTypeIndex(3),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(322),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(32),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(36),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5109,7 +5123,7 @@
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(161),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(32),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(36),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5122,7 +5136,7 @@
/* template_types */ TemplateTypeIndex(3),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(324),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(32),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(36),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5135,7 +5149,7 @@
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(94),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(32),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(36),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5148,7 +5162,7 @@
/* template_types */ TemplateTypeIndex(3),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(326),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(32),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(36),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5161,7 +5175,7 @@
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(283),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(32),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(36),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5173,7 +5187,7 @@
/* num_template_numbers */ 2,
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(6),
- /* parameters */ ParameterIndex(374),
+ /* parameters */ ParameterIndex(376),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
@@ -5186,8 +5200,8 @@
/* num_template_numbers */ 2,
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(6),
- /* parameters */ ParameterIndex(375),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(32),
+ /* parameters */ ParameterIndex(377),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(36),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5199,8 +5213,8 @@
/* num_template_numbers */ 2,
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(6),
- /* parameters */ ParameterIndex(376),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(32),
+ /* parameters */ ParameterIndex(378),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(36),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5212,8 +5226,8 @@
/* num_template_numbers */ 2,
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(6),
- /* parameters */ ParameterIndex(377),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(38),
+ /* parameters */ ParameterIndex(379),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(42),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5226,7 +5240,7 @@
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(238),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(32),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(36),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5239,7 +5253,7 @@
/* template_types */ TemplateTypeIndex(4),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(268),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(48),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5252,7 +5266,7 @@
/* template_types */ TemplateTypeIndex(4),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(271),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(48),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5265,7 +5279,7 @@
/* template_types */ TemplateTypeIndex(0),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(197),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(48),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5278,7 +5292,7 @@
/* template_types */ TemplateTypeIndex(4),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(274),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(48),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5291,7 +5305,7 @@
/* template_types */ TemplateTypeIndex(7),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(277),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(48),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5369,7 +5383,7 @@
/* template_types */ TemplateTypeIndex(1),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(332),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(70),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(30),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5382,7 +5396,7 @@
/* template_types */ TemplateTypeIndex(1),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(334),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(72),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(32),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5408,7 +5422,7 @@
/* template_types */ TemplateTypeIndex(1),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(338),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(70),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(30),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5421,7 +5435,7 @@
/* template_types */ TemplateTypeIndex(1),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(340),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(72),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(32),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5447,7 +5461,7 @@
/* template_types */ TemplateTypeIndex(1),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(289),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(70),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(30),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5460,7 +5474,7 @@
/* template_types */ TemplateTypeIndex(1),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(292),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(72),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(32),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5486,7 +5500,7 @@
/* template_types */ TemplateTypeIndex(1),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(344),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(70),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(30),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5499,7 +5513,7 @@
/* template_types */ TemplateTypeIndex(1),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(346),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(72),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(32),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5514,7 +5528,7 @@
/* parameters */ ParameterIndex(/* invalid */),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(94),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(98),
+ /* const_eval_fn */ ConstEvalFunctionIndex(100),
},
{
/* [49] */
@@ -5525,9 +5539,9 @@
/* template_types */ TemplateTypeIndex(35),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(48),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(98),
+ /* const_eval_fn */ ConstEvalFunctionIndex(100),
},
{
/* [50] */
@@ -5538,9 +5552,9 @@
/* template_types */ TemplateTypeIndex(27),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(217),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(48),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(73),
+ /* const_eval_fn */ ConstEvalFunctionIndex(75),
},
{
/* [51] */
@@ -5551,9 +5565,9 @@
/* template_types */ TemplateTypeIndex(27),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(48),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(100),
+ /* const_eval_fn */ ConstEvalFunctionIndex(102),
},
{
/* [52] */
@@ -5564,9 +5578,9 @@
/* template_types */ TemplateTypeIndex(27),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(205),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(48),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
/* [53] */
@@ -5577,9 +5591,9 @@
/* template_types */ TemplateTypeIndex(27),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(295),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(48),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(102),
+ /* const_eval_fn */ ConstEvalFunctionIndex(104),
},
{
/* [54] */
@@ -5590,9 +5604,9 @@
/* template_types */ TemplateTypeIndex(27),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(298),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(48),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(102),
+ /* const_eval_fn */ ConstEvalFunctionIndex(104),
},
{
/* [55] */
@@ -5603,9 +5617,9 @@
/* template_types */ TemplateTypeIndex(27),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(301),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(48),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(102),
+ /* const_eval_fn */ ConstEvalFunctionIndex(104),
},
{
/* [56] */
@@ -5616,9 +5630,9 @@
/* template_types */ TemplateTypeIndex(27),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(362),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(48),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(102),
+ /* const_eval_fn */ ConstEvalFunctionIndex(104),
},
{
/* [57] */
@@ -5629,9 +5643,9 @@
/* template_types */ TemplateTypeIndex(27),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(364),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(48),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(102),
+ /* const_eval_fn */ ConstEvalFunctionIndex(104),
},
{
/* [58] */
@@ -5642,9 +5656,9 @@
/* template_types */ TemplateTypeIndex(27),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(366),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(48),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(102),
+ /* const_eval_fn */ ConstEvalFunctionIndex(104),
},
{
/* [59] */
@@ -5654,10 +5668,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(14),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(382),
+ /* parameters */ ParameterIndex(384),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(28),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
{
/* [60] */
@@ -5667,10 +5681,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(16),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(382),
+ /* parameters */ ParameterIndex(384),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(98),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
{
/* [61] */
@@ -5680,10 +5694,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(18),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(382),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(70),
+ /* parameters */ ParameterIndex(384),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(30),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
{
/* [62] */
@@ -5693,10 +5707,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(20),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(382),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(72),
+ /* parameters */ ParameterIndex(384),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(32),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
{
/* [63] */
@@ -5706,10 +5720,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(22),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(382),
+ /* parameters */ ParameterIndex(384),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(100),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
{
/* [64] */
@@ -6097,7 +6111,7 @@
/* template_types */ TemplateTypeIndex(0),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(74),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(48),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -6110,7 +6124,7 @@
/* template_types */ TemplateTypeIndex(0),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(74),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(48),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -6123,7 +6137,7 @@
/* template_types */ TemplateTypeIndex(0),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(26),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(48),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -6136,7 +6150,7 @@
/* template_types */ TemplateTypeIndex(0),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(26),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(48),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -6149,7 +6163,7 @@
/* template_types */ TemplateTypeIndex(0),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(153),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(48),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -6162,7 +6176,7 @@
/* template_types */ TemplateTypeIndex(0),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(79),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(48),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -6411,7 +6425,7 @@
/* parameters */ ParameterIndex(/* invalid */),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(88),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(98),
+ /* const_eval_fn */ ConstEvalFunctionIndex(100),
},
{
/* [118] */
@@ -6424,7 +6438,7 @@
/* parameters */ ParameterIndex(/* invalid */),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(10),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(98),
+ /* const_eval_fn */ ConstEvalFunctionIndex(100),
},
{
/* [119] */
@@ -6437,7 +6451,7 @@
/* parameters */ ParameterIndex(213),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(10),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(73),
+ /* const_eval_fn */ ConstEvalFunctionIndex(75),
},
{
/* [120] */
@@ -6450,7 +6464,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(10),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(100),
+ /* const_eval_fn */ ConstEvalFunctionIndex(102),
},
{
/* [121] */
@@ -6463,7 +6477,7 @@
/* parameters */ ParameterIndex(205),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(10),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
/* [122] */
@@ -6476,7 +6490,7 @@
/* parameters */ ParameterIndex(295),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(10),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(102),
+ /* const_eval_fn */ ConstEvalFunctionIndex(104),
},
{
/* [123] */
@@ -6489,7 +6503,7 @@
/* parameters */ ParameterIndex(298),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(10),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(102),
+ /* const_eval_fn */ ConstEvalFunctionIndex(104),
},
{
/* [124] */
@@ -6499,10 +6513,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(14),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(381),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* parameters */ ParameterIndex(383),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(56),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
{
/* [125] */
@@ -6512,10 +6526,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(16),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(381),
+ /* parameters */ ParameterIndex(383),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(90),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
{
/* [126] */
@@ -6525,10 +6539,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(18),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(381),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(62),
+ /* parameters */ ParameterIndex(383),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(66),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
{
/* [127] */
@@ -6538,10 +6552,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(20),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(381),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(38),
+ /* parameters */ ParameterIndex(383),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(42),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
{
/* [128] */
@@ -6551,10 +6565,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(22),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(381),
+ /* parameters */ ParameterIndex(383),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(92),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
{
/* [129] */
@@ -6697,7 +6711,7 @@
/* parameters */ ParameterIndex(/* invalid */),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(82),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(98),
+ /* const_eval_fn */ ConstEvalFunctionIndex(100),
},
{
/* [140] */
@@ -6708,9 +6722,9 @@
/* template_types */ TemplateTypeIndex(35),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(68),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(72),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(98),
+ /* const_eval_fn */ ConstEvalFunctionIndex(100),
},
{
/* [141] */
@@ -6721,9 +6735,9 @@
/* template_types */ TemplateTypeIndex(27),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(209),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(68),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(72),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(73),
+ /* const_eval_fn */ ConstEvalFunctionIndex(75),
},
{
/* [142] */
@@ -6734,9 +6748,9 @@
/* template_types */ TemplateTypeIndex(27),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(68),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(72),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(100),
+ /* const_eval_fn */ ConstEvalFunctionIndex(102),
},
{
/* [143] */
@@ -6747,9 +6761,9 @@
/* template_types */ TemplateTypeIndex(27),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(205),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(68),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(72),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
/* [144] */
@@ -6759,10 +6773,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(14),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(380),
+ /* parameters */ ParameterIndex(382),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(26),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
{
/* [145] */
@@ -6772,10 +6786,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(16),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(380),
+ /* parameters */ ParameterIndex(382),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(84),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
{
/* [146] */
@@ -6785,10 +6799,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(18),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(380),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(50),
+ /* parameters */ ParameterIndex(382),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(54),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
{
/* [147] */
@@ -6798,10 +6812,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(20),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(380),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(32),
+ /* parameters */ ParameterIndex(382),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(36),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
{
/* [148] */
@@ -6811,10 +6825,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(22),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(380),
+ /* parameters */ ParameterIndex(382),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(86),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
{
/* [149] */
@@ -6827,7 +6841,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(79),
+ /* const_eval_fn */ ConstEvalFunctionIndex(81),
},
{
/* [150] */
@@ -6840,7 +6854,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(79),
+ /* const_eval_fn */ ConstEvalFunctionIndex(81),
},
{
/* [151] */
@@ -6853,7 +6867,7 @@
/* parameters */ ParameterIndex(223),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(79),
+ /* const_eval_fn */ ConstEvalFunctionIndex(81),
},
{
/* [152] */
@@ -6866,7 +6880,7 @@
/* parameters */ ParameterIndex(350),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(79),
+ /* const_eval_fn */ ConstEvalFunctionIndex(81),
},
{
/* [153] */
@@ -6879,7 +6893,7 @@
/* parameters */ ParameterIndex(355),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(12),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(2),
- /* const_eval_fn */ ConstEvalFunctionIndex(79),
+ /* const_eval_fn */ ConstEvalFunctionIndex(81),
},
{
/* [154] */
@@ -6892,7 +6906,7 @@
/* parameters */ ParameterIndex(354),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(12),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(2),
- /* const_eval_fn */ ConstEvalFunctionIndex(79),
+ /* const_eval_fn */ ConstEvalFunctionIndex(81),
},
{
/* [155] */
@@ -6905,7 +6919,7 @@
/* parameters */ ParameterIndex(356),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(3),
- /* const_eval_fn */ ConstEvalFunctionIndex(80),
+ /* const_eval_fn */ ConstEvalFunctionIndex(82),
},
{
/* [156] */
@@ -6918,7 +6932,7 @@
/* parameters */ ParameterIndex(358),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(81),
+ /* const_eval_fn */ ConstEvalFunctionIndex(83),
},
{
/* [157] */
@@ -6931,7 +6945,7 @@
/* parameters */ ParameterIndex(360),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(12),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(18),
- /* const_eval_fn */ ConstEvalFunctionIndex(82),
+ /* const_eval_fn */ ConstEvalFunctionIndex(84),
},
{
/* [158] */
@@ -7386,7 +7400,7 @@
/* parameters */ ParameterIndex(/* invalid */),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(102),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(98),
+ /* const_eval_fn */ ConstEvalFunctionIndex(100),
},
{
/* [193] */
@@ -7396,10 +7410,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(36),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(383),
+ /* parameters */ ParameterIndex(385),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(102),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(73),
+ /* const_eval_fn */ ConstEvalFunctionIndex(75),
},
{
/* [194] */
@@ -7412,7 +7426,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(102),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(103),
+ /* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
/* [195] */
@@ -7425,7 +7439,7 @@
/* parameters */ ParameterIndex(209),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(102),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(104),
+ /* const_eval_fn */ ConstEvalFunctionIndex(106),
},
{
/* [196] */
@@ -7435,10 +7449,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(16),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(384),
+ /* parameters */ ParameterIndex(386),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(104),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
{
/* [197] */
@@ -7448,10 +7462,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(14),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(385),
+ /* parameters */ ParameterIndex(387),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(106),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
{
/* [198] */
@@ -7464,7 +7478,7 @@
/* parameters */ ParameterIndex(/* invalid */),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(108),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(98),
+ /* const_eval_fn */ ConstEvalFunctionIndex(100),
},
{
/* [199] */
@@ -7474,10 +7488,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(36),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(386),
+ /* parameters */ ParameterIndex(388),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(108),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(73),
+ /* const_eval_fn */ ConstEvalFunctionIndex(75),
},
{
/* [200] */
@@ -7490,7 +7504,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(108),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(103),
+ /* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
/* [201] */
@@ -7503,7 +7517,7 @@
/* parameters */ ParameterIndex(213),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(108),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(104),
+ /* const_eval_fn */ ConstEvalFunctionIndex(106),
},
{
/* [202] */
@@ -7513,10 +7527,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(16),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(387),
+ /* parameters */ ParameterIndex(389),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(110),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
{
/* [203] */
@@ -7526,10 +7540,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(14),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(388),
+ /* parameters */ ParameterIndex(390),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(112),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
{
/* [204] */
@@ -7542,7 +7556,7 @@
/* parameters */ ParameterIndex(/* invalid */),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(114),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(98),
+ /* const_eval_fn */ ConstEvalFunctionIndex(100),
},
{
/* [205] */
@@ -7552,10 +7566,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(36),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(389),
+ /* parameters */ ParameterIndex(391),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(114),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(73),
+ /* const_eval_fn */ ConstEvalFunctionIndex(75),
},
{
/* [206] */
@@ -7568,7 +7582,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(114),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(103),
+ /* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
/* [207] */
@@ -7581,7 +7595,7 @@
/* parameters */ ParameterIndex(217),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(114),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(104),
+ /* const_eval_fn */ ConstEvalFunctionIndex(106),
},
{
/* [208] */
@@ -7591,10 +7605,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(16),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(390),
+ /* parameters */ ParameterIndex(392),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(116),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
{
/* [209] */
@@ -7604,10 +7618,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(14),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(391),
+ /* parameters */ ParameterIndex(393),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(118),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
{
/* [210] */
@@ -7620,7 +7634,7 @@
/* parameters */ ParameterIndex(/* invalid */),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(120),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(98),
+ /* const_eval_fn */ ConstEvalFunctionIndex(100),
},
{
/* [211] */
@@ -7630,10 +7644,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(36),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(392),
+ /* parameters */ ParameterIndex(394),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(120),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(73),
+ /* const_eval_fn */ ConstEvalFunctionIndex(75),
},
{
/* [212] */
@@ -7646,7 +7660,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(120),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(103),
+ /* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
/* [213] */
@@ -7659,7 +7673,7 @@
/* parameters */ ParameterIndex(209),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(120),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(104),
+ /* const_eval_fn */ ConstEvalFunctionIndex(106),
},
{
/* [214] */
@@ -7669,10 +7683,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(16),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(393),
+ /* parameters */ ParameterIndex(395),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(122),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
{
/* [215] */
@@ -7682,10 +7696,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(14),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(394),
+ /* parameters */ ParameterIndex(396),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(124),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
{
/* [216] */
@@ -7698,7 +7712,7 @@
/* parameters */ ParameterIndex(/* invalid */),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(126),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(98),
+ /* const_eval_fn */ ConstEvalFunctionIndex(100),
},
{
/* [217] */
@@ -7708,10 +7722,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(36),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(395),
+ /* parameters */ ParameterIndex(397),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(126),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(73),
+ /* const_eval_fn */ ConstEvalFunctionIndex(75),
},
{
/* [218] */
@@ -7724,7 +7738,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(126),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(103),
+ /* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
/* [219] */
@@ -7737,7 +7751,7 @@
/* parameters */ ParameterIndex(213),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(126),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(104),
+ /* const_eval_fn */ ConstEvalFunctionIndex(106),
},
{
/* [220] */
@@ -7747,10 +7761,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(16),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(396),
+ /* parameters */ ParameterIndex(398),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(128),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
{
/* [221] */
@@ -7760,10 +7774,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(14),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(397),
+ /* parameters */ ParameterIndex(399),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(130),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
{
/* [222] */
@@ -7776,7 +7790,7 @@
/* parameters */ ParameterIndex(/* invalid */),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(132),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(98),
+ /* const_eval_fn */ ConstEvalFunctionIndex(100),
},
{
/* [223] */
@@ -7786,10 +7800,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(36),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(398),
+ /* parameters */ ParameterIndex(400),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(132),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(73),
+ /* const_eval_fn */ ConstEvalFunctionIndex(75),
},
{
/* [224] */
@@ -7802,7 +7816,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(132),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(103),
+ /* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
/* [225] */
@@ -7815,7 +7829,7 @@
/* parameters */ ParameterIndex(217),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(132),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(104),
+ /* const_eval_fn */ ConstEvalFunctionIndex(106),
},
{
/* [226] */
@@ -7825,10 +7839,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(16),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(399),
+ /* parameters */ ParameterIndex(401),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(134),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
{
/* [227] */
@@ -7838,10 +7852,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(14),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(400),
+ /* parameters */ ParameterIndex(402),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(136),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
{
/* [228] */
@@ -7854,7 +7868,7 @@
/* parameters */ ParameterIndex(/* invalid */),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(138),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(98),
+ /* const_eval_fn */ ConstEvalFunctionIndex(100),
},
{
/* [229] */
@@ -7864,10 +7878,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(36),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(401),
+ /* parameters */ ParameterIndex(403),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(138),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(73),
+ /* const_eval_fn */ ConstEvalFunctionIndex(75),
},
{
/* [230] */
@@ -7880,7 +7894,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(138),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(103),
+ /* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
/* [231] */
@@ -7893,7 +7907,7 @@
/* parameters */ ParameterIndex(209),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(138),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(104),
+ /* const_eval_fn */ ConstEvalFunctionIndex(106),
},
{
/* [232] */
@@ -7903,10 +7917,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(16),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(402),
+ /* parameters */ ParameterIndex(404),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(140),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
{
/* [233] */
@@ -7916,10 +7930,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(14),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(403),
+ /* parameters */ ParameterIndex(405),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(142),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
{
/* [234] */
@@ -7932,7 +7946,7 @@
/* parameters */ ParameterIndex(/* invalid */),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(144),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(98),
+ /* const_eval_fn */ ConstEvalFunctionIndex(100),
},
{
/* [235] */
@@ -7942,10 +7956,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(36),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(404),
+ /* parameters */ ParameterIndex(406),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(144),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(73),
+ /* const_eval_fn */ ConstEvalFunctionIndex(75),
},
{
/* [236] */
@@ -7958,7 +7972,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(144),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(103),
+ /* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
/* [237] */
@@ -7971,7 +7985,7 @@
/* parameters */ ParameterIndex(213),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(144),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(104),
+ /* const_eval_fn */ ConstEvalFunctionIndex(106),
},
{
/* [238] */
@@ -7981,10 +7995,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(16),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(405),
+ /* parameters */ ParameterIndex(407),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(146),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
{
/* [239] */
@@ -7994,10 +8008,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(14),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(406),
+ /* parameters */ ParameterIndex(408),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(148),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
{
/* [240] */
@@ -8010,7 +8024,7 @@
/* parameters */ ParameterIndex(/* invalid */),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(150),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(98),
+ /* const_eval_fn */ ConstEvalFunctionIndex(100),
},
{
/* [241] */
@@ -8020,10 +8034,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(36),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(407),
+ /* parameters */ ParameterIndex(409),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(150),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(73),
+ /* const_eval_fn */ ConstEvalFunctionIndex(75),
},
{
/* [242] */
@@ -8036,7 +8050,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(150),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(103),
+ /* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
/* [243] */
@@ -8049,7 +8063,7 @@
/* parameters */ ParameterIndex(217),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(150),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(104),
+ /* const_eval_fn */ ConstEvalFunctionIndex(106),
},
{
/* [244] */
@@ -8059,10 +8073,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(16),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(408),
+ /* parameters */ ParameterIndex(410),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(152),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
{
/* [245] */
@@ -8072,10 +8086,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(14),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(409),
+ /* parameters */ ParameterIndex(411),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(154),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
{
/* [246] */
@@ -8137,7 +8151,7 @@
/* num_template_numbers */ 2,
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(6),
- /* parameters */ ParameterIndex(376),
+ /* parameters */ ParameterIndex(378),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
@@ -8153,7 +8167,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(77),
+ /* const_eval_fn */ ConstEvalFunctionIndex(79),
},
{
/* [252] */
@@ -8166,7 +8180,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(77),
+ /* const_eval_fn */ ConstEvalFunctionIndex(79),
},
{
/* [253] */
@@ -8179,7 +8193,7 @@
/* parameters */ ParameterIndex(223),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(77),
+ /* const_eval_fn */ ConstEvalFunctionIndex(79),
},
{
/* [254] */
@@ -8192,7 +8206,7 @@
/* parameters */ ParameterIndex(350),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(77),
+ /* const_eval_fn */ ConstEvalFunctionIndex(79),
},
{
/* [255] */
@@ -8205,7 +8219,7 @@
/* parameters */ ParameterIndex(353),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(12),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(2),
- /* const_eval_fn */ ConstEvalFunctionIndex(77),
+ /* const_eval_fn */ ConstEvalFunctionIndex(79),
},
{
/* [256] */
@@ -8218,7 +8232,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(78),
+ /* const_eval_fn */ ConstEvalFunctionIndex(80),
},
{
/* [257] */
@@ -8231,7 +8245,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(78),
+ /* const_eval_fn */ ConstEvalFunctionIndex(80),
},
{
/* [258] */
@@ -8244,7 +8258,7 @@
/* parameters */ ParameterIndex(223),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(78),
+ /* const_eval_fn */ ConstEvalFunctionIndex(80),
},
{
/* [259] */
@@ -8257,7 +8271,7 @@
/* parameters */ ParameterIndex(350),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(78),
+ /* const_eval_fn */ ConstEvalFunctionIndex(80),
},
{
/* [260] */
@@ -8270,7 +8284,7 @@
/* parameters */ ParameterIndex(353),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(12),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(2),
- /* const_eval_fn */ ConstEvalFunctionIndex(78),
+ /* const_eval_fn */ ConstEvalFunctionIndex(80),
},
{
/* [261] */
@@ -8283,7 +8297,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(83),
+ /* const_eval_fn */ ConstEvalFunctionIndex(85),
},
{
/* [262] */
@@ -8296,7 +8310,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(83),
+ /* const_eval_fn */ ConstEvalFunctionIndex(85),
},
{
/* [263] */
@@ -8309,7 +8323,7 @@
/* parameters */ ParameterIndex(223),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(83),
+ /* const_eval_fn */ ConstEvalFunctionIndex(85),
},
{
/* [264] */
@@ -8322,7 +8336,7 @@
/* parameters */ ParameterIndex(350),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(83),
+ /* const_eval_fn */ ConstEvalFunctionIndex(85),
},
{
/* [265] */
@@ -8335,7 +8349,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(84),
+ /* const_eval_fn */ ConstEvalFunctionIndex(86),
},
{
/* [266] */
@@ -8348,7 +8362,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(84),
+ /* const_eval_fn */ ConstEvalFunctionIndex(86),
},
{
/* [267] */
@@ -8361,7 +8375,7 @@
/* parameters */ ParameterIndex(223),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(84),
+ /* const_eval_fn */ ConstEvalFunctionIndex(86),
},
{
/* [268] */
@@ -8374,7 +8388,7 @@
/* parameters */ ParameterIndex(350),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(84),
+ /* const_eval_fn */ ConstEvalFunctionIndex(86),
},
{
/* [269] */
@@ -8387,7 +8401,7 @@
/* parameters */ ParameterIndex(226),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(86),
+ /* const_eval_fn */ ConstEvalFunctionIndex(88),
},
{
/* [270] */
@@ -8400,7 +8414,7 @@
/* parameters */ ParameterIndex(233),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(8),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(86),
+ /* const_eval_fn */ ConstEvalFunctionIndex(88),
},
{
/* [271] */
@@ -8413,7 +8427,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(86),
+ /* const_eval_fn */ ConstEvalFunctionIndex(88),
},
{
/* [272] */
@@ -8426,7 +8440,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(86),
+ /* const_eval_fn */ ConstEvalFunctionIndex(88),
},
{
/* [273] */
@@ -8439,7 +8453,7 @@
/* parameters */ ParameterIndex(226),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(87),
+ /* const_eval_fn */ ConstEvalFunctionIndex(89),
},
{
/* [274] */
@@ -8452,7 +8466,7 @@
/* parameters */ ParameterIndex(233),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(8),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(87),
+ /* const_eval_fn */ ConstEvalFunctionIndex(89),
},
{
/* [275] */
@@ -8465,7 +8479,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(87),
+ /* const_eval_fn */ ConstEvalFunctionIndex(89),
},
{
/* [276] */
@@ -8478,7 +8492,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(87),
+ /* const_eval_fn */ ConstEvalFunctionIndex(89),
},
{
/* [277] */
@@ -8530,7 +8544,7 @@
/* parameters */ ParameterIndex(224),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(56),
+ /* const_eval_fn */ ConstEvalFunctionIndex(58),
},
{
/* [281] */
@@ -8543,7 +8557,7 @@
/* parameters */ ParameterIndex(228),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(56),
+ /* const_eval_fn */ ConstEvalFunctionIndex(58),
},
{
/* [282] */
@@ -8556,7 +8570,7 @@
/* parameters */ ParameterIndex(231),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(57),
+ /* const_eval_fn */ ConstEvalFunctionIndex(59),
},
{
/* [283] */
@@ -8567,9 +8581,9 @@
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(51),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(31),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(98),
+ /* const_eval_fn */ ConstEvalFunctionIndex(100),
},
{
/* [284] */
@@ -8579,10 +8593,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(378),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(51),
+ /* parameters */ ParameterIndex(380),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(31),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(73),
+ /* const_eval_fn */ ConstEvalFunctionIndex(75),
},
{
/* [285] */
@@ -8593,9 +8607,9 @@
/* template_types */ TemplateTypeIndex(30),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(51),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(31),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
{
/* [286] */
@@ -8608,7 +8622,7 @@
/* parameters */ ParameterIndex(/* invalid */),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(98),
+ /* const_eval_fn */ ConstEvalFunctionIndex(100),
},
{
/* [287] */
@@ -8621,7 +8635,7 @@
/* parameters */ ParameterIndex(17),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(73),
+ /* const_eval_fn */ ConstEvalFunctionIndex(75),
},
{
/* [288] */
@@ -8634,7 +8648,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
{
/* [289] */
@@ -8647,7 +8661,7 @@
/* parameters */ ParameterIndex(/* invalid */),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(15),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(98),
+ /* const_eval_fn */ ConstEvalFunctionIndex(100),
},
{
/* [290] */
@@ -8660,7 +8674,7 @@
/* parameters */ ParameterIndex(370),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(15),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(73),
+ /* const_eval_fn */ ConstEvalFunctionIndex(75),
},
{
/* [291] */
@@ -8673,7 +8687,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(15),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
{
/* [292] */
@@ -8686,7 +8700,7 @@
/* parameters */ ParameterIndex(/* invalid */),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(85),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(98),
+ /* const_eval_fn */ ConstEvalFunctionIndex(100),
},
{
/* [293] */
@@ -8696,10 +8710,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(379),
+ /* parameters */ ParameterIndex(381),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(85),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(73),
+ /* const_eval_fn */ ConstEvalFunctionIndex(75),
},
{
/* [294] */
@@ -8712,7 +8726,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(85),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
{
/* [295] */
@@ -8725,7 +8739,7 @@
/* parameters */ ParameterIndex(/* invalid */),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(98),
+ /* const_eval_fn */ ConstEvalFunctionIndex(100),
},
{
/* [296] */
@@ -8738,7 +8752,7 @@
/* parameters */ ParameterIndex(226),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(73),
+ /* const_eval_fn */ ConstEvalFunctionIndex(75),
},
{
/* [297] */
@@ -8751,7 +8765,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
{
/* [298] */
@@ -9752,7 +9766,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(48),
+ /* const_eval_fn */ ConstEvalFunctionIndex(50),
},
{
/* [375] */
@@ -9765,7 +9779,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(48),
+ /* const_eval_fn */ ConstEvalFunctionIndex(50),
},
{
/* [376] */
@@ -9778,7 +9792,7 @@
/* parameters */ ParameterIndex(370),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(15),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(49),
+ /* const_eval_fn */ ConstEvalFunctionIndex(51),
},
{
/* [377] */
@@ -9791,7 +9805,7 @@
/* parameters */ ParameterIndex(371),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(14),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(49),
+ /* const_eval_fn */ ConstEvalFunctionIndex(51),
},
{
/* [378] */
@@ -9804,7 +9818,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(50),
+ /* const_eval_fn */ ConstEvalFunctionIndex(52),
},
{
/* [379] */
@@ -9817,7 +9831,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(50),
+ /* const_eval_fn */ ConstEvalFunctionIndex(52),
},
{
/* [380] */
@@ -9830,7 +9844,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(53),
+ /* const_eval_fn */ ConstEvalFunctionIndex(55),
},
{
/* [381] */
@@ -9843,7 +9857,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(53),
+ /* const_eval_fn */ ConstEvalFunctionIndex(55),
},
{
/* [382] */
@@ -9856,7 +9870,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(54),
+ /* const_eval_fn */ ConstEvalFunctionIndex(56),
},
{
/* [383] */
@@ -9869,7 +9883,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(54),
+ /* const_eval_fn */ ConstEvalFunctionIndex(56),
},
{
/* [384] */
@@ -9882,7 +9896,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(55),
+ /* const_eval_fn */ ConstEvalFunctionIndex(57),
},
{
/* [385] */
@@ -9895,7 +9909,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(55),
+ /* const_eval_fn */ ConstEvalFunctionIndex(57),
},
{
/* [386] */
@@ -9908,7 +9922,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(58),
+ /* const_eval_fn */ ConstEvalFunctionIndex(60),
},
{
/* [387] */
@@ -9921,7 +9935,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(58),
+ /* const_eval_fn */ ConstEvalFunctionIndex(60),
},
{
/* [388] */
@@ -9934,7 +9948,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(59),
+ /* const_eval_fn */ ConstEvalFunctionIndex(61),
},
{
/* [389] */
@@ -9947,7 +9961,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(59),
+ /* const_eval_fn */ ConstEvalFunctionIndex(61),
},
{
/* [390] */
@@ -9960,7 +9974,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(60),
+ /* const_eval_fn */ ConstEvalFunctionIndex(62),
},
{
/* [391] */
@@ -9973,7 +9987,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(60),
+ /* const_eval_fn */ ConstEvalFunctionIndex(62),
},
{
/* [392] */
@@ -9986,7 +10000,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(61),
+ /* const_eval_fn */ ConstEvalFunctionIndex(63),
},
{
/* [393] */
@@ -9999,7 +10013,7 @@
/* parameters */ ParameterIndex(221),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(61),
+ /* const_eval_fn */ ConstEvalFunctionIndex(63),
},
{
/* [394] */
@@ -10012,7 +10026,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(62),
+ /* const_eval_fn */ ConstEvalFunctionIndex(64),
},
{
/* [395] */
@@ -10025,7 +10039,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(62),
+ /* const_eval_fn */ ConstEvalFunctionIndex(64),
},
{
/* [396] */
@@ -10038,7 +10052,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(63),
+ /* const_eval_fn */ ConstEvalFunctionIndex(65),
},
{
/* [397] */
@@ -10051,7 +10065,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(63),
+ /* const_eval_fn */ ConstEvalFunctionIndex(65),
},
{
/* [398] */
@@ -10064,7 +10078,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(64),
+ /* const_eval_fn */ ConstEvalFunctionIndex(66),
},
{
/* [399] */
@@ -10077,7 +10091,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(64),
+ /* const_eval_fn */ ConstEvalFunctionIndex(66),
},
{
/* [400] */
@@ -10090,7 +10104,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(65),
+ /* const_eval_fn */ ConstEvalFunctionIndex(67),
},
{
/* [401] */
@@ -10103,7 +10117,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(65),
+ /* const_eval_fn */ ConstEvalFunctionIndex(67),
},
{
/* [402] */
@@ -10116,7 +10130,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(67),
+ /* const_eval_fn */ ConstEvalFunctionIndex(69),
},
{
/* [403] */
@@ -10129,7 +10143,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(67),
+ /* const_eval_fn */ ConstEvalFunctionIndex(69),
},
{
/* [404] */
@@ -10194,7 +10208,7 @@
/* parameters */ ParameterIndex(226),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(74),
+ /* const_eval_fn */ ConstEvalFunctionIndex(76),
},
{
/* [409] */
@@ -10207,7 +10221,7 @@
/* parameters */ ParameterIndex(233),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(8),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(74),
+ /* const_eval_fn */ ConstEvalFunctionIndex(76),
},
{
/* [410] */
@@ -10220,7 +10234,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(75),
+ /* const_eval_fn */ ConstEvalFunctionIndex(77),
},
{
/* [411] */
@@ -10233,7 +10247,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(75),
+ /* const_eval_fn */ ConstEvalFunctionIndex(77),
},
{
/* [412] */
@@ -10246,7 +10260,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(76),
+ /* const_eval_fn */ ConstEvalFunctionIndex(78),
},
{
/* [413] */
@@ -10259,7 +10273,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(76),
+ /* const_eval_fn */ ConstEvalFunctionIndex(78),
},
{
/* [414] */
@@ -10272,7 +10286,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(85),
+ /* const_eval_fn */ ConstEvalFunctionIndex(87),
},
{
/* [415] */
@@ -10285,7 +10299,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(85),
+ /* const_eval_fn */ ConstEvalFunctionIndex(87),
},
{
/* [416] */
@@ -10298,7 +10312,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(90),
+ /* const_eval_fn */ ConstEvalFunctionIndex(92),
},
{
/* [417] */
@@ -10311,7 +10325,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(8),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(90),
+ /* const_eval_fn */ ConstEvalFunctionIndex(92),
},
{
/* [418] */
@@ -10324,7 +10338,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(91),
+ /* const_eval_fn */ ConstEvalFunctionIndex(93),
},
{
/* [419] */
@@ -10337,7 +10351,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(8),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(91),
+ /* const_eval_fn */ ConstEvalFunctionIndex(93),
},
{
/* [420] */
@@ -10350,7 +10364,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(92),
+ /* const_eval_fn */ ConstEvalFunctionIndex(94),
},
{
/* [421] */
@@ -10363,7 +10377,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(8),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(92),
+ /* const_eval_fn */ ConstEvalFunctionIndex(94),
},
{
/* [422] */
@@ -10376,7 +10390,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(93),
+ /* const_eval_fn */ ConstEvalFunctionIndex(95),
},
{
/* [423] */
@@ -10389,7 +10403,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(8),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(93),
+ /* const_eval_fn */ ConstEvalFunctionIndex(95),
},
{
/* [424] */
@@ -10402,7 +10416,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(94),
+ /* const_eval_fn */ ConstEvalFunctionIndex(96),
},
{
/* [425] */
@@ -10415,7 +10429,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(8),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(94),
+ /* const_eval_fn */ ConstEvalFunctionIndex(96),
},
{
/* [426] */
@@ -10428,7 +10442,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(95),
+ /* const_eval_fn */ ConstEvalFunctionIndex(97),
},
{
/* [427] */
@@ -10441,7 +10455,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(8),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(95),
+ /* const_eval_fn */ ConstEvalFunctionIndex(97),
},
{
/* [428] */
@@ -10454,7 +10468,7 @@
/* parameters */ ParameterIndex(16),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(96),
+ /* const_eval_fn */ ConstEvalFunctionIndex(98),
},
{
/* [429] */
@@ -10467,7 +10481,7 @@
/* parameters */ ParameterIndex(351),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(96),
+ /* const_eval_fn */ ConstEvalFunctionIndex(98),
},
{
/* [430] */
@@ -10480,7 +10494,7 @@
/* parameters */ ParameterIndex(16),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(97),
+ /* const_eval_fn */ ConstEvalFunctionIndex(99),
},
{
/* [431] */
@@ -10493,7 +10507,7 @@
/* parameters */ ParameterIndex(351),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(97),
+ /* const_eval_fn */ ConstEvalFunctionIndex(99),
},
{
/* [432] */
@@ -10556,7 +10570,7 @@
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(17),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(51),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(31),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -10667,6 +10681,32 @@
{
/* [445] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 1,
+ /* num_template_types */ 0,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(/* invalid */),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(374),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(48),
+ },
+ {
+ /* [446] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 1,
+ /* num_template_types */ 0,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(/* invalid */),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(375),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(49),
+ },
+ {
+ /* [447] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
/* num_template_numbers */ 1,
@@ -10675,10 +10715,10 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(51),
+ /* const_eval_fn */ ConstEvalFunctionIndex(53),
},
{
- /* [446] */
+ /* [448] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 3,
/* num_template_types */ 1,
@@ -10688,10 +10728,10 @@
/* parameters */ ParameterIndex(222),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(52),
+ /* const_eval_fn */ ConstEvalFunctionIndex(54),
},
{
- /* [447] */
+ /* [449] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 0,
/* num_template_types */ 0,
@@ -10704,7 +10744,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [448] */
+ /* [450] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -10714,35 +10754,9 @@
/* parameters */ ParameterIndex(353),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(12),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(3),
- /* const_eval_fn */ ConstEvalFunctionIndex(66),
- },
- {
- /* [449] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 1,
- /* num_template_types */ 0,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(/* invalid */),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(17),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(26),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(68),
},
{
- /* [450] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 1,
- /* num_template_types */ 0,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(/* invalid */),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(17),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(26),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(69),
- },
- {
/* [451] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
@@ -10764,7 +10778,7 @@
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(17),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(28),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(26),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(71),
},
@@ -10777,40 +10791,40 @@
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(17),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(28),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(26),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(72),
},
{
/* [454] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
- /* num_template_types */ 1,
- /* num_template_numbers */ 1,
- /* template_types */ TemplateTypeIndex(26),
- /* template_numbers */ TemplateNumberIndex(8),
- /* parameters */ ParameterIndex(0),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* num_template_types */ 0,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(/* invalid */),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(17),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(28),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(73),
},
{
/* [455] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 2,
- /* num_template_types */ 1,
- /* num_template_numbers */ 1,
- /* template_types */ TemplateTypeIndex(26),
- /* template_numbers */ TemplateNumberIndex(8),
- /* parameters */ ParameterIndex(0),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(/* invalid */),
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 1,
+ /* num_template_types */ 0,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(/* invalid */),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(17),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(28),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(74),
},
{
/* [456] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 2,
+ /* num_parameters */ 1,
/* num_template_types */ 1,
/* num_template_numbers */ 1,
/* template_types */ TemplateTypeIndex(26),
@@ -10823,6 +10837,32 @@
{
/* [457] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 2,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 1,
+ /* template_types */ TemplateTypeIndex(26),
+ /* template_numbers */ TemplateNumberIndex(8),
+ /* parameters */ ParameterIndex(0),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(/* invalid */),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [458] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 2,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 1,
+ /* template_types */ TemplateTypeIndex(26),
+ /* template_numbers */ TemplateNumberIndex(8),
+ /* parameters */ ParameterIndex(0),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [459] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 3,
/* num_template_types */ 1,
/* num_template_numbers */ 1,
@@ -10834,7 +10874,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [458] */
+ /* [460] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 0,
/* num_template_types */ 0,
@@ -10842,12 +10882,12 @@
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(72),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(32),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [459] */
+ /* [461] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
@@ -10860,7 +10900,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [460] */
+ /* [462] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -10870,36 +10910,36 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(73),
- },
- {
- /* [461] */
- /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 2,
- /* num_template_types */ 0,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(/* invalid */),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(226),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(88),
- },
- {
- /* [462] */
- /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 2,
- /* num_template_types */ 0,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(/* invalid */),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(226),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(89),
+ /* const_eval_fn */ ConstEvalFunctionIndex(75),
},
{
/* [463] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 2,
+ /* num_template_types */ 0,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(/* invalid */),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(226),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(90),
+ },
+ {
+ /* [464] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 2,
+ /* num_template_types */ 0,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(/* invalid */),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(226),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(91),
+ },
+ {
+ /* [465] */
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -10909,7 +10949,7 @@
/* parameters */ ParameterIndex(213),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(156),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
};
@@ -11327,60 +11367,72 @@
},
{
/* [60] */
+ /* fn pack4xI8(vec4<i32>) -> u32 */
+ /* num overloads */ 1,
+ /* overloads */ OverloadIndex(445),
+ },
+ {
+ /* [61] */
+ /* fn pack4xU8(vec4<u32>) -> u32 */
+ /* num overloads */ 1,
+ /* overloads */ OverloadIndex(446),
+ },
+ {
+ /* [62] */
/* fn pow<T : fa_f32_f16>(T, T) -> T */
/* fn pow<N : num, T : fa_f32_f16>(vec<N, T>, vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
/* overloads */ OverloadIndex(374),
},
{
- /* [61] */
+ /* [63] */
/* fn quantizeToF16(f32) -> f32 */
/* fn quantizeToF16<N : num>(vec<N, f32>) -> vec<N, f32> */
/* num overloads */ 2,
/* overloads */ OverloadIndex(376),
},
{
- /* [62] */
+ /* [64] */
/* fn radians<T : fa_f32_f16>(T) -> T */
/* fn radians<N : num, T : fa_f32_f16>(vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
/* overloads */ OverloadIndex(378),
},
{
- /* [63] */
+ /* [65] */
/* fn reflect<N : num, T : fa_f32_f16>(vec<N, T>, vec<N, T>) -> vec<N, T> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(445),
+ /* overloads */ OverloadIndex(447),
},
{
- /* [64] */
+ /* [66] */
/* fn refract<N : num, T : fa_f32_f16>(vec<N, T>, vec<N, T>, T) -> vec<N, T> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(446),
+ /* overloads */ OverloadIndex(448),
},
{
- /* [65] */
+ /* [67] */
/* fn reverseBits<T : iu32>(T) -> T */
/* fn reverseBits<N : num, T : iu32>(vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
/* overloads */ OverloadIndex(380),
},
{
- /* [66] */
+ /* [68] */
/* fn round<T : fa_f32_f16>(@test_value(3.5) T) -> T */
/* fn round<N : num, T : fa_f32_f16>(@test_value(3.5) vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
/* overloads */ OverloadIndex(382),
},
{
- /* [67] */
+ /* [69] */
/* fn saturate<T : fa_f32_f16>(@test_value(2) T) -> T */
/* fn saturate<T : fa_f32_f16, N : num>(@test_value(2) vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
/* overloads */ OverloadIndex(384),
},
{
- /* [68] */
+ /* [70] */
/* fn select<T : scalar>(T, T, bool) -> T */
/* fn select<T : scalar, N : num>(vec<N, T>, vec<N, T>, bool) -> vec<N, T> */
/* fn select<N : num, T : scalar>(vec<N, T>, vec<N, T>, vec<N, bool>) -> vec<N, T> */
@@ -11388,124 +11440,124 @@
/* overloads */ OverloadIndex(280),
},
{
- /* [69] */
+ /* [71] */
/* fn sign<T : fia_fi32_f16>(T) -> T */
/* fn sign<N : num, T : fia_fi32_f16>(vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
/* overloads */ OverloadIndex(386),
},
{
- /* [70] */
+ /* [72] */
/* fn sin<T : fa_f32_f16>(@test_value(1.57079632679) T) -> T */
/* fn sin<N : num, T : fa_f32_f16>(@test_value(1.57079632679) vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
/* overloads */ OverloadIndex(388),
},
{
- /* [71] */
+ /* [73] */
/* fn sinh<T : fa_f32_f16>(T) -> T */
/* fn sinh<N : num, T : fa_f32_f16>(vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
/* overloads */ OverloadIndex(390),
},
{
- /* [72] */
+ /* [74] */
/* fn smoothstep<T : fa_f32_f16>(@test_value(2) T, @test_value(4) T, @test_value(3) T) -> T */
/* fn smoothstep<N : num, T : fa_f32_f16>(@test_value(2) vec<N, T>, @test_value(4) vec<N, T>, @test_value(3) vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
/* overloads */ OverloadIndex(392),
},
{
- /* [73] */
+ /* [75] */
/* fn sqrt<T : fa_f32_f16>(T) -> T */
/* fn sqrt<N : num, T : fa_f32_f16>(vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
/* overloads */ OverloadIndex(394),
},
{
- /* [74] */
+ /* [76] */
/* fn step<T : fa_f32_f16>(T, T) -> T */
/* fn step<N : num, T : fa_f32_f16>(vec<N, T>, vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
/* overloads */ OverloadIndex(396),
},
{
- /* [75] */
+ /* [77] */
/* fn storageBarrier() */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(447),
+ /* overloads */ OverloadIndex(449),
},
{
- /* [76] */
+ /* [78] */
/* fn tan<T : fa_f32_f16>(T) -> T */
/* fn tan<N : num, T : fa_f32_f16>(vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
/* overloads */ OverloadIndex(398),
},
{
- /* [77] */
+ /* [79] */
/* fn tanh<T : fa_f32_f16>(T) -> T */
/* fn tanh<N : num, T : fa_f32_f16>(vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
/* overloads */ OverloadIndex(400),
},
{
- /* [78] */
+ /* [80] */
/* fn transpose<M : num, N : num, T : fa_f32_f16>(mat<M, N, T>) -> mat<N, M, T> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(448),
+ /* overloads */ OverloadIndex(450),
},
{
- /* [79] */
+ /* [81] */
/* fn trunc<T : fa_f32_f16>(@test_value(1.5) T) -> T */
/* fn trunc<N : num, T : fa_f32_f16>(@test_value(1.5) vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
/* overloads */ OverloadIndex(402),
},
{
- /* [80] */
- /* fn unpack2x16float(u32) -> vec2<f32> */
- /* num overloads */ 1,
- /* overloads */ OverloadIndex(449),
- },
- {
- /* [81] */
- /* fn unpack2x16snorm(u32) -> vec2<f32> */
- /* num overloads */ 1,
- /* overloads */ OverloadIndex(450),
- },
- {
/* [82] */
- /* fn unpack2x16unorm(u32) -> vec2<f32> */
+ /* fn unpack2x16float(u32) -> vec2<f32> */
/* num overloads */ 1,
/* overloads */ OverloadIndex(451),
},
{
/* [83] */
- /* fn unpack4x8snorm(u32) -> vec4<f32> */
+ /* fn unpack2x16snorm(u32) -> vec2<f32> */
/* num overloads */ 1,
/* overloads */ OverloadIndex(452),
},
{
/* [84] */
- /* fn unpack4x8unorm(u32) -> vec4<f32> */
+ /* fn unpack2x16unorm(u32) -> vec2<f32> */
/* num overloads */ 1,
/* overloads */ OverloadIndex(453),
},
{
/* [85] */
- /* fn workgroupBarrier() */
+ /* fn unpack4x8snorm(u32) -> vec4<f32> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(447),
+ /* overloads */ OverloadIndex(454),
},
{
/* [86] */
- /* fn textureBarrier() */
+ /* fn unpack4x8unorm(u32) -> vec4<f32> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(447),
+ /* overloads */ OverloadIndex(455),
},
{
/* [87] */
+ /* fn workgroupBarrier() */
+ /* num overloads */ 1,
+ /* overloads */ OverloadIndex(449),
+ },
+ {
+ /* [88] */
+ /* fn textureBarrier() */
+ /* num overloads */ 1,
+ /* overloads */ OverloadIndex(449),
+ },
+ {
+ /* [89] */
/* fn textureDimensions<T : fiu32>(texture: texture_1d<T>) -> u32 */
/* fn textureDimensions<T : fiu32, L : iu32>(texture: texture_1d<T>, level: L) -> u32 */
/* fn textureDimensions<T : fiu32>(texture: texture_2d<T>) -> vec2<u32> */
@@ -11537,7 +11589,7 @@
/* overloads */ OverloadIndex(0),
},
{
- /* [88] */
+ /* [90] */
/* fn textureGather<T : fiu32, C : iu32>(@const component: C, texture: texture_2d<T>, sampler: sampler, coords: vec2<f32>) -> vec4<T> */
/* fn textureGather<T : fiu32, C : iu32>(@const component: C, texture: texture_2d<T>, sampler: sampler, coords: vec2<f32>, @const offset: vec2<i32>) -> vec4<T> */
/* fn textureGather<T : fiu32, C : iu32, A : iu32>(@const component: C, texture: texture_2d_array<T>, sampler: sampler, coords: vec2<f32>, array_index: A) -> vec4<T> */
@@ -11554,7 +11606,7 @@
/* overloads */ OverloadIndex(93),
},
{
- /* [89] */
+ /* [91] */
/* fn textureGatherCompare(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32) -> vec4<f32> */
/* fn textureGatherCompare(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32, @const offset: vec2<i32>) -> vec4<f32> */
/* fn textureGatherCompare<A : iu32>(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: A, depth_ref: f32) -> vec4<f32> */
@@ -11565,7 +11617,7 @@
/* overloads */ OverloadIndex(174),
},
{
- /* [90] */
+ /* [92] */
/* fn textureNumLayers<T : fiu32>(texture: texture_2d_array<T>) -> u32 */
/* fn textureNumLayers<T : fiu32>(texture: texture_cube_array<T>) -> u32 */
/* fn textureNumLayers(texture: texture_depth_2d_array) -> u32 */
@@ -11575,7 +11627,7 @@
/* overloads */ OverloadIndex(246),
},
{
- /* [91] */
+ /* [93] */
/* fn textureNumLevels<T : fiu32>(texture: texture_1d<T>) -> u32 */
/* fn textureNumLevels<T : fiu32>(texture: texture_2d<T>) -> u32 */
/* fn textureNumLevels<T : fiu32>(texture: texture_2d_array<T>) -> u32 */
@@ -11590,14 +11642,14 @@
/* overloads */ OverloadIndex(129),
},
{
- /* [92] */
+ /* [94] */
/* fn textureNumSamples<T : fiu32>(texture: texture_multisampled_2d<T>) -> u32 */
/* fn textureNumSamples(texture: texture_depth_multisampled_2d) -> u32 */
/* num overloads */ 2,
/* overloads */ OverloadIndex(404),
},
{
- /* [93] */
+ /* [95] */
/* fn textureSample(texture: texture_1d<f32>, sampler: sampler, coords: f32) -> vec4<f32> */
/* fn textureSample(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>) -> vec4<f32> */
/* fn textureSample(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, @const offset: vec2<i32>) -> vec4<f32> */
@@ -11617,7 +11669,7 @@
/* overloads */ OverloadIndex(64),
},
{
- /* [94] */
+ /* [96] */
/* fn textureSampleBias(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, bias: f32) -> vec4<f32> */
/* fn textureSampleBias(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, bias: f32, @const offset: vec2<i32>) -> vec4<f32> */
/* fn textureSampleBias<A : iu32>(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: A, bias: f32) -> vec4<f32> */
@@ -11630,7 +11682,7 @@
/* overloads */ OverloadIndex(158),
},
{
- /* [95] */
+ /* [97] */
/* fn textureSampleCompare(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32) -> f32 */
/* fn textureSampleCompare(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32, @const offset: vec2<i32>) -> f32 */
/* fn textureSampleCompare<A : iu32>(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: A, depth_ref: f32) -> f32 */
@@ -11641,7 +11693,7 @@
/* overloads */ OverloadIndex(180),
},
{
- /* [96] */
+ /* [98] */
/* fn textureSampleCompareLevel(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32) -> f32 */
/* fn textureSampleCompareLevel(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32, @const offset: vec2<i32>) -> f32 */
/* fn textureSampleCompareLevel<A : iu32>(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: A, depth_ref: f32) -> f32 */
@@ -11652,7 +11704,7 @@
/* overloads */ OverloadIndex(186),
},
{
- /* [97] */
+ /* [99] */
/* fn textureSampleGrad(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, ddx: vec2<f32>, ddy: vec2<f32>) -> vec4<f32> */
/* fn textureSampleGrad(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, ddx: vec2<f32>, ddy: vec2<f32>, @const offset: vec2<i32>) -> vec4<f32> */
/* fn textureSampleGrad<A : iu32>(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: A, ddx: vec2<f32>, ddy: vec2<f32>) -> vec4<f32> */
@@ -11665,7 +11717,7 @@
/* overloads */ OverloadIndex(166),
},
{
- /* [98] */
+ /* [100] */
/* fn textureSampleLevel(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, level: f32) -> vec4<f32> */
/* fn textureSampleLevel(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, level: f32, @const offset: vec2<i32>) -> vec4<f32> */
/* fn textureSampleLevel<A : iu32>(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: A, level: f32) -> vec4<f32> */
@@ -11684,14 +11736,14 @@
/* overloads */ OverloadIndex(79),
},
{
- /* [99] */
+ /* [101] */
/* fn textureSampleBaseClampToEdge(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>) -> vec4<f32> */
/* fn textureSampleBaseClampToEdge(texture: texture_external, sampler: sampler, coords: vec2<f32>) -> vec4<f32> */
/* num overloads */ 2,
/* overloads */ OverloadIndex(406),
},
{
- /* [100] */
+ /* [102] */
/* fn textureStore<C : iu32>(texture: texture_storage_1d<f32_texel_format, writable>, coords: C, value: vec4<f32>) */
/* fn textureStore<C : iu32>(texture: texture_storage_2d<f32_texel_format, writable>, coords: vec2<C>, value: vec4<f32>) */
/* fn textureStore<C : iu32, A : iu32>(texture: texture_storage_2d_array<f32_texel_format, writable>, coords: vec2<C>, array_index: A, value: vec4<f32>) */
@@ -11708,7 +11760,7 @@
/* overloads */ OverloadIndex(105),
},
{
- /* [101] */
+ /* [103] */
/* fn textureLoad<T : fiu32, C : iu32, L : iu32>(texture: texture_1d<T>, coords: C, level: L) -> vec4<T> */
/* fn textureLoad<T : fiu32, C : iu32, L : iu32>(texture: texture_2d<T>, coords: vec2<C>, level: L) -> vec4<T> */
/* fn textureLoad<T : fiu32, C : iu32, A : iu32, L : iu32>(texture: texture_2d_array<T>, coords: vec2<C>, array_index: A, level: L) -> vec4<T> */
@@ -11734,89 +11786,89 @@
/* overloads */ OverloadIndex(27),
},
{
- /* [102] */
- /* fn atomicLoad<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>) -> T */
- /* num overloads */ 1,
- /* overloads */ OverloadIndex(454),
- },
- {
- /* [103] */
- /* fn atomicStore<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) */
- /* num overloads */ 1,
- /* overloads */ OverloadIndex(455),
- },
- {
/* [104] */
- /* fn atomicAdd<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
+ /* fn atomicLoad<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>) -> T */
/* num overloads */ 1,
/* overloads */ OverloadIndex(456),
},
{
/* [105] */
- /* fn atomicSub<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
- /* num overloads */ 1,
- /* overloads */ OverloadIndex(456),
- },
- {
- /* [106] */
- /* fn atomicMax<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
- /* num overloads */ 1,
- /* overloads */ OverloadIndex(456),
- },
- {
- /* [107] */
- /* fn atomicMin<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
- /* num overloads */ 1,
- /* overloads */ OverloadIndex(456),
- },
- {
- /* [108] */
- /* fn atomicAnd<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
- /* num overloads */ 1,
- /* overloads */ OverloadIndex(456),
- },
- {
- /* [109] */
- /* fn atomicOr<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
- /* num overloads */ 1,
- /* overloads */ OverloadIndex(456),
- },
- {
- /* [110] */
- /* fn atomicXor<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
- /* num overloads */ 1,
- /* overloads */ OverloadIndex(456),
- },
- {
- /* [111] */
- /* fn atomicExchange<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
- /* num overloads */ 1,
- /* overloads */ OverloadIndex(456),
- },
- {
- /* [112] */
- /* fn atomicCompareExchangeWeak<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T, T) -> __atomic_compare_exchange_result<T> */
+ /* fn atomicStore<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) */
/* num overloads */ 1,
/* overloads */ OverloadIndex(457),
},
{
+ /* [106] */
+ /* fn atomicAdd<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
+ /* num overloads */ 1,
+ /* overloads */ OverloadIndex(458),
+ },
+ {
+ /* [107] */
+ /* fn atomicSub<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
+ /* num overloads */ 1,
+ /* overloads */ OverloadIndex(458),
+ },
+ {
+ /* [108] */
+ /* fn atomicMax<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
+ /* num overloads */ 1,
+ /* overloads */ OverloadIndex(458),
+ },
+ {
+ /* [109] */
+ /* fn atomicMin<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
+ /* num overloads */ 1,
+ /* overloads */ OverloadIndex(458),
+ },
+ {
+ /* [110] */
+ /* fn atomicAnd<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
+ /* num overloads */ 1,
+ /* overloads */ OverloadIndex(458),
+ },
+ {
+ /* [111] */
+ /* fn atomicOr<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
+ /* num overloads */ 1,
+ /* overloads */ OverloadIndex(458),
+ },
+ {
+ /* [112] */
+ /* fn atomicXor<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
+ /* num overloads */ 1,
+ /* overloads */ OverloadIndex(458),
+ },
+ {
/* [113] */
- /* fn subgroupBallot() -> vec4<u32> */
+ /* fn atomicExchange<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
/* num overloads */ 1,
/* overloads */ OverloadIndex(458),
},
{
/* [114] */
- /* fn subgroupBroadcast<T : fiu32>(value: T, @const sourceLaneIndex: u32) -> T */
+ /* fn atomicCompareExchangeWeak<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T, T) -> __atomic_compare_exchange_result<T> */
/* num overloads */ 1,
/* overloads */ OverloadIndex(459),
},
{
/* [115] */
- /* fn _tint_materialize<T>(T) -> T */
+ /* fn subgroupBallot() -> vec4<u32> */
/* num overloads */ 1,
/* overloads */ OverloadIndex(460),
},
+ {
+ /* [116] */
+ /* fn subgroupBroadcast<T : fiu32>(value: T, @const sourceLaneIndex: u32) -> T */
+ /* num overloads */ 1,
+ /* overloads */ OverloadIndex(461),
+ },
+ {
+ /* [117] */
+ /* fn _tint_materialize<T>(T) -> T */
+ /* num overloads */ 1,
+ /* overloads */ OverloadIndex(462),
+ },
};
constexpr IntrinsicInfo kUnaryOperators[] = {
@@ -11928,13 +11980,13 @@
/* [8] */
/* op &&(bool, bool) -> bool */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(461),
+ /* overloads */ OverloadIndex(463),
},
{
/* [9] */
/* op ||(bool, bool) -> bool */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(462),
+ /* overloads */ OverloadIndex(464),
},
{
/* [10] */
@@ -12209,7 +12261,7 @@
/* [17] */
/* conv packedVec3<T : concrete_scalar>(vec3<T>) -> packedVec3<T> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(463),
+ /* overloads */ OverloadIndex(465),
},
};
diff --git a/src/tint/lang/core/ir/binary/decode.cc b/src/tint/lang/core/ir/binary/decode.cc
index 907d7bf..7141a28 100644
--- a/src/tint/lang/core/ir/binary/decode.cc
+++ b/src/tint/lang/core/ir/binary/decode.cc
@@ -32,6 +32,8 @@
#include "src/tint/lang/core/ir/builder.h"
#include "src/tint/lang/core/ir/module.h"
#include "src/tint/lang/core/type/depth_texture.h"
+#include "src/tint/lang/core/type/sampled_texture.h"
+#include "src/tint/lang/core/type/storage_texture.h"
#include "src/tint/utils/containers/transform.h"
#include "src/tint/utils/macros/compiler.h"
@@ -168,6 +170,15 @@
for (auto param_in : fn_in.parameters()) {
params_out.Push(ValueAs<ir::FunctionParam>(param_in));
}
+ if (fn_in.has_return_location()) {
+ auto& ret_loc_in = fn_in.return_location();
+ core::ir::Location ret_loc_out{};
+ ret_loc_out.value = ret_loc_in.value();
+ if (ret_loc_in.has_interpolation()) {
+ ret_loc_out.interpolation = Interpolation(ret_loc_in.interpolation());
+ }
+ fn_out->SetReturnLocation(ret_loc_out.value, std::move(ret_loc_out.interpolation));
+ }
fn_out->SetParams(std::move(params_out));
fn_out->SetBlock(Block(fn_in.block()));
}
@@ -510,6 +521,10 @@
return CreateTypeArray(type_in.array());
case pb::Type::KindCase::kDepthTexture:
return CreateTypeDepthTexture(type_in.depth_texture());
+ case pb::Type::KindCase::kSampledTexture:
+ return CreateTypeSampledTexture(type_in.sampled_texture());
+ case pb::Type::KindCase::kStorageTexture:
+ return CreateTypeStorageTexture(type_in.storage_texture());
case pb::Type::KindCase::kSampler:
return CreateTypeSampler(type_in.sampler());
default:
@@ -553,7 +568,7 @@
const type::Pointer* CreateTypePointer(const pb::TypePointer& pointer_in) {
auto address_space = AddressSpace(pointer_in.address_space());
auto* store_ty = Type(pointer_in.store_type());
- auto access = Access(pointer_in.access());
+ auto access = AccessControl(pointer_in.access());
return mod_out_.Types().ptr(address_space, store_ty, access);
}
@@ -583,14 +598,7 @@
}
if (attributes_in.has_interpolation()) {
auto& interpolation_in = attributes_in.interpolation();
- attributes_out.interpolation = core::Interpolation{
- InterpolationType(interpolation_in.type()),
- InterpolationSampling::kUndefined,
- };
- if (interpolation_in.has_sampling()) {
- attributes_out.interpolation->sampling =
- InterpolationSampling(interpolation_in.sampling());
- }
+ attributes_out.interpolation = Interpolation(interpolation_in);
}
attributes_out.invariant = attributes_in.invariant();
}
@@ -621,6 +629,21 @@
return mod_out_.Types().Get<type::DepthTexture>(dimension);
}
+ const type::SampledTexture* CreateTypeSampledTexture(const pb::TypeSampledTexture& texture_in) {
+ auto dimension = TextureDimension(texture_in.dimension());
+ auto sub_type = Type(texture_in.sub_type());
+ return mod_out_.Types().Get<type::SampledTexture>(dimension, sub_type);
+ }
+
+ const type::StorageTexture* CreateTypeStorageTexture(const pb::TypeStorageTexture& texture_in) {
+ auto dimension = TextureDimension(texture_in.dimension());
+ auto texel_format = TexelFormat(texture_in.texel_format());
+ auto access = AccessControl(texture_in.access());
+ return mod_out_.Types().Get<type::StorageTexture>(
+ dimension, texel_format, access,
+ type::StorageTexture::SubtypeFor(texel_format, b.ir.Types()));
+ }
+
const type::Sampler* CreateTypeSampler(const pb::TypeSampler& sampler_in) {
auto kind = SamplerKind(sampler_in.kind());
return mod_out_.Types().Get<type::Sampler>(kind);
@@ -745,6 +768,18 @@
}
////////////////////////////////////////////////////////////////////////////
+ // Attributes
+ ////////////////////////////////////////////////////////////////////////////
+ core::Interpolation Interpolation(const pb::Interpolation& interpolation_in) {
+ core::Interpolation interpolation_out{};
+ interpolation_out.type = InterpolationType(interpolation_in.type());
+ if (interpolation_in.has_sampling()) {
+ interpolation_out.sampling = InterpolationSampling(interpolation_in.sampling());
+ }
+ return interpolation_out;
+ }
+
+ ////////////////////////////////////////////////////////////////////////////
// Enums
////////////////////////////////////////////////////////////////////////////
core::AddressSpace AddressSpace(pb::AddressSpace in) {
@@ -771,7 +806,7 @@
}
}
- core::Access Access(pb::AccessControl in) {
+ core::Access AccessControl(pb::AccessControl in) {
switch (in) {
case pb::AccessControl::read:
return core::Access::kRead;
@@ -861,6 +896,50 @@
return core::type::TextureDimension::k1d;
}
+ core::TexelFormat TexelFormat(pb::TexelFormat in) {
+ switch (in) {
+ case pb::TexelFormat::bgra8_unorm:
+ return core::TexelFormat::kBgra8Unorm;
+ case pb::TexelFormat::r32_float:
+ return core::TexelFormat::kR32Float;
+ case pb::TexelFormat::r32_sint:
+ return core::TexelFormat::kR32Sint;
+ case pb::TexelFormat::r32_uint:
+ return core::TexelFormat::kR32Uint;
+ case pb::TexelFormat::rg32_float:
+ return core::TexelFormat::kRg32Float;
+ case pb::TexelFormat::rg32_sint:
+ return core::TexelFormat::kRg32Sint;
+ case pb::TexelFormat::rg32_uint:
+ return core::TexelFormat::kRg32Uint;
+ case pb::TexelFormat::rgba16_float:
+ return core::TexelFormat::kRgba16Float;
+ case pb::TexelFormat::rgba16_sint:
+ return core::TexelFormat::kRgba16Sint;
+ case pb::TexelFormat::rgba16_uint:
+ return core::TexelFormat::kRgba16Uint;
+ case pb::TexelFormat::rgba32_float:
+ return core::TexelFormat::kRgba32Float;
+ case pb::TexelFormat::rgba32_sint:
+ return core::TexelFormat::kRgba32Sint;
+ case pb::TexelFormat::rgba32_uint:
+ return core::TexelFormat::kRgba32Uint;
+ case pb::TexelFormat::rgba8_sint:
+ return core::TexelFormat::kRgba8Sint;
+ case pb::TexelFormat::rgba8_snorm:
+ return core::TexelFormat::kRgba8Snorm;
+ case pb::TexelFormat::rgba8_uint:
+ return core::TexelFormat::kRgba8Uint;
+ case pb::TexelFormat::rgba8_unorm:
+ return core::TexelFormat::kRgba8Unorm;
+ default:
+ break;
+ }
+
+ TINT_ICE() << "invalid TexelFormat: " << in;
+ return core::TexelFormat::kBgra8Unorm;
+ }
+
core::type::SamplerKind SamplerKind(pb::SamplerKind in) {
switch (in) {
case pb::SamplerKind::sampler:
diff --git a/src/tint/lang/core/ir/binary/encode.cc b/src/tint/lang/core/ir/binary/encode.cc
index ef64042..3677967 100644
--- a/src/tint/lang/core/ir/binary/encode.cc
+++ b/src/tint/lang/core/ir/binary/encode.cc
@@ -62,6 +62,7 @@
#include "src/tint/lang/core/ir/unary.h"
#include "src/tint/lang/core/ir/user_call.h"
#include "src/tint/lang/core/ir/var.h"
+#include "src/tint/lang/core/texel_format.h"
#include "src/tint/lang/core/type/array.h"
#include "src/tint/lang/core/type/bool.h"
#include "src/tint/lang/core/type/depth_texture.h"
@@ -70,7 +71,9 @@
#include "src/tint/lang/core/type/i32.h"
#include "src/tint/lang/core/type/matrix.h"
#include "src/tint/lang/core/type/pointer.h"
+#include "src/tint/lang/core/type/sampled_texture.h"
#include "src/tint/lang/core/type/sampler.h"
+#include "src/tint/lang/core/type/storage_texture.h"
#include "src/tint/lang/core/type/u32.h"
#include "src/tint/lang/core/type/void.h"
#include "src/tint/utils/macros/compiler.h"
@@ -131,6 +134,14 @@
for (auto* param_in : fn_in->Params()) {
fn_out->add_parameters(Value(param_in));
}
+ if (auto ret_loc_in = fn_in->ReturnLocation()) {
+ auto& ret_loc_out = *fn_out->mutable_return_location();
+ if (auto interpolation_in = ret_loc_in->interpolation) {
+ auto& interpolation_out = *ret_loc_out.mutable_interpolation();
+ Interpolation(interpolation_out, *interpolation_in);
+ }
+ ret_loc_out.set_value(ret_loc_in->value);
+ }
fn_out->set_block(Block(fn_in->Block()));
}
@@ -345,6 +356,12 @@
[&](const core::type::DepthTexture* t) {
TypeDepthTexture(*type_out.mutable_depth_texture(), t);
},
+ [&](const core::type::SampledTexture* t) {
+ TypeSampledTexture(*type_out.mutable_sampled_texture(), t);
+ },
+ [&](const core::type::StorageTexture* t) {
+ TypeStorageTexture(*type_out.mutable_storage_texture(), t);
+ },
[&](const core::type::Sampler* s) { TypeSampler(*type_out.mutable_sampler(), s); },
TINT_ICE_ON_NO_MATCH);
@@ -367,7 +384,7 @@
void TypePointer(pb::TypePointer& pointer_out, const core::type::Pointer* pointer_in) {
pointer_out.set_address_space(AddressSpace(pointer_in->AddressSpace()));
pointer_out.set_store_type(Type(pointer_in->StoreType()));
- pointer_out.set_access(Access(pointer_in->Access()));
+ pointer_out.set_access(AccessControl(pointer_in->Access()));
}
void TypeStruct(pb::TypeStruct& struct_out, const core::type::Struct* struct_in) {
@@ -394,11 +411,7 @@
}
if (auto& interpolation_in = attrs_in.interpolation) {
auto& interpolation_out = *member_out.mutable_attributes()->mutable_interpolation();
- interpolation_out.set_type(InterpolationType(interpolation_in->type));
- if (interpolation_in->sampling != InterpolationSampling::kUndefined) {
- interpolation_out.set_sampling(
- InterpolationSampling(interpolation_in->sampling));
- }
+ Interpolation(interpolation_out, *interpolation_in);
}
if (attrs_in.invariant) {
member_out.mutable_attributes()->set_invariant(true);
@@ -425,6 +438,19 @@
texture_out.set_dimension(TextureDimension(texture_in->dim()));
}
+ void TypeSampledTexture(pb::TypeSampledTexture& texture_out,
+ const core::type::SampledTexture* texture_in) {
+ texture_out.set_dimension(TextureDimension(texture_in->dim()));
+ texture_out.set_sub_type(Type(texture_in->type()));
+ }
+
+ void TypeStorageTexture(pb::TypeStorageTexture& texture_out,
+ const core::type::StorageTexture* texture_in) {
+ texture_out.set_dimension(TextureDimension(texture_in->dim()));
+ texture_out.set_texel_format(TexelFormat(texture_in->texel_format()));
+ texture_out.set_access(AccessControl(texture_in->access()));
+ }
+
void TypeSampler(pb::TypeSampler& sampler_out, const core::type::Sampler* sampler_in) {
sampler_out.set_kind(SamplerKind(sampler_in->kind()));
}
@@ -535,6 +561,17 @@
}
////////////////////////////////////////////////////////////////////////////
+ // Attributes
+ ////////////////////////////////////////////////////////////////////////////
+ void Interpolation(pb::Interpolation& interpolation_out,
+ const core::Interpolation& interpolation_in) {
+ interpolation_out.set_type(InterpolationType(interpolation_in.type));
+ if (interpolation_in.sampling != InterpolationSampling::kUndefined) {
+ interpolation_out.set_sampling(InterpolationSampling(interpolation_in.sampling));
+ }
+ }
+
+ ////////////////////////////////////////////////////////////////////////////
// Enums
////////////////////////////////////////////////////////////////////////////
pb::AddressSpace AddressSpace(core::AddressSpace in) {
@@ -561,7 +598,7 @@
}
}
- pb::AccessControl Access(core::Access in) {
+ pb::AccessControl AccessControl(core::Access in) {
switch (in) {
case core::Access::kRead:
return pb::AccessControl::read;
@@ -648,6 +685,50 @@
return pb::TextureDimension::_1d;
}
+ pb::TexelFormat TexelFormat(core::TexelFormat in) {
+ switch (in) {
+ case core::TexelFormat::kBgra8Unorm:
+ return pb::TexelFormat::bgra8_unorm;
+ case core::TexelFormat::kR32Float:
+ return pb::TexelFormat::r32_float;
+ case core::TexelFormat::kR32Sint:
+ return pb::TexelFormat::r32_sint;
+ case core::TexelFormat::kR32Uint:
+ return pb::TexelFormat::r32_uint;
+ case core::TexelFormat::kRg32Float:
+ return pb::TexelFormat::rg32_float;
+ case core::TexelFormat::kRg32Sint:
+ return pb::TexelFormat::rg32_sint;
+ case core::TexelFormat::kRg32Uint:
+ return pb::TexelFormat::rg32_uint;
+ case core::TexelFormat::kRgba16Float:
+ return pb::TexelFormat::rgba16_float;
+ case core::TexelFormat::kRgba16Sint:
+ return pb::TexelFormat::rgba16_sint;
+ case core::TexelFormat::kRgba16Uint:
+ return pb::TexelFormat::rgba16_uint;
+ case core::TexelFormat::kRgba32Float:
+ return pb::TexelFormat::rgba32_float;
+ case core::TexelFormat::kRgba32Sint:
+ return pb::TexelFormat::rgba32_sint;
+ case core::TexelFormat::kRgba32Uint:
+ return pb::TexelFormat::rgba32_uint;
+ case core::TexelFormat::kRgba8Sint:
+ return pb::TexelFormat::rgba8_sint;
+ case core::TexelFormat::kRgba8Snorm:
+ return pb::TexelFormat::rgba8_snorm;
+ case core::TexelFormat::kRgba8Uint:
+ return pb::TexelFormat::rgba8_uint;
+ case core::TexelFormat::kRgba8Unorm:
+ return pb::TexelFormat::rgba8_unorm;
+ default:
+ break;
+ }
+
+ TINT_ICE() << "invalid TexelFormat: " << in;
+ return pb::TexelFormat::bgra8_unorm;
+ }
+
pb::SamplerKind SamplerKind(core::type::SamplerKind in) {
switch (in) {
case core::type::SamplerKind::kSampler:
diff --git a/src/tint/lang/core/ir/binary/ir.proto b/src/tint/lang/core/ir/binary/ir.proto
index 2dbe992..6fe9364 100644
--- a/src/tint/lang/core/ir/binary/ir.proto
+++ b/src/tint/lang/core/ir/binary/ir.proto
@@ -51,7 +51,9 @@
TypeStruct struct = 6;
TypeAtomic atomic = 7;
TypeDepthTexture depth_texture = 8;
- TypeSampler sampler = 9;
+ TypeSampledTexture sampled_texture = 9;
+ TypeStorageTexture storage_texture = 10;
+ TypeSampler sampler = 11;
}
}
@@ -109,6 +111,17 @@
TextureDimension dimension = 1;
}
+message TypeSampledTexture {
+ TextureDimension dimension = 1;
+ uint32 sub_type = 2; // Module.types
+}
+
+message TypeStorageTexture {
+ TextureDimension dimension = 1;
+ TexelFormat texel_format = 2;
+ AccessControl access = 3;
+}
+
message TypeSampler {
SamplerKind kind = 1;
}
@@ -183,6 +196,7 @@
optional PipelineStage pipeline_stage = 4;
optional WorkgroupSize workgroup_size = 5;
repeated uint32 parameters = 6; // Module.values
+ optional ReturnLocation return_location = 7;
}
enum PipelineStage {
@@ -197,6 +211,11 @@
uint32 z = 3;
}
+message ReturnLocation {
+ uint32 value = 1;
+ optional Interpolation interpolation = 2;
+}
+
////////////////////////////////////////////////////////////////////////////////
// Blocks
////////////////////////////////////////////////////////////////////////////////
@@ -334,11 +353,11 @@
optional uint32 index = 2;
optional uint32 color = 3;
optional BuiltinValue builtin = 4;
- optional AttributesInterpolation interpolation = 5;
+ optional Interpolation interpolation = 5;
bool invariant = 6;
}
-message AttributesInterpolation {
+message Interpolation {
InterpolationType type = 1;
optional InterpolationSampling sampling = 2;
}
@@ -396,6 +415,26 @@
cube_array = 5;
}
+enum TexelFormat {
+ bgra8_unorm = 0;
+ r32_float = 1;
+ r32_sint = 2;
+ r32_uint = 3;
+ rg32_float = 4;
+ rg32_sint = 5;
+ rg32_uint = 6;
+ rgba16_float = 7;
+ rgba16_sint = 8;
+ rgba16_uint = 9;
+ rgba32_float = 10;
+ rgba32_sint = 11;
+ rgba32_uint = 12;
+ rgba8_sint = 13;
+ rgba8_snorm = 14;
+ rgba8_uint = 15;
+ rgba8_unorm = 16;
+}
+
enum SamplerKind {
sampler = 0;
comparison = 1;
diff --git a/src/tint/lang/core/ir/binary/roundtrip_test.cc b/src/tint/lang/core/ir/binary/roundtrip_test.cc
index 1d71786..3baf12b 100644
--- a/src/tint/lang/core/ir/binary/roundtrip_test.cc
+++ b/src/tint/lang/core/ir/binary/roundtrip_test.cc
@@ -31,6 +31,8 @@
#include "src/tint/lang/core/ir/binary/encode.h"
#include "src/tint/lang/core/ir/disassembler.h"
#include "src/tint/lang/core/type/depth_texture.h"
+#include "src/tint/lang/core/type/sampled_texture.h"
+#include "src/tint/lang/core/type/storage_texture.h"
namespace tint::core::ir::binary {
namespace {
@@ -124,6 +126,23 @@
RUN_TEST();
}
+TEST_F(IRBinaryRoundtripTest, Fn_ReturnLocation) {
+ auto* fn = b.Function("Function", ty.void_());
+ fn->SetReturnLocation(42, std::nullopt);
+ b.ir.SetName(fn, "Function");
+ RUN_TEST();
+}
+
+TEST_F(IRBinaryRoundtripTest, Fn_ReturnLocation_Interpolation) {
+ auto* fn = b.Function("Function", ty.void_());
+ fn->SetReturnLocation(0, core::Interpolation{
+ core::InterpolationType::kPerspective,
+ core::InterpolationSampling::kCentroid,
+ });
+ b.ir.SetName(fn, "Function");
+ RUN_TEST();
+}
+
////////////////////////////////////////////////////////////////////////////////
// Types
////////////////////////////////////////////////////////////////////////////////
@@ -254,6 +273,20 @@
RUN_TEST();
}
+TEST_F(IRBinaryRoundtripTest, sampled_texture) {
+ auto* tex = ty.Get<core::type::SampledTexture>(core::type::TextureDimension::k3d, ty.i32());
+ b.Append(b.ir.root_block, [&] { b.Var(ty.ptr(handle, tex, read)); });
+ RUN_TEST();
+}
+
+TEST_F(IRBinaryRoundtripTest, storage_texture) {
+ auto* tex = ty.Get<core::type::StorageTexture>(core::type::TextureDimension::k2dArray,
+ core::TexelFormat::kRg32Float,
+ core::Access::kReadWrite, ty.f32());
+ b.Append(b.ir.root_block, [&] { b.Var(ty.ptr(handle, tex, read)); });
+ RUN_TEST();
+}
+
TEST_F(IRBinaryRoundtripTest, sampler) {
auto* sampler = ty.Get<core::type::Sampler>(core::type::SamplerKind::kSampler);
b.Append(b.ir.root_block, [&] { b.Var(ty.ptr(handle, sampler, read)); });
diff --git a/src/tint/lang/core/ir/builder.cc b/src/tint/lang/core/ir/builder.cc
index 9315f8a..ba14605 100644
--- a/src/tint/lang/core/ir/builder.cc
+++ b/src/tint/lang/core/ir/builder.cc
@@ -51,17 +51,24 @@
return ir.blocks.Create<ir::MultiInBlock>();
}
-Function* Builder::Function(std::string_view name,
- const core::type::Type* return_type,
+Function* Builder::Function(const core::type::Type* return_type,
Function::PipelineStage stage,
std::optional<std::array<uint32_t, 3>> wg_size) {
auto* ir_func = ir.values.Create<ir::Function>(return_type, stage, wg_size);
ir_func->SetBlock(Block());
- ir.SetName(ir_func, name);
ir.functions.Push(ir_func);
return ir_func;
}
+Function* Builder::Function(std::string_view name,
+ const core::type::Type* return_type,
+ Function::PipelineStage stage,
+ std::optional<std::array<uint32_t, 3>> wg_size) {
+ auto* ir_func = Function(return_type, stage, wg_size);
+ ir.SetName(ir_func, name);
+ return ir_func;
+}
+
ir::Loop* Builder::Loop() {
return Append(ir.instructions.Create<ir::Loop>(Block(), MultiInBlock(), MultiInBlock()));
}
diff --git a/src/tint/lang/core/ir/builder.h b/src/tint/lang/core/ir/builder.h
index ebbd851..fc847c7 100644
--- a/src/tint/lang/core/ir/builder.h
+++ b/src/tint/lang/core/ir/builder.h
@@ -235,12 +235,21 @@
/// @returns a new multi-in block
ir::MultiInBlock* MultiInBlock();
- /// Creates a function instruction
+ /// Creates an unnamed function
+ /// @param return_type the function return type
+ /// @param stage the function stage
+ /// @param wg_size the workgroup_size
+ /// @returns the function
+ ir::Function* Function(const core::type::Type* return_type,
+ Function::PipelineStage stage = Function::PipelineStage::kUndefined,
+ std::optional<std::array<uint32_t, 3>> wg_size = {});
+
+ /// Creates a function
/// @param name the function name
/// @param return_type the function return type
/// @param stage the function stage
/// @param wg_size the workgroup_size
- /// @returns the instruction
+ /// @returns the function
ir::Function* Function(std::string_view name,
const core::type::Type* return_type,
Function::PipelineStage stage = Function::PipelineStage::kUndefined,
diff --git a/src/tint/lang/core/ir/transform/builtin_polyfill.cc b/src/tint/lang/core/ir/transform/builtin_polyfill.cc
index 07f299c..50718f6 100644
--- a/src/tint/lang/core/ir/transform/builtin_polyfill.cc
+++ b/src/tint/lang/core/ir/transform/builtin_polyfill.cc
@@ -119,6 +119,13 @@
}
}
break;
+ case core::BuiltinFn::kPack4XI8:
+ case core::BuiltinFn::kPack4XU8: {
+ if (config.pack_unpack_4x8) {
+ worklist.Push(builtin);
+ }
+ break;
+ }
default:
break;
}
@@ -156,6 +163,12 @@
case core::BuiltinFn::kTextureSampleBaseClampToEdge:
replacement = TextureSampleBaseClampToEdge_2d_f32(builtin);
break;
+ case core::BuiltinFn::kPack4XI8:
+ replacement = Pack4xI8(builtin);
+ break;
+ case core::BuiltinFn::kPack4XU8:
+ replacement = Pack4xU8(builtin);
+ break;
default:
break;
}
@@ -571,6 +584,56 @@
});
return result;
}
+
+ /// Polyfill a `Pack4xI8()` builtin call
+ /// @param call the builtin call instruction
+ /// @returns the replacement value
+ ir::Value* Pack4xI8(ir::CoreBuiltinCall* call) {
+ // Replace `pack4xI8(%x)` with:
+ // %n = vec4u(0, 8, 16, 24);
+ // %x_i8 = vec4u((%x & vec4i(0xff)) << n);
+ // %result = dot(%x_i8, vec4u(1));
+ ir::Value* result = nullptr;
+ auto* x = call->Args()[0];
+ b.InsertBefore(call, [&] {
+ auto* vec4u = ty.vec4<u32>();
+ auto* vec4i = ty.vec4<i32>();
+
+ auto* n = b.Construct(vec4u, b.Constant(u32(0)), b.Constant(u32(8)),
+ b.Constant(u32(16)), b.Constant(u32(24)));
+ auto* x_i8 = b.Convert(
+ vec4u,
+ b.ShiftLeft(vec4i, b.And(vec4i, x, b.Construct(vec4i, b.Constant(i32(0xff)))), n));
+ result = b.Call(ty.u32(), core::BuiltinFn::kDot, x_i8,
+ b.Construct(vec4u, (b.Constant(u32(1)))))
+ ->Result(0);
+ });
+ return result;
+ }
+
+ /// Polyfill a `Pack4xU8()` builtin call
+ /// @param call the builtin call instruction
+ /// @returns the replacement value
+ ir::Value* Pack4xU8(ir::CoreBuiltinCall* call) {
+ // Replace `pack4xU8(%x)` with:
+ // %n = vec4u(0, 8, 16, 24);
+ // %x_i8 = (%x & vec4u(0xff)) << %n;
+ // %result = dot(%x_i8, vec4u(1));
+ ir::Value* result = nullptr;
+ auto* x = call->Args()[0];
+ b.InsertBefore(call, [&] {
+ auto* vec4u = ty.vec4<u32>();
+
+ auto* n = b.Construct(vec4u, b.Constant(u32(0)), b.Constant(u32(8)),
+ b.Constant(u32(16)), b.Constant(u32(24)));
+ auto* x_u8 =
+ b.ShiftLeft(vec4u, b.And(vec4u, x, b.Construct(vec4u, b.Constant(u32(0xff)))), n);
+ result = b.Call(ty.u32(), core::BuiltinFn::kDot, x_u8,
+ b.Construct(vec4u, (b.Constant(u32(1)))))
+ ->Result(0);
+ });
+ return result;
+ }
};
} // namespace
diff --git a/src/tint/lang/core/ir/transform/builtin_polyfill.h b/src/tint/lang/core/ir/transform/builtin_polyfill.h
index 10c7a83..2f90486 100644
--- a/src/tint/lang/core/ir/transform/builtin_polyfill.h
+++ b/src/tint/lang/core/ir/transform/builtin_polyfill.h
@@ -69,6 +69,8 @@
bool saturate = false;
/// Should `textureSampleBaseClampToEdge()` be polyfilled for texture_2d<f32> textures?
bool texture_sample_base_clamp_to_edge_2d_f32 = false;
+ /// Should `pack4xI8()` and `pack4xU8()` be polyfilled?
+ bool pack_unpack_4x8 = false;
};
/// BuiltinPolyfill is a transform that replaces calls to builtin functions and uses of other core
diff --git a/src/tint/lang/core/ir/transform/builtin_polyfill_test.cc b/src/tint/lang/core/ir/transform/builtin_polyfill_test.cc
index cbfa4e7..39e1168 100644
--- a/src/tint/lang/core/ir/transform/builtin_polyfill_test.cc
+++ b/src/tint/lang/core/ir/transform/builtin_polyfill_test.cc
@@ -1413,5 +1413,74 @@
EXPECT_EQ(expect, str());
}
+TEST_F(IR_BuiltinPolyfillTest, Pack4xI8) {
+ Build(core::BuiltinFn::kPack4XI8, ty.u32(), Vector{ty.vec4<i32>()});
+
+ auto* src = R"(
+%foo = func(%arg:vec4<i32>):u32 -> %b1 {
+ %b1 = block {
+ %result:u32 = pack4xI8 %arg
+ ret %result
+ }
+}
+)";
+ EXPECT_EQ(src, str());
+
+ auto* expect = R"(
+%foo = func(%arg:vec4<i32>):u32 -> %b1 {
+ %b1 = block {
+ %3:vec4<u32> = construct 0u, 8u, 16u, 24u
+ %4:vec4<i32> = construct 255i
+ %5:vec4<i32> = and %arg, %4
+ %6:vec4<i32> = shiftl %5, %3
+ %7:vec4<u32> = convert %6
+ %8:vec4<u32> = construct 1u
+ %result:u32 = dot %7, %8
+ ret %result
+ }
+}
+)";
+
+ BuiltinPolyfillConfig config;
+ config.pack_unpack_4x8 = true;
+ Run(BuiltinPolyfill, config);
+
+ EXPECT_EQ(expect, str());
+}
+
+TEST_F(IR_BuiltinPolyfillTest, Pack4xU8) {
+ Build(core::BuiltinFn::kPack4XU8, ty.u32(), Vector{ty.vec4<u32>()});
+
+ auto* src = R"(
+%foo = func(%arg:vec4<u32>):u32 -> %b1 {
+ %b1 = block {
+ %result:u32 = pack4xU8 %arg
+ ret %result
+ }
+}
+)";
+ EXPECT_EQ(src, str());
+
+ auto* expect = R"(
+%foo = func(%arg:vec4<u32>):u32 -> %b1 {
+ %b1 = block {
+ %3:vec4<u32> = construct 0u, 8u, 16u, 24u
+ %4:vec4<u32> = construct 255u
+ %5:vec4<u32> = and %arg, %4
+ %6:vec4<u32> = shiftl %5, %3
+ %7:vec4<u32> = construct 1u
+ %result:u32 = dot %6, %7
+ ret %result
+ }
+}
+)";
+
+ BuiltinPolyfillConfig config;
+ config.pack_unpack_4x8 = true;
+ Run(BuiltinPolyfill, config);
+
+ EXPECT_EQ(expect, str());
+}
+
} // namespace
} // namespace tint::core::ir::transform
diff --git a/src/tint/lang/core/ir/transform/direct_variable_access_wgsl_test.cc b/src/tint/lang/core/ir/transform/direct_variable_access_wgsl_test.cc
index e1d77c1..31f65e1 100644
--- a/src/tint/lang/core/ir/transform/direct_variable_access_wgsl_test.cc
+++ b/src/tint/lang/core/ir/transform/direct_variable_access_wgsl_test.cc
@@ -621,7 +621,7 @@
fn c_U() {
let v_2 = first();
let v_3 = second();
- for(var i : i32; (i < 3i); a_U_X_X(10i, array<u32, 2u>(u32(v_2), u32(v_3)), 20i)) {
+ for(var i : i32 = 0i; (i < 3i); a_U_X_X(10i, array<u32, 2u>(u32(v_2), u32(v_3)), 20i)) {
i = (i + 1i);
}
}
diff --git a/src/tint/lang/core/ir/var.cc b/src/tint/lang/core/ir/var.cc
index 32b1c83..11a9287 100644
--- a/src/tint/lang/core/ir/var.cc
+++ b/src/tint/lang/core/ir/var.cc
@@ -58,6 +58,10 @@
new_var->binding_point_ = binding_point_;
new_var->attributes_ = attributes_;
+ if (auto* init = Initializer()) {
+ new_var->SetInitializer(ctx.Clone(init));
+ }
+
auto name = ctx.ir.NameOf(this);
if (name.IsValid()) {
ctx.ir.SetName(new_var, name.Name());
diff --git a/src/tint/lang/core/ir/var_test.cc b/src/tint/lang/core/ir/var_test.cc
index f49c79b..3353672 100644
--- a/src/tint/lang/core/ir/var_test.cc
+++ b/src/tint/lang/core/ir/var_test.cc
@@ -87,7 +87,8 @@
EXPECT_EQ(new_v->Result(0)->Type(),
mod.Types().ptr(core::AddressSpace::kFunction, mod.Types().f32()));
- auto new_val = v->Initializer()->As<Constant>()->Value();
+ ASSERT_NE(nullptr, new_v->Initializer());
+ auto new_val = new_v->Initializer()->As<Constant>()->Value();
ASSERT_TRUE(new_val->Is<core::constant::Scalar<f32>>());
EXPECT_FLOAT_EQ(4_f, new_val->As<core::constant::Scalar<f32>>()->ValueAs<f32>());
diff --git a/src/tint/lang/glsl/writer/ast_printer/ast_printer.cc b/src/tint/lang/glsl/writer/ast_printer/ast_printer.cc
index ca5fa0c..dde83cd 100644
--- a/src/tint/lang/glsl/writer/ast_printer/ast_printer.cc
+++ b/src/tint/lang/glsl/writer/ast_printer/ast_printer.cc
@@ -187,6 +187,7 @@
polyfills.texture_sample_base_clamp_to_edge_2d_f32 = true;
polyfills.workgroup_uniform_load = true;
polyfills.dot_4x8_packed = true;
+ polyfills.pack_unpack_4x8 = true;
data.Add<ast::transform::BuiltinPolyfill::Config>(polyfills);
manager.Add<ast::transform::BuiltinPolyfill>(); // Must come before DirectVariableAccess
}
diff --git a/src/tint/lang/glsl/writer/ast_raise/combine_samplers.cc b/src/tint/lang/glsl/writer/ast_raise/combine_samplers.cc
index b056310..819241a 100644
--- a/src/tint/lang/glsl/writer/ast_raise/combine_samplers.cc
+++ b/src/tint/lang/glsl/writer/ast_raise/combine_samplers.cc
@@ -358,32 +358,17 @@
}
// Replace all function calls.
if (auto* callee = call->Target()->As<sem::Function>()) {
- for (auto pair : callee->TextureSamplerPairs()) {
- // Global pairs used by the callee do not require a function
- // parameter at the call site.
- if (IsGlobal(pair)) {
- continue;
- }
- // Texture-only pairs do not require a function parameter if they've been
- // replaced by a real pair.
- if (!pair.second && FindFullTextureSamplerPair(pair.first, callee)) {
- continue;
- }
-
- const sem::Variable* texture_var = pair.first;
- const sem::Variable* sampler_var = pair.second;
- if (auto* param = texture_var->As<sem::Parameter>()) {
+ auto make_arg = [&](const sem::Variable* texture_var,
+ const sem::Variable* sampler_var) {
+ if (auto* param = tint::As<sem::Parameter>(texture_var)) {
const sem::ValueExpression* texture = call->Arguments()[param->Index()];
texture_var =
texture->UnwrapLoad()->As<sem::VariableUser>()->Variable();
}
- if (sampler_var) {
- if (auto* param = sampler_var->As<sem::Parameter>()) {
- const sem::ValueExpression* sampler =
- call->Arguments()[param->Index()];
- sampler_var =
- sampler->UnwrapLoad()->As<sem::VariableUser>()->Variable();
- }
+ if (auto* param = tint::As<sem::Parameter>(sampler_var)) {
+ const sem::ValueExpression* sampler = call->Arguments()[param->Index()];
+ sampler_var =
+ sampler->UnwrapLoad()->As<sem::VariableUser>()->Variable();
}
sem::VariablePair new_pair(texture_var, sampler_var);
// If both texture and sampler are (now) global, pass that
@@ -394,8 +379,37 @@
? global_combined_texture_samplers_[new_pair]
: function_combined_texture_samplers_[call->Stmt()->Function()]
[new_pair];
- auto* arg = ctx.dst->Expr(var->name->symbol);
- args.Push(arg);
+ return ctx.dst->Expr(var->name->symbol);
+ };
+
+ for (auto pair : callee->TextureSamplerPairs()) {
+ if (!pair.second) {
+ continue;
+ }
+ // Global pairs used by the callee do not require a function
+ // parameter at the call site.
+ if (IsGlobal(pair)) {
+ continue;
+ }
+
+ args.Push(make_arg(pair.first, pair.second));
+ }
+ for (auto pair : callee->TextureSamplerPairs()) {
+ if (pair.second) {
+ continue;
+ }
+ // Global pairs used by the callee do not require a function
+ // parameter at the call site.
+ if (IsGlobal(pair)) {
+ continue;
+ }
+ // Texture-only pairs do not require a function parameter if they've been
+ // replaced by a real pair.
+ if (FindFullTextureSamplerPair(pair.first, callee)) {
+ continue;
+ }
+
+ args.Push(make_arg(pair.first, nullptr));
}
// Append all of the remaining non-texture and non-sampler
// parameters.
diff --git a/src/tint/lang/glsl/writer/ast_raise/combine_samplers_test.cc b/src/tint/lang/glsl/writer/ast_raise/combine_samplers_test.cc
index 33fd6bc..e611149 100644
--- a/src/tint/lang/glsl/writer/ast_raise/combine_samplers_test.cc
+++ b/src/tint/lang/glsl/writer/ast_raise/combine_samplers_test.cc
@@ -1008,14 +1008,14 @@
}
)";
auto* expect = R"(
-@group(0) @binding(0) @internal(disable_validation__binding_point_collision) var t_1 : texture_2d<f32>;
-
-fn f() -> u32 {
+fn f(tex_1 : texture_2d<f32>) -> u32 {
return 1u;
}
+@group(0) @binding(0) @internal(disable_validation__binding_point_collision) var t_1 : texture_2d<f32>;
+
fn main() {
- _ = f();
+ _ = f(t_1);
}
)";
@@ -1039,14 +1039,14 @@
}
)";
auto* expect = R"(
-@group(0) @binding(0) @internal(disable_validation__binding_point_collision) var s_1 : sampler;
-
-fn f() -> u32 {
+fn f(sampler1_1 : sampler) -> u32 {
return 1u;
}
+@group(0) @binding(0) @internal(disable_validation__binding_point_collision) var s_1 : sampler;
+
fn main() {
- _ = f();
+ _ = f(s_1);
}
)";
@@ -1072,16 +1072,16 @@
}
)";
auto* expect = R"(
+fn f(sampler1_1 : sampler, tex_1 : texture_2d<f32>) -> u32 {
+ return 1u;
+}
+
@group(0) @binding(0) @internal(disable_validation__binding_point_collision) var s_1 : sampler;
@group(0) @binding(0) @internal(disable_validation__binding_point_collision) var t_1 : texture_2d<f32>;
-fn f() -> u32 {
- return 1u;
-}
-
fn main() {
- _ = f();
+ _ = f(s_1, t_1);
}
)";
@@ -1109,18 +1109,18 @@
}
)";
auto* expect = R"(
-@group(0) @binding(0) @internal(disable_validation__binding_point_collision) var s_1 : sampler;
-
-@group(0) @binding(0) @internal(disable_validation__binding_point_collision) var t1_1 : texture_2d<f32>;
-
-fn f(tex3_1 : texture_2d_array<f32>) -> u32 {
+fn f(sampler1_1 : sampler, tex3_1 : texture_2d_array<f32>, tex1_1 : texture_2d<f32>) -> u32 {
return (1u + textureNumLayers(tex3_1));
}
+@group(0) @binding(0) @internal(disable_validation__binding_point_collision) var s_1 : sampler;
+
@group(0) @binding(0) @internal(disable_validation__binding_point_collision) var t2_1 : texture_2d_array<f32>;
+@group(0) @binding(0) @internal(disable_validation__binding_point_collision) var t1_1 : texture_2d<f32>;
+
fn main() {
- _ = f(t2_1);
+ _ = f(s_1, t2_1, t1_1);
}
)";
@@ -1170,5 +1170,49 @@
EXPECT_EQ(expect, str(got));
}
+TEST_F(CombineSamplersTest, UnusedTextureAndSamplerFunctionParameter_Nested) {
+ auto* src = R"(
+@group(0) @binding(0) var t : texture_2d<f32>;
+
+@group(0) @binding(1) var s : sampler;
+
+fn f_nested(tex: texture_2d<f32>, sampler1: sampler) -> u32 {
+ return 1u;
+}
+
+fn f(tex: texture_2d<f32>, sampler1: sampler) -> u32 {
+ return f_nested(tex, sampler1);
+}
+
+fn main() {
+ _ = f(t, s);
+}
+)";
+ auto* expect =
+ R"(
+fn f_nested(sampler1_1 : sampler, tex_1 : texture_2d<f32>) -> u32 {
+ return 1u;
+}
+
+fn f(sampler1_2 : sampler, tex_2 : texture_2d<f32>) -> u32 {
+ return f_nested(sampler1_2, tex_2);
+}
+
+@group(0) @binding(0) @internal(disable_validation__binding_point_collision) var s_1 : sampler;
+
+@group(0) @binding(0) @internal(disable_validation__binding_point_collision) var t_1 : texture_2d<f32>;
+
+fn main() {
+ _ = f(s_1, t_1);
+}
+)";
+
+ ast::transform::DataMap data;
+ data.Add<CombineSamplers::BindingInfo>(CombineSamplers::BindingMap(), BindingPoint());
+ auto got = Run<CombineSamplers>(src, data);
+
+ EXPECT_EQ(expect, str(got));
+}
+
} // namespace
} // namespace tint::glsl::writer
diff --git a/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc b/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc
index 0ffbb1d..6932c07 100644
--- a/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc
+++ b/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc
@@ -256,6 +256,8 @@
polyfills.texture_sample_base_clamp_to_edge_2d_f32 = true;
polyfills.workgroup_uniform_load = true;
polyfills.dot_4x8_packed = options.polyfill_dot_4x8_packed;
+ // TODO(tint:1497): Support HLSL SM6.6 pack/unpack intrinsics
+ polyfills.pack_unpack_4x8 = true;
data.Add<ast::transform::BuiltinPolyfill::Config>(polyfills);
manager.Add<ast::transform::BuiltinPolyfill>(); // Must come before DirectVariableAccess
}
diff --git a/src/tint/lang/hlsl/writer/ast_printer/function_test.cc b/src/tint/lang/hlsl/writer/ast_printer/function_test.cc
index 723d48c..6158a91 100644
--- a/src/tint/lang/hlsl/writer/ast_printer/function_test.cc
+++ b/src/tint/lang/hlsl/writer/ast_printer/function_test.cc
@@ -197,7 +197,7 @@
}
tint_symbol_2 frag_main(tint_symbol_1 tint_symbol) {
- const float inner_result = frag_main_inner(tint_symbol.coord);
+ const float inner_result = frag_main_inner(float4(tint_symbol.coord.xyz, (1.0f / tint_symbol.coord.w)));
tint_symbol_2 wrapper_result = (tint_symbol_2)0;
wrapper_result.value = inner_result;
return wrapper_result;
@@ -282,7 +282,7 @@
}
void frag_main(tint_symbol_2 tint_symbol_1) {
- const Interface tint_symbol_4 = {tint_symbol_1.pos, tint_symbol_1.col1, tint_symbol_1.col2};
+ const Interface tint_symbol_4 = {float4(tint_symbol_1.pos.xyz, (1.0f / tint_symbol_1.pos.w)), tint_symbol_1.col1, tint_symbol_1.col2};
frag_main_inner(tint_symbol_4);
return;
}
diff --git a/src/tint/lang/msl/writer/ast_printer/ast_printer.cc b/src/tint/lang/msl/writer/ast_printer/ast_printer.cc
index 75c793b..8787d09 100644
--- a/src/tint/lang/msl/writer/ast_printer/ast_printer.cc
+++ b/src/tint/lang/msl/writer/ast_printer/ast_printer.cc
@@ -188,6 +188,7 @@
polyfills.sign_int = true;
polyfills.texture_sample_base_clamp_to_edge_2d_f32 = true;
polyfills.workgroup_uniform_load = true;
+ polyfills.pack_unpack_4x8 = true;
data.Add<ast::transform::BuiltinPolyfill::Config>(polyfills);
manager.Add<ast::transform::BuiltinPolyfill>();
}
diff --git a/src/tint/lang/msl/writer/common/printer_support.cc b/src/tint/lang/msl/writer/common/printer_support.cc
index 037e54e..63a561c 100644
--- a/src/tint/lang/msl/writer/common/printer_support.cc
+++ b/src/tint/lang/msl/writer/common/printer_support.cc
@@ -97,6 +97,9 @@
attr = "sample_";
break;
case core::InterpolationSampling::kUndefined:
+ if (type != core::InterpolationType::kFlat) {
+ attr = "center_";
+ }
break;
}
switch (type) {
diff --git a/src/tint/lang/spirv/reader/BUILD.bazel b/src/tint/lang/spirv/reader/BUILD.bazel
index 8be26f4..f7662cf 100644
--- a/src/tint/lang/spirv/reader/BUILD.bazel
+++ b/src/tint/lang/spirv/reader/BUILD.bazel
@@ -73,6 +73,7 @@
] + select({
":tint_build_spv_reader": [
"//src/tint/lang/spirv/reader/ast_parser",
+ "//src/tint/lang/spirv/reader/parser",
],
"//conditions:default": [],
}),
diff --git a/src/tint/lang/spirv/reader/BUILD.cmake b/src/tint/lang/spirv/reader/BUILD.cmake
index bda6ba0..6e0d5ac 100644
--- a/src/tint/lang/spirv/reader/BUILD.cmake
+++ b/src/tint/lang/spirv/reader/BUILD.cmake
@@ -37,6 +37,7 @@
include(lang/spirv/reader/ast_lower/BUILD.cmake)
include(lang/spirv/reader/ast_parser/BUILD.cmake)
include(lang/spirv/reader/common/BUILD.cmake)
+include(lang/spirv/reader/parser/BUILD.cmake)
if(TINT_BUILD_SPV_READER)
################################################################################
@@ -80,6 +81,7 @@
if(TINT_BUILD_SPV_READER)
tint_target_add_dependencies(tint_lang_spirv_reader lib
tint_lang_spirv_reader_ast_parser
+ tint_lang_spirv_reader_parser
)
endif(TINT_BUILD_SPV_READER)
diff --git a/src/tint/lang/spirv/reader/BUILD.gn b/src/tint/lang/spirv/reader/BUILD.gn
index 5075295..82b4314 100644
--- a/src/tint/lang/spirv/reader/BUILD.gn
+++ b/src/tint/lang/spirv/reader/BUILD.gn
@@ -72,7 +72,10 @@
]
if (tint_build_spv_reader) {
- deps += [ "${tint_src_dir}/lang/spirv/reader/ast_parser" ]
+ deps += [
+ "${tint_src_dir}/lang/spirv/reader/ast_parser",
+ "${tint_src_dir}/lang/spirv/reader/parser",
+ ]
}
}
}
diff --git a/src/tint/lang/spirv/reader/parser/BUILD.bazel b/src/tint/lang/spirv/reader/parser/BUILD.bazel
new file mode 100644
index 0000000..1d0b9ee
--- /dev/null
+++ b/src/tint/lang/spirv/reader/parser/BUILD.bazel
@@ -0,0 +1,139 @@
+# 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:
+# tools/src/cmd/gen/build/BUILD.bazel.tmpl
+#
+# To regenerate run: './tools/run gen'
+#
+# Do not modify this file directly
+################################################################################
+
+load("//src/tint:flags.bzl", "COPTS")
+load("@bazel_skylib//lib:selects.bzl", "selects")
+cc_library(
+ name = "parser",
+ srcs = [
+ "parser.cc",
+ ],
+ hdrs = [
+ "parser.h",
+ ],
+ deps = [
+ "//src/tint/api/common",
+ "//src/tint/lang/core",
+ "//src/tint/lang/core/constant",
+ "//src/tint/lang/core/intrinsic",
+ "//src/tint/lang/core/ir",
+ "//src/tint/lang/core/type",
+ "//src/tint/utils/containers",
+ "//src/tint/utils/diagnostic",
+ "//src/tint/utils/ice",
+ "//src/tint/utils/id",
+ "//src/tint/utils/macros",
+ "//src/tint/utils/math",
+ "//src/tint/utils/memory",
+ "//src/tint/utils/reflection",
+ "//src/tint/utils/result",
+ "//src/tint/utils/rtti",
+ "//src/tint/utils/symbol",
+ "//src/tint/utils/text",
+ "//src/tint/utils/traits",
+ ] + select({
+ ":tint_build_spv_reader_or_tint_build_spv_writer": [
+ "//src/tint/lang/spirv/validate",
+ "@spirv_tools//:spirv_tools_opt",
+ "@spirv_tools",
+ ],
+ "//conditions:default": [],
+ }),
+ copts = COPTS,
+ visibility = ["//visibility:public"],
+)
+cc_library(
+ name = "test",
+ alwayslink = True,
+ srcs = [
+ "constant_test.cc",
+ "function_test.cc",
+ "helper_test.h",
+ "var_test.cc",
+ ],
+ deps = [
+ "//src/tint/api/common",
+ "//src/tint/lang/core",
+ "//src/tint/lang/core/constant",
+ "//src/tint/lang/core/ir",
+ "//src/tint/lang/core/type",
+ "//src/tint/utils/containers",
+ "//src/tint/utils/diagnostic",
+ "//src/tint/utils/ice",
+ "//src/tint/utils/id",
+ "//src/tint/utils/macros",
+ "//src/tint/utils/math",
+ "//src/tint/utils/memory",
+ "//src/tint/utils/reflection",
+ "//src/tint/utils/result",
+ "//src/tint/utils/rtti",
+ "//src/tint/utils/symbol",
+ "//src/tint/utils/text",
+ "//src/tint/utils/traits",
+ "@gtest",
+ ] + select({
+ ":tint_build_spv_reader": [
+ "//src/tint/lang/spirv/reader/parser",
+ ],
+ "//conditions:default": [],
+ }) + select({
+ ":tint_build_spv_reader_or_tint_build_spv_writer": [
+ "@spirv_tools",
+ ],
+ "//conditions:default": [],
+ }),
+ copts = COPTS,
+ visibility = ["//visibility:public"],
+)
+
+alias(
+ name = "tint_build_spv_reader",
+ actual = "//src/tint:tint_build_spv_reader_true",
+)
+
+alias(
+ name = "tint_build_spv_writer",
+ actual = "//src/tint:tint_build_spv_writer_true",
+)
+
+selects.config_setting_group(
+ name = "tint_build_spv_reader_or_tint_build_spv_writer",
+ match_any = [
+ "tint_build_spv_reader",
+ "tint_build_spv_writer",
+ ],
+)
+
diff --git a/src/tint/lang/spirv/reader/parser/BUILD.cfg b/src/tint/lang/spirv/reader/parser/BUILD.cfg
new file mode 100644
index 0000000..a460fd5
--- /dev/null
+++ b/src/tint/lang/spirv/reader/parser/BUILD.cfg
@@ -0,0 +1,3 @@
+{
+ "condition": "tint_build_spv_reader"
+}
diff --git a/src/tint/lang/spirv/reader/parser/BUILD.cmake b/src/tint/lang/spirv/reader/parser/BUILD.cmake
new file mode 100644
index 0000000..524b09d
--- /dev/null
+++ b/src/tint/lang/spirv/reader/parser/BUILD.cmake
@@ -0,0 +1,131 @@
+# 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:
+# tools/src/cmd/gen/build/BUILD.cmake.tmpl
+#
+# To regenerate run: './tools/run gen'
+#
+# Do not modify this file directly
+################################################################################
+
+if(TINT_BUILD_SPV_READER)
+################################################################################
+# Target: tint_lang_spirv_reader_parser
+# Kind: lib
+# Condition: TINT_BUILD_SPV_READER
+################################################################################
+tint_add_target(tint_lang_spirv_reader_parser lib
+ lang/spirv/reader/parser/parser.cc
+ lang/spirv/reader/parser/parser.h
+)
+
+tint_target_add_dependencies(tint_lang_spirv_reader_parser lib
+ tint_api_common
+ tint_lang_core
+ tint_lang_core_constant
+ tint_lang_core_intrinsic
+ tint_lang_core_ir
+ tint_lang_core_type
+ tint_utils_containers
+ tint_utils_diagnostic
+ tint_utils_ice
+ tint_utils_id
+ tint_utils_macros
+ tint_utils_math
+ tint_utils_memory
+ tint_utils_reflection
+ tint_utils_result
+ tint_utils_rtti
+ tint_utils_symbol
+ tint_utils_text
+ tint_utils_traits
+)
+
+if(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER)
+ tint_target_add_dependencies(tint_lang_spirv_reader_parser lib
+ tint_lang_spirv_validate
+ )
+ tint_target_add_external_dependencies(tint_lang_spirv_reader_parser lib
+ "spirv-opt-internal"
+ "spirv-tools"
+ )
+endif(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER)
+
+endif(TINT_BUILD_SPV_READER)
+if(TINT_BUILD_SPV_READER)
+################################################################################
+# Target: tint_lang_spirv_reader_parser_test
+# Kind: test
+# Condition: TINT_BUILD_SPV_READER
+################################################################################
+tint_add_target(tint_lang_spirv_reader_parser_test test
+ lang/spirv/reader/parser/constant_test.cc
+ lang/spirv/reader/parser/function_test.cc
+ lang/spirv/reader/parser/helper_test.h
+ lang/spirv/reader/parser/var_test.cc
+)
+
+tint_target_add_dependencies(tint_lang_spirv_reader_parser_test test
+ tint_api_common
+ tint_lang_core
+ tint_lang_core_constant
+ tint_lang_core_ir
+ tint_lang_core_type
+ tint_utils_containers
+ tint_utils_diagnostic
+ tint_utils_ice
+ tint_utils_id
+ tint_utils_macros
+ tint_utils_math
+ tint_utils_memory
+ tint_utils_reflection
+ tint_utils_result
+ tint_utils_rtti
+ tint_utils_symbol
+ tint_utils_text
+ tint_utils_traits
+)
+
+tint_target_add_external_dependencies(tint_lang_spirv_reader_parser_test test
+ "gtest"
+)
+
+if(TINT_BUILD_SPV_READER)
+ tint_target_add_dependencies(tint_lang_spirv_reader_parser_test test
+ tint_lang_spirv_reader_parser
+ )
+endif(TINT_BUILD_SPV_READER)
+
+if(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER)
+ tint_target_add_external_dependencies(tint_lang_spirv_reader_parser_test test
+ "spirv-tools"
+ )
+endif(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER)
+
+endif(TINT_BUILD_SPV_READER)
\ No newline at end of file
diff --git a/src/tint/lang/spirv/reader/parser/BUILD.gn b/src/tint/lang/spirv/reader/parser/BUILD.gn
new file mode 100644
index 0000000..fa9f30c
--- /dev/null
+++ b/src/tint/lang/spirv/reader/parser/BUILD.gn
@@ -0,0 +1,128 @@
+# 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:
+# tools/src/cmd/gen/build/BUILD.gn.tmpl
+#
+# To regenerate run: './tools/run gen'
+#
+# Do not modify this file directly
+################################################################################
+
+import("../../../../../../scripts/tint_overrides_with_defaults.gni")
+
+import("${tint_src_dir}/tint.gni")
+
+if (tint_build_unittests || tint_build_benchmarks) {
+ import("//testing/test.gni")
+}
+if (tint_build_spv_reader) {
+ libtint_source_set("parser") {
+ sources = [
+ "parser.cc",
+ "parser.h",
+ ]
+ deps = [
+ "${tint_src_dir}/api/common",
+ "${tint_src_dir}/lang/core",
+ "${tint_src_dir}/lang/core/constant",
+ "${tint_src_dir}/lang/core/intrinsic",
+ "${tint_src_dir}/lang/core/ir",
+ "${tint_src_dir}/lang/core/type",
+ "${tint_src_dir}/utils/containers",
+ "${tint_src_dir}/utils/diagnostic",
+ "${tint_src_dir}/utils/ice",
+ "${tint_src_dir}/utils/id",
+ "${tint_src_dir}/utils/macros",
+ "${tint_src_dir}/utils/math",
+ "${tint_src_dir}/utils/memory",
+ "${tint_src_dir}/utils/reflection",
+ "${tint_src_dir}/utils/result",
+ "${tint_src_dir}/utils/rtti",
+ "${tint_src_dir}/utils/symbol",
+ "${tint_src_dir}/utils/text",
+ "${tint_src_dir}/utils/traits",
+ ]
+
+ if (tint_build_spv_reader || tint_build_spv_writer) {
+ deps += [
+ "${tint_spirv_tools_dir}:spvtools",
+ "${tint_spirv_tools_dir}:spvtools_headers",
+ "${tint_spirv_tools_dir}:spvtools_opt",
+ "${tint_spirv_tools_dir}:spvtools_val",
+ "${tint_spirv_tools_dir}:spvtools_val",
+ "${tint_src_dir}/lang/spirv/validate",
+ ]
+ }
+ public_configs = [ "${tint_spirv_tools_dir}/:spvtools_internal_config" ]
+ }
+}
+if (tint_build_unittests) {
+ if (tint_build_spv_reader) {
+ tint_unittests_source_set("unittests") {
+ sources = [
+ "constant_test.cc",
+ "function_test.cc",
+ "helper_test.h",
+ "var_test.cc",
+ ]
+ deps = [
+ "${tint_src_dir}:gmock_and_gtest",
+ "${tint_src_dir}/api/common",
+ "${tint_src_dir}/lang/core",
+ "${tint_src_dir}/lang/core/constant",
+ "${tint_src_dir}/lang/core/ir",
+ "${tint_src_dir}/lang/core/type",
+ "${tint_src_dir}/utils/containers",
+ "${tint_src_dir}/utils/diagnostic",
+ "${tint_src_dir}/utils/ice",
+ "${tint_src_dir}/utils/id",
+ "${tint_src_dir}/utils/macros",
+ "${tint_src_dir}/utils/math",
+ "${tint_src_dir}/utils/memory",
+ "${tint_src_dir}/utils/reflection",
+ "${tint_src_dir}/utils/result",
+ "${tint_src_dir}/utils/rtti",
+ "${tint_src_dir}/utils/symbol",
+ "${tint_src_dir}/utils/text",
+ "${tint_src_dir}/utils/traits",
+ ]
+
+ if (tint_build_spv_reader) {
+ deps += [ "${tint_src_dir}/lang/spirv/reader/parser" ]
+ }
+
+ if (tint_build_spv_reader || tint_build_spv_writer) {
+ deps += [
+ "${tint_spirv_tools_dir}:spvtools_headers",
+ "${tint_spirv_tools_dir}:spvtools_val",
+ ]
+ }
+ }
+ }
+}
diff --git a/src/tint/lang/spirv/reader/parser/constant_test.cc b/src/tint/lang/spirv/reader/parser/constant_test.cc
new file mode 100644
index 0000000..d8d8d57
--- /dev/null
+++ b/src/tint/lang/spirv/reader/parser/constant_test.cc
@@ -0,0 +1,290 @@
+// 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.
+
+#include "src/tint/lang/spirv/reader/parser/helper_test.h"
+
+namespace tint::spirv::reader {
+namespace {
+
+TEST_F(SpirvParserTest, Constant_Bool) {
+ EXPECT_IR(R"(
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint GLCompute %main "main"
+ OpExecutionMode %main LocalSize 1 1 1
+ %void = OpTypeVoid
+ %bool = OpTypeBool
+ %true = OpConstantTrue %bool
+ %false = OpConstantFalse %bool
+ %null = OpConstantNull %bool
+ %void_fn = OpTypeFunction %void
+ %fn_type = OpTypeFunction %void %bool
+
+ %main = OpFunction %void None %void_fn
+ %main_start = OpLabel
+ OpReturn
+ OpFunctionEnd
+
+ %foo = OpFunction %void None %fn_type
+ %param = OpFunctionParameter %bool
+ %foo_start = OpLabel
+ OpReturn
+ OpFunctionEnd
+
+ %bar = OpFunction %void None %void_fn
+ %bar_start = OpLabel
+ %1 = OpFunctionCall %void %foo %true
+ %2 = OpFunctionCall %void %foo %false
+ %3 = OpFunctionCall %void %foo %null
+ OpReturn
+ OpFunctionEnd
+)",
+ R"(
+%4 = func():void -> %b3 {
+ %b3 = block {
+ %5:void = call %2, true
+ %6:void = call %2, false
+ %7:void = call %2, false
+ ret
+ }
+}
+)");
+}
+
+TEST_F(SpirvParserTest, Constant_I32) {
+ EXPECT_IR(R"(
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint GLCompute %main "main"
+ OpExecutionMode %main LocalSize 1 1 1
+ %void = OpTypeVoid
+ %i32 = OpTypeInt 32 1
+ %i32_0 = OpConstant %i32 0
+ %i32_1 = OpConstant %i32 1
+ %i32_n1 = OpConstant %i32 -1
+ %i32_max = OpConstant %i32 2147483647
+ %i32_min = OpConstant %i32 -2147483648
+ %i32_null = OpConstantNull %i32
+ %void_fn = OpTypeFunction %void
+ %fn_type = OpTypeFunction %void %i32
+
+ %main = OpFunction %void None %void_fn
+ %main_start = OpLabel
+ OpReturn
+ OpFunctionEnd
+
+ %foo = OpFunction %void None %fn_type
+ %param = OpFunctionParameter %i32
+ %foo_start = OpLabel
+ OpReturn
+ OpFunctionEnd
+
+ %bar = OpFunction %void None %void_fn
+ %bar_start = OpLabel
+ %1 = OpFunctionCall %void %foo %i32_0
+ %2 = OpFunctionCall %void %foo %i32_1
+ %3 = OpFunctionCall %void %foo %i32_n1
+ %4 = OpFunctionCall %void %foo %i32_max
+ %5 = OpFunctionCall %void %foo %i32_min
+ %6 = OpFunctionCall %void %foo %i32_null
+ OpReturn
+ OpFunctionEnd
+)",
+ R"(
+%4 = func():void -> %b3 {
+ %b3 = block {
+ %5:void = call %2, 0i
+ %6:void = call %2, 1i
+ %7:void = call %2, -1i
+ %8:void = call %2, 2147483647i
+ %9:void = call %2, -2147483648i
+ %10:void = call %2, 0i
+ ret
+ }
+}
+)");
+}
+
+TEST_F(SpirvParserTest, Constant_U32) {
+ EXPECT_IR(R"(
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint GLCompute %main "main"
+ OpExecutionMode %main LocalSize 1 1 1
+ %void = OpTypeVoid
+ %u32 = OpTypeInt 32 0
+ %u32_0 = OpConstant %u32 0
+ %u32_1 = OpConstant %u32 1
+ %u32_max = OpConstant %u32 4294967295
+ %u32_null = OpConstantNull %u32
+ %void_fn = OpTypeFunction %void
+ %fn_type = OpTypeFunction %void %u32
+
+ %main = OpFunction %void None %void_fn
+ %main_start = OpLabel
+ OpReturn
+ OpFunctionEnd
+
+ %foo = OpFunction %void None %fn_type
+ %param = OpFunctionParameter %u32
+ %foo_start = OpLabel
+ OpReturn
+ OpFunctionEnd
+
+ %bar = OpFunction %void None %void_fn
+ %bar_start = OpLabel
+ %1 = OpFunctionCall %void %foo %u32_0
+ %2 = OpFunctionCall %void %foo %u32_1
+ %3 = OpFunctionCall %void %foo %u32_max
+ %4 = OpFunctionCall %void %foo %u32_null
+ OpReturn
+ OpFunctionEnd
+)",
+ R"(
+%4 = func():void -> %b3 {
+ %b3 = block {
+ %5:void = call %2, 0u
+ %6:void = call %2, 1u
+ %7:void = call %2, 4294967295u
+ %8:void = call %2, 0u
+ ret
+ }
+}
+)");
+}
+
+TEST_F(SpirvParserTest, Constant_F16) {
+ EXPECT_IR(R"(
+ OpCapability Shader
+ OpCapability Float16
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint GLCompute %main "main"
+ OpExecutionMode %main LocalSize 1 1 1
+ %void = OpTypeVoid
+ %f16 = OpTypeFloat 16
+ %f16_0 = OpConstant %f16 0
+ %f16_1 = OpConstant %f16 1
+ %f16_max = OpConstant %f16 0x1.ffcp+15
+ %f16_min = OpConstant %f16 -0x1.ffcp+15
+ %f16_denorm = OpConstant %f16 0x0.004p-14
+ %f16_null = OpConstantNull %f16
+ %void_fn = OpTypeFunction %void
+ %fn_type = OpTypeFunction %void %f16
+
+ %main = OpFunction %void None %void_fn
+ %main_start = OpLabel
+ OpReturn
+ OpFunctionEnd
+
+ %foo = OpFunction %void None %fn_type
+ %param = OpFunctionParameter %f16
+ %foo_start = OpLabel
+ OpReturn
+ OpFunctionEnd
+
+ %bar = OpFunction %void None %void_fn
+ %bar_start = OpLabel
+ %1 = OpFunctionCall %void %foo %f16_0
+ %2 = OpFunctionCall %void %foo %f16_1
+ %3 = OpFunctionCall %void %foo %f16_max
+ %4 = OpFunctionCall %void %foo %f16_min
+ %5 = OpFunctionCall %void %foo %f16_denorm
+ %6 = OpFunctionCall %void %foo %f16_null
+ OpReturn
+ OpFunctionEnd
+)",
+ R"(
+%4 = func():void -> %b3 {
+ %b3 = block {
+ %5:void = call %2, 0.0h
+ %6:void = call %2, 1.0h
+ %7:void = call %2, 65504.0h
+ %8:void = call %2, -65504.0h
+ %9:void = call %2, 0.00000005960464477539h
+ %10:void = call %2, 0.0h
+ ret
+ }
+}
+)");
+}
+
+TEST_F(SpirvParserTest, Constant_F32) {
+ EXPECT_IR(R"(
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint GLCompute %main "main"
+ OpExecutionMode %main LocalSize 1 1 1
+ %void = OpTypeVoid
+ %f32 = OpTypeFloat 32
+ %f32_0 = OpConstant %f32 0
+ %f32_1 = OpConstant %f32 1
+ %f32_max = OpConstant %f32 0x1.fffffep+127
+ %f32_min = OpConstant %f32 -0x1.fffffep+127
+ %f32_denorm = OpConstant %f32 0x0.000002p-126
+ %f32_null = OpConstantNull %f32
+ %void_fn = OpTypeFunction %void
+ %fn_type = OpTypeFunction %void %f32
+
+ %main = OpFunction %void None %void_fn
+ %main_start = OpLabel
+ OpReturn
+ OpFunctionEnd
+
+ %foo = OpFunction %void None %fn_type
+ %param = OpFunctionParameter %f32
+ %foo_start = OpLabel
+ OpReturn
+ OpFunctionEnd
+
+ %bar = OpFunction %void None %void_fn
+ %bar_start = OpLabel
+ %1 = OpFunctionCall %void %foo %f32_0
+ %2 = OpFunctionCall %void %foo %f32_1
+ %3 = OpFunctionCall %void %foo %f32_max
+ %4 = OpFunctionCall %void %foo %f32_min
+ %5 = OpFunctionCall %void %foo %f32_denorm
+ %6 = OpFunctionCall %void %foo %f32_null
+ OpReturn
+ OpFunctionEnd
+)",
+ R"(
+%4 = func():void -> %b3 {
+ %b3 = block {
+ %5:void = call %2, 0.0f
+ %6:void = call %2, 1.0f
+ %7:void = call %2, 340282346638528859811704183484516925440.0f
+ %8:void = call %2, -340282346638528859811704183484516925440.0f
+ %9:void = call %2, 1.40129846e-45f
+ %10:void = call %2, 0.0f
+ ret
+ }
+}
+)");
+}
+
+} // namespace
+} // namespace tint::spirv::reader
diff --git a/src/tint/lang/spirv/reader/parser/function_test.cc b/src/tint/lang/spirv/reader/parser/function_test.cc
new file mode 100644
index 0000000..b9ec90a
--- /dev/null
+++ b/src/tint/lang/spirv/reader/parser/function_test.cc
@@ -0,0 +1,441 @@
+// 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.
+
+#include "src/tint/lang/spirv/reader/parser/helper_test.h"
+
+namespace tint::spirv::reader {
+namespace {
+
+TEST_F(SpirvParserTest, ComputeShader) {
+ EXPECT_IR(R"(
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint GLCompute %main "main"
+ OpExecutionMode %main LocalSize 1 1 1
+ %void = OpTypeVoid
+ %ep_type = OpTypeFunction %void
+ %main = OpFunction %void None %ep_type
+ %main_start = OpLabel
+ OpReturn
+ OpFunctionEnd
+)",
+ R"(
+%main = @compute @workgroup_size(1, 1, 1) func():void -> %b1 {
+ %b1 = block {
+ ret
+ }
+}
+)");
+}
+
+TEST_F(SpirvParserTest, LocalSize) {
+ EXPECT_IR(R"(
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint GLCompute %main "main"
+ OpExecutionMode %main LocalSize 3 4 5
+ %void = OpTypeVoid
+ %ep_type = OpTypeFunction %void
+ %main = OpFunction %void None %ep_type
+ %main_start = OpLabel
+ OpReturn
+ OpFunctionEnd
+)",
+ R"(
+%main = @compute @workgroup_size(3, 4, 5) func():void -> %b1 {
+ %b1 = block {
+ ret
+ }
+}
+)");
+}
+
+TEST_F(SpirvParserTest, FragmentShader) {
+ EXPECT_IR(R"(
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Fragment %main "main"
+ OpExecutionMode %main OriginUpperLeft
+ %void = OpTypeVoid
+ %ep_type = OpTypeFunction %void
+ %main = OpFunction %void None %ep_type
+ %main_start = OpLabel
+ OpReturn
+ OpFunctionEnd
+)",
+ R"(
+%main = @fragment func():void -> %b1 {
+ %b1 = block {
+ ret
+ }
+}
+)");
+}
+
+TEST_F(SpirvParserTest, VertexShader) {
+ EXPECT_IR(R"(
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %main "main"
+ %void = OpTypeVoid
+ %ep_type = OpTypeFunction %void
+ %main = OpFunction %void None %ep_type
+ %main_start = OpLabel
+ OpReturn
+ OpFunctionEnd
+)",
+ R"(
+%main = @vertex func():void -> %b1 {
+ %b1 = block {
+ ret
+ }
+}
+)");
+}
+
+TEST_F(SpirvParserTest, MultipleEntryPoints) {
+ EXPECT_IR(R"(
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint GLCompute %foo "foo"
+ OpEntryPoint GLCompute %bar "bar"
+ OpExecutionMode %foo LocalSize 3 4 5
+ OpExecutionMode %bar LocalSize 6 7 8
+ %void = OpTypeVoid
+ %ep_type = OpTypeFunction %void
+
+ %foo = OpFunction %void None %ep_type
+ %foo_start = OpLabel
+ OpReturn
+ OpFunctionEnd
+
+ %bar = OpFunction %void None %ep_type
+ %bar_start = OpLabel
+ OpReturn
+ OpFunctionEnd
+)",
+ R"(
+%foo = @compute @workgroup_size(3, 4, 5) func():void -> %b1 {
+ %b1 = block {
+ ret
+ }
+}
+%bar = @compute @workgroup_size(6, 7, 8) func():void -> %b2 {
+ %b2 = block {
+ ret
+ }
+}
+)");
+}
+
+TEST_F(SpirvParserTest, FunctionCall) {
+ EXPECT_IR(R"(
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint GLCompute %main "main"
+ OpExecutionMode %main LocalSize 1 1 1
+ %void = OpTypeVoid
+ %func_type = OpTypeFunction %void
+
+ %foo = OpFunction %void None %func_type
+ %foo_start = OpLabel
+ OpReturn
+ OpFunctionEnd
+
+ %main = OpFunction %void None %func_type
+ %main_start = OpLabel
+ %1 = OpFunctionCall %void %foo
+ OpReturn
+ OpFunctionEnd
+)",
+ R"(
+%1 = func():void -> %b1 {
+ %b1 = block {
+ ret
+ }
+}
+%main = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
+ %b2 = block {
+ %3:void = call %1
+ ret
+ }
+}
+)");
+}
+
+TEST_F(SpirvParserTest, FunctionCall_ForwardReference) {
+ EXPECT_IR(R"(
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint GLCompute %main "main"
+ OpExecutionMode %main LocalSize 1 1 1
+ %void = OpTypeVoid
+ %func_type = OpTypeFunction %void
+
+ %main = OpFunction %void None %func_type
+ %main_start = OpLabel
+ %1 = OpFunctionCall %void %foo
+ OpReturn
+ OpFunctionEnd
+
+ %foo = OpFunction %void None %func_type
+ %foo_start = OpLabel
+ OpReturn
+ OpFunctionEnd
+)",
+ R"(
+%main = @compute @workgroup_size(1, 1, 1) func():void -> %b1 {
+ %b1 = block {
+ %2:void = call %3
+ ret
+ }
+}
+%3 = func():void -> %b2 {
+ %b2 = block {
+ ret
+ }
+}
+)");
+}
+
+TEST_F(SpirvParserTest, FunctionCall_WithParam) {
+ EXPECT_IR(R"(
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint GLCompute %main "main"
+ OpExecutionMode %main LocalSize 1 1 1
+ %void = OpTypeVoid
+ %bool = OpTypeBool
+ %true = OpConstantTrue %bool
+ %false = OpConstantFalse %bool
+ %foo_type = OpTypeFunction %void %bool
+ %main_type = OpTypeFunction %void
+
+ %foo = OpFunction %void None %foo_type
+ %param = OpFunctionParameter %bool
+ %foo_start = OpLabel
+ OpReturn
+ OpFunctionEnd
+
+ %main = OpFunction %void None %main_type
+ %main_start = OpLabel
+ %1 = OpFunctionCall %void %foo %true
+ %2 = OpFunctionCall %void %foo %false
+ OpReturn
+ OpFunctionEnd
+)",
+ R"(
+%1 = func(%2:bool):void -> %b1 {
+ %b1 = block {
+ ret
+ }
+}
+%main = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
+ %b2 = block {
+ %4:void = call %1, true
+ %5:void = call %1, false
+ ret
+ }
+}
+)");
+}
+
+TEST_F(SpirvParserTest, FunctionCall_Chained_WithParam) {
+ EXPECT_IR(R"(
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint GLCompute %main "main"
+ OpExecutionMode %main LocalSize 1 1 1
+ %void = OpTypeVoid
+ %bool = OpTypeBool
+ %true = OpConstantTrue %bool
+ %false = OpConstantFalse %bool
+ %foo_type = OpTypeFunction %void %bool
+ %main_type = OpTypeFunction %void
+
+ %bar = OpFunction %void None %foo_type
+ %bar_param = OpFunctionParameter %bool
+ %bar_start = OpLabel
+ OpReturn
+ OpFunctionEnd
+
+ %foo = OpFunction %void None %foo_type
+ %foo_param = OpFunctionParameter %bool
+ %foo_start = OpLabel
+ %3 = OpFunctionCall %void %bar %foo_param
+ OpReturn
+ OpFunctionEnd
+
+ %main = OpFunction %void None %main_type
+ %main_start = OpLabel
+ %1 = OpFunctionCall %void %foo %true
+ %2 = OpFunctionCall %void %foo %false
+ OpReturn
+ OpFunctionEnd
+)",
+ R"(
+%1 = func(%2:bool):void -> %b1 {
+ %b1 = block {
+ ret
+ }
+}
+%3 = func(%4:bool):void -> %b2 {
+ %b2 = block {
+ %5:void = call %1, %4
+ ret
+ }
+}
+%main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
+ %b3 = block {
+ %7:void = call %3, true
+ %8:void = call %3, false
+ ret
+ }
+}
+)");
+}
+
+TEST_F(SpirvParserTest, FunctionCall_WithMultipleParams) {
+ EXPECT_IR(R"(
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint GLCompute %main "main"
+ OpExecutionMode %main LocalSize 1 1 1
+ %void = OpTypeVoid
+ %bool = OpTypeBool
+ %true = OpConstantTrue %bool
+ %false = OpConstantFalse %bool
+ %foo_type = OpTypeFunction %void %bool %bool
+ %main_type = OpTypeFunction %void
+
+ %foo = OpFunction %void None %foo_type
+ %param_1 = OpFunctionParameter %bool
+ %param_2 = OpFunctionParameter %bool
+ %foo_start = OpLabel
+ OpReturn
+ OpFunctionEnd
+
+ %main = OpFunction %void None %main_type
+ %main_start = OpLabel
+ %1 = OpFunctionCall %void %foo %true %false
+ OpReturn
+ OpFunctionEnd
+)",
+ R"(
+%1 = func(%2:bool, %3:bool):void -> %b1 {
+ %b1 = block {
+ ret
+ }
+}
+%main = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
+ %b2 = block {
+ %5:void = call %1, true, false
+ ret
+ }
+}
+)");
+}
+
+TEST_F(SpirvParserTest, FunctionCall_ReturnValue) {
+ EXPECT_IR(R"(
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint GLCompute %main "main"
+ OpExecutionMode %main LocalSize 1 1 1
+ %void = OpTypeVoid
+ %bool = OpTypeBool
+ %true = OpConstantTrue %bool
+ %foo_type = OpTypeFunction %bool
+ %main_type = OpTypeFunction %void
+
+ %foo = OpFunction %bool None %foo_type
+ %foo_start = OpLabel
+ OpReturnValue %true
+ OpFunctionEnd
+
+ %main = OpFunction %void None %main_type
+ %main_start = OpLabel
+ %1 = OpFunctionCall %bool %foo
+ OpReturn
+ OpFunctionEnd
+)",
+ R"(
+%1 = func():bool -> %b1 {
+ %b1 = block {
+ ret true
+ }
+}
+%main = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
+ %b2 = block {
+ %3:bool = call %1
+ ret
+ }
+}
+)");
+}
+
+TEST_F(SpirvParserTest, FunctionCall_ParamAndReturnValue) {
+ EXPECT_IR(R"(
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint GLCompute %main "main"
+ OpExecutionMode %main LocalSize 1 1 1
+ %void = OpTypeVoid
+ %bool = OpTypeBool
+ %true = OpConstantTrue %bool
+ %foo_type = OpTypeFunction %bool %bool
+ %main_type = OpTypeFunction %void
+
+ %foo = OpFunction %bool None %foo_type
+ %param = OpFunctionParameter %bool
+ %foo_start = OpLabel
+ OpReturnValue %param
+ OpFunctionEnd
+
+ %main = OpFunction %void None %main_type
+ %main_start = OpLabel
+ %1 = OpFunctionCall %bool %foo %true
+ OpReturn
+ OpFunctionEnd
+)",
+ R"(
+%1 = func(%2:bool):bool -> %b1 {
+ %b1 = block {
+ ret %2
+ }
+}
+%main = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
+ %b2 = block {
+ %4:bool = call %1, true
+ ret
+ }
+}
+)");
+}
+
+} // namespace
+} // namespace tint::spirv::reader
diff --git a/src/tint/lang/spirv/reader/parser/helper_test.h b/src/tint/lang/spirv/reader/parser/helper_test.h
new file mode 100644
index 0000000..7b2b547
--- /dev/null
+++ b/src/tint/lang/spirv/reader/parser/helper_test.h
@@ -0,0 +1,98 @@
+// 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.
+
+#ifndef SRC_TINT_LANG_SPIRV_READER_PARSER_HELPER_TEST_H_
+#define SRC_TINT_LANG_SPIRV_READER_PARSER_HELPER_TEST_H_
+
+#include <string>
+#include <vector>
+
+#include "gmock/gmock.h"
+#include "gtest/gtest.h"
+#include "spirv-tools/libspirv.hpp"
+#include "src/tint/lang/core/ir/disassembler.h"
+#include "src/tint/lang/core/ir/module.h"
+#include "src/tint/lang/core/ir/validator.h"
+#include "src/tint/lang/spirv/reader/parser/parser.h"
+
+namespace tint::spirv::reader {
+
+// Helper macro to run the parser and compare the disassembled IR to a string.
+// Automatically prefixes the IR disassembly with a newline to improve formatting of tests.
+#define EXPECT_IR(asm, ir) \
+ do { \
+ auto got = "\n" + Run(asm); \
+ ASSERT_THAT(got, testing::HasSubstr(ir)) << got; \
+ } while (false)
+
+/// Base helper class for testing the SPIR-V parser implementation.
+template <typename BASE>
+class SpirvParserTestHelperBase : public BASE {
+ protected:
+ /// Run the parser on a SPIR-V module and return the Tint IR or an error string.
+ /// @param spirv_asm the SPIR-V assembly to parse
+ /// @returns the disassembled Tint IR
+ std::string Run(std::string spirv_asm) {
+ // Assemble the SPIR-V input.
+ StringStream err;
+ std::vector<uint32_t> binary;
+ spvtools::SpirvTools tools(SPV_ENV_UNIVERSAL_1_0);
+ tools.SetMessageConsumer(
+ [&err](spv_message_level_t, const char*, const spv_position_t& pos, const char* msg) {
+ err << "SPIR-V assembly failed:" << pos.line << ":" << pos.column << ": " << msg;
+ });
+ auto assembled =
+ tools.Assemble(spirv_asm, &binary, SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
+ if (!assembled) {
+ return err.str();
+ }
+
+ // Parse the SPIR-V to produce an IR module.
+ auto parsed = Parse(Slice(binary.data(), binary.size()));
+ if (!parsed) {
+ return parsed.Failure().reason.str();
+ }
+
+ // Validate the IR module.
+ auto validated = core::ir::Validate(parsed.Get());
+ if (!validated) {
+ return validated.Failure().reason.str();
+ }
+
+ // Return the disassembled IR module.
+ return core::ir::Disassemble(parsed.Get());
+ }
+};
+
+using SpirvParserTest = SpirvParserTestHelperBase<testing::Test>;
+
+template <typename T>
+using SpirvParserTestWithParam = SpirvParserTestHelperBase<testing::TestWithParam<T>>;
+
+} // namespace tint::spirv::reader
+
+#endif // SRC_TINT_LANG_SPIRV_READER_PARSER_HELPER_TEST_H_
diff --git a/src/tint/lang/spirv/reader/parser/parser.cc b/src/tint/lang/spirv/reader/parser/parser.cc
new file mode 100644
index 0000000..20cc942
--- /dev/null
+++ b/src/tint/lang/spirv/reader/parser/parser.cc
@@ -0,0 +1,351 @@
+// 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.
+
+#include "src/tint/lang/spirv/reader/parser/parser.h"
+
+#include <memory>
+#include <utility>
+#include <vector>
+
+TINT_BEGIN_DISABLE_WARNING(NEWLINE_EOF);
+TINT_BEGIN_DISABLE_WARNING(OLD_STYLE_CAST);
+TINT_BEGIN_DISABLE_WARNING(SIGN_CONVERSION);
+TINT_BEGIN_DISABLE_WARNING(WEAK_VTABLES);
+#include "source/opt/build_module.h"
+TINT_END_DISABLE_WARNING(WEAK_VTABLES);
+TINT_END_DISABLE_WARNING(SIGN_CONVERSION);
+TINT_END_DISABLE_WARNING(OLD_STYLE_CAST);
+TINT_END_DISABLE_WARNING(NEWLINE_EOF);
+
+#include "src/tint/lang/core/ir/builder.h"
+#include "src/tint/lang/core/ir/module.h"
+#include "src/tint/lang/spirv/validate/validate.h"
+
+using namespace tint::core::fluent_types; // NOLINT
+
+namespace tint::spirv::reader {
+
+namespace {
+
+/// The SPIR-V environment that we validate against.
+constexpr auto kTargetEnv = SPV_ENV_VULKAN_1_1;
+
+/// PIMPL class for SPIR-V parser.
+/// Validates the SPIR-V module and then parses it to produce a Tint IR module.
+class Parser {
+ public:
+ /// @param spirv the SPIR-V binary data
+ /// @returns the generated SPIR-V IR module on success, or failure
+ Result<core::ir::Module> Run(Slice<const uint32_t> spirv) {
+ // Validate the incoming SPIR-V binary.
+ auto result = validate::Validate(spirv, kTargetEnv);
+ if (!result) {
+ return result.Failure();
+ }
+
+ // Build the SPIR-V tools internal representation of the SPIR-V module.
+ spvtools::Context context(kTargetEnv);
+ spirv_context_ =
+ spvtools::BuildModule(kTargetEnv, context.CContext()->consumer, spirv.data, spirv.len);
+ if (!spirv_context_) {
+ return Failure("failed to build the internal representation of the module");
+ }
+
+ EmitModuleScopeVariables();
+
+ EmitFunctions();
+
+ EmitEntryPoints();
+
+ // TODO(crbug.com/tint/1907): Handle annotation instructions.
+ // TODO(crbug.com/tint/1907): Handle names.
+
+ return std::move(ir_);
+ }
+
+ /// @param sc a SPIR-V storage class
+ /// @returns the Tint address space for a SPIR-V storage class
+ core::AddressSpace AddressSpace(spv::StorageClass sc) {
+ switch (sc) {
+ case spv::StorageClass::Function:
+ return core::AddressSpace::kFunction;
+ case spv::StorageClass::Private:
+ return core::AddressSpace::kPrivate;
+ default:
+ TINT_UNIMPLEMENTED()
+ << "unhandled SPIR-V storage class: " << static_cast<uint32_t>(sc);
+ return core::AddressSpace::kUndefined;
+ }
+ }
+
+ /// @param type a SPIR-V type object
+ /// @returns a Tint type object
+ const core::type::Type* Type(const spvtools::opt::analysis::Type* type) {
+ switch (type->kind()) {
+ case spvtools::opt::analysis::Type::kVoid:
+ return ty_.void_();
+ case spvtools::opt::analysis::Type::kBool:
+ return ty_.bool_();
+ case spvtools::opt::analysis::Type::kInteger: {
+ auto* int_ty = type->AsInteger();
+ TINT_ASSERT_OR_RETURN_VALUE(int_ty->width() == 32, ty_.void_());
+ if (int_ty->IsSigned()) {
+ return ty_.i32();
+ } else {
+ return ty_.u32();
+ }
+ }
+ case spvtools::opt::analysis::Type::kFloat: {
+ auto* float_ty = type->AsFloat();
+ if (float_ty->width() == 16) {
+ return ty_.f16();
+ } else if (float_ty->width() == 32) {
+ return ty_.f32();
+ } else {
+ TINT_UNREACHABLE()
+ << "unsupported floating point type width: " << float_ty->width();
+ return ty_.void_();
+ }
+ }
+ case spvtools::opt::analysis::Type::kPointer: {
+ auto* ptr_ty = type->AsPointer();
+ return ty_.ptr(AddressSpace(ptr_ty->storage_class()), Type(ptr_ty->pointee_type()));
+ }
+ default:
+ TINT_UNIMPLEMENTED() << "unhandled SPIR-V type: " << type->str();
+ return ty_.void_();
+ }
+ }
+
+ /// @param id a SPIR-V result ID for a type declaration instruction
+ /// @returns a Tint type object
+ const core::type::Type* Type(uint32_t id) {
+ return Type(spirv_context_->get_type_mgr()->GetType(id));
+ }
+
+ /// @param id a SPIR-V result ID for a function declaration instruction
+ /// @returns a Tint function object
+ core::ir::Function* Function(uint32_t id) {
+ return functions_.GetOrCreate(id, [&] {
+ return b_.Function(ty_.void_(), core::ir::Function::PipelineStage::kUndefined,
+ std::nullopt);
+ });
+ }
+
+ /// @param id a SPIR-V result ID
+ /// @returns a Tint value object
+ core::ir::Value* Value(uint32_t id) {
+ return values_.GetOrCreate(id, [&]() -> core::ir::Value* {
+ if (auto* c = spirv_context_->get_constant_mgr()->FindDeclaredConstant(id)) {
+ return Constant(c);
+ }
+ TINT_UNREACHABLE() << "missing value for result ID " << id;
+ return nullptr;
+ });
+ }
+
+ /// @param constant a SPIR-V constant object
+ /// @returns a Tint constant object
+ core::ir::Constant* Constant(const spvtools::opt::analysis::Constant* constant) {
+ // Handle OpConstantNull for all types.
+ if (constant->AsNullConstant()) {
+ return b_.Constant(ir_.constant_values.Zero(Type(constant->type())));
+ }
+
+ if (auto* bool_ = constant->AsBoolConstant()) {
+ return b_.Constant(bool_->value());
+ }
+ if (auto* i = constant->AsIntConstant()) {
+ auto* int_ty = i->type()->AsInteger();
+ TINT_ASSERT_OR_RETURN_VALUE(int_ty->width() == 32, nullptr);
+ if (int_ty->IsSigned()) {
+ return b_.Constant(i32(i->GetS32BitValue()));
+ } else {
+ return b_.Constant(u32(i->GetU32BitValue()));
+ }
+ }
+ if (auto* f = constant->AsFloatConstant()) {
+ auto* float_ty = f->type()->AsFloat();
+ if (float_ty->width() == 16) {
+ return b_.Constant(f16::FromBits(static_cast<uint16_t>(f->words()[0])));
+ } else if (float_ty->width() == 32) {
+ return b_.Constant(f32(f->GetFloat()));
+ } else {
+ TINT_UNREACHABLE() << "unsupported floating point type width";
+ return nullptr;
+ }
+ }
+ TINT_UNIMPLEMENTED() << "unhandled constant type";
+ return nullptr;
+ }
+
+ /// Emit the module-scope variables.
+ void EmitModuleScopeVariables() {
+ for (auto& inst : spirv_context_->module()->types_values()) {
+ if (inst.opcode() == spv::Op::OpVariable) {
+ ir_.root_block->Append(EmitVar(inst));
+ }
+ }
+ }
+
+ /// Emit the functions.
+ void EmitFunctions() {
+ for (auto& func : *spirv_context_->module()) {
+ Vector<core::ir::FunctionParam*, 4> params;
+ func.ForEachParam([&](spvtools::opt::Instruction* spirv_param) {
+ auto* param = b_.FunctionParam(Type(spirv_param->type_id()));
+ values_.Add(spirv_param->result_id(), param);
+ params.Push(param);
+ });
+
+ current_function_ = Function(func.result_id());
+ current_function_->SetParams(std::move(params));
+ current_function_->SetReturnType(Type(func.type_id()));
+
+ functions_.Add(func.result_id(), current_function_);
+ EmitBlock(current_function_->Block(), *func.entry());
+ }
+ }
+
+ /// Emit entry point attributes.
+ void EmitEntryPoints() {
+ // Handle OpEntryPoint declarations.
+ for (auto& entry_point : spirv_context_->module()->entry_points()) {
+ auto model = entry_point.GetSingleWordInOperand(0);
+ auto* func = Function(entry_point.GetSingleWordInOperand(1));
+
+ // Set the pipeline stage.
+ switch (spv::ExecutionModel(model)) {
+ case spv::ExecutionModel::GLCompute:
+ func->SetStage(core::ir::Function::PipelineStage::kCompute);
+ break;
+ case spv::ExecutionModel::Fragment:
+ func->SetStage(core::ir::Function::PipelineStage::kFragment);
+ break;
+ case spv::ExecutionModel::Vertex:
+ func->SetStage(core::ir::Function::PipelineStage::kVertex);
+ break;
+ default:
+ TINT_UNIMPLEMENTED() << "unhandled execution model: " << model;
+ }
+
+ // Set the entry point name.
+ ir_.SetName(func, entry_point.GetOperand(2).AsString());
+ }
+
+ // Handle OpExecutionMode declarations.
+ for (auto& execution_mode : spirv_context_->module()->execution_modes()) {
+ auto* func = functions_.Get(execution_mode.GetSingleWordInOperand(0)).value_or(nullptr);
+ auto mode = execution_mode.GetSingleWordInOperand(1);
+ TINT_ASSERT_OR_RETURN(func);
+
+ switch (spv::ExecutionMode(mode)) {
+ case spv::ExecutionMode::LocalSize:
+ func->SetWorkgroupSize(execution_mode.GetSingleWordInOperand(2),
+ execution_mode.GetSingleWordInOperand(3),
+ execution_mode.GetSingleWordInOperand(4));
+ break;
+ case spv::ExecutionMode::OriginUpperLeft:
+ break;
+ default:
+ TINT_UNIMPLEMENTED() << "unhandled execution mode: " << mode;
+ }
+ }
+ }
+
+ /// Emit the contents of SPIR-V block @p src into Tint IR block @p dst.
+ /// @param dst the Tint IR block to append to
+ /// @param src the SPIR-V block to emit
+ void EmitBlock(core::ir::Block* dst, const spvtools::opt::BasicBlock& src) {
+ for (auto& inst : src) {
+ switch (inst.opcode()) {
+ case spv::Op::OpFunctionCall:
+ dst->Append(EmitFunctionCall(inst));
+ break;
+ case spv::Op::OpReturn:
+ dst->Append(b_.Return(current_function_));
+ break;
+ case spv::Op::OpReturnValue:
+ dst->Append(b_.Return(current_function_, Value(inst.GetSingleWordOperand(0))));
+ break;
+ case spv::Op::OpVariable:
+ dst->Append(EmitVar(inst));
+ break;
+ default:
+ TINT_UNIMPLEMENTED()
+ << "unhandled SPIR-V instruction: " << static_cast<uint32_t>(inst.opcode());
+ }
+ }
+ }
+
+ /// @param inst the SPIR-V instruction for OpFunctionCall
+ /// @returns the Tint IR instruction
+ core::ir::UserCall* EmitFunctionCall(const spvtools::opt::Instruction& inst) {
+ // TODO(crbug.com/tint/1907): Capture result.
+ Vector<core::ir::Value*, 4> args;
+ for (uint32_t i = 3; i < inst.NumOperandWords(); i++) {
+ args.Push(Value(inst.GetSingleWordOperand(i)));
+ }
+ return b_.Call(Function(inst.GetSingleWordInOperand(0)), std::move(args));
+ }
+
+ /// @param inst the SPIR-V instruction for OpVariable
+ /// @returns the Tint IR instruction
+ core::ir::Var* EmitVar(const spvtools::opt::Instruction& inst) {
+ auto* var = b_.Var(Type(inst.type_id())->As<core::type::Pointer>());
+ if (inst.NumOperands() > 3) {
+ var->SetInitializer(Value(inst.GetSingleWordOperand(3)));
+ }
+ return var;
+ }
+
+ private:
+ /// The generated IR module.
+ core::ir::Module ir_;
+ /// The Tint IR builder.
+ core::ir::Builder b_{ir_};
+ /// The Tint type manager.
+ core::type::Manager& ty_{ir_.Types()};
+
+ /// The Tint IR function that is currently being emitted.
+ core::ir::Function* current_function_ = nullptr;
+ /// A map from a SPIR-V function definition result ID to the corresponding Tint function object.
+ Hashmap<uint32_t, core::ir::Function*, 8> functions_;
+ /// A map from a SPIR-V result ID to the corresponding Tint value object.
+ Hashmap<uint32_t, core::ir::Value*, 8> values_;
+
+ /// The SPIR-V context containing the SPIR-V tools intermediate representation.
+ std::unique_ptr<spvtools::opt::IRContext> spirv_context_;
+};
+
+} // namespace
+
+Result<core::ir::Module> Parse(Slice<const uint32_t> spirv) {
+ return Parser{}.Run(spirv);
+}
+
+} // namespace tint::spirv::reader
diff --git a/src/tint/lang/spirv/reader/parser/parser.h b/src/tint/lang/spirv/reader/parser/parser.h
new file mode 100644
index 0000000..17612cf
--- /dev/null
+++ b/src/tint/lang/spirv/reader/parser/parser.h
@@ -0,0 +1,49 @@
+// Copyright 2020 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.
+
+#ifndef SRC_TINT_LANG_SPIRV_READER_PARSER_PARSER_H_
+#define SRC_TINT_LANG_SPIRV_READER_PARSER_PARSER_H_
+
+#include <vector>
+
+#include "src/tint/utils/result/result.h"
+
+// Forward declarations
+namespace tint::core::ir {
+class Module;
+} // namespace tint::core::ir
+
+namespace tint::spirv::reader {
+
+/// Parse a SPIR-V binary to produce a SPIR-V IR module.
+/// @param spirv the SPIR-V binary data
+/// @returns the SPIR-V IR module on success, or failure
+Result<core::ir::Module> Parse(Slice<const uint32_t> spirv);
+
+} // namespace tint::spirv::reader
+
+#endif // SRC_TINT_LANG_SPIRV_READER_PARSER_PARSER_H_
diff --git a/src/tint/lang/spirv/reader/parser/var_test.cc b/src/tint/lang/spirv/reader/parser/var_test.cc
new file mode 100644
index 0000000..c1985ac
--- /dev/null
+++ b/src/tint/lang/spirv/reader/parser/var_test.cc
@@ -0,0 +1,146 @@
+// 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.
+
+#include "src/tint/lang/spirv/reader/parser/helper_test.h"
+
+namespace tint::spirv::reader {
+namespace {
+
+TEST_F(SpirvParserTest, FunctionVar) {
+ EXPECT_IR(R"(
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint GLCompute %main "main"
+ OpExecutionMode %main LocalSize 1 1 1
+ %void = OpTypeVoid
+ %u32 = OpTypeInt 32 0
+ %u32_ptr = OpTypePointer Function %u32
+ %ep_type = OpTypeFunction %void
+ %main = OpFunction %void None %ep_type
+ %main_start = OpLabel
+ %var = OpVariable %u32_ptr Function
+ OpReturn
+ OpFunctionEnd
+)",
+ R"(
+%main = @compute @workgroup_size(1, 1, 1) func():void -> %b1 {
+ %b1 = block {
+ %2:ptr<function, u32, read_write> = var
+ ret
+ }
+}
+)");
+}
+
+TEST_F(SpirvParserTest, FunctionVar_Initializer) {
+ EXPECT_IR(R"(
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint GLCompute %main "main"
+ OpExecutionMode %main LocalSize 1 1 1
+ %void = OpTypeVoid
+ %u32 = OpTypeInt 32 0
+ %u32_42 = OpConstant %u32 42
+ %u32_ptr = OpTypePointer Function %u32
+ %ep_type = OpTypeFunction %void
+ %main = OpFunction %void None %ep_type
+ %main_start = OpLabel
+ %var = OpVariable %u32_ptr Function %u32_42
+ OpReturn
+ OpFunctionEnd
+)",
+ R"(
+%main = @compute @workgroup_size(1, 1, 1) func():void -> %b1 {
+ %b1 = block {
+ %2:ptr<function, u32, read_write> = var, 42u
+ ret
+ }
+}
+)");
+}
+
+TEST_F(SpirvParserTest, PrivateVar) {
+ EXPECT_IR(R"(
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint GLCompute %main "main"
+ OpExecutionMode %main LocalSize 1 1 1
+ %void = OpTypeVoid
+ %u32 = OpTypeInt 32 0
+ %u32_ptr = OpTypePointer Private %u32
+ %ep_type = OpTypeFunction %void
+ %var = OpVariable %u32_ptr Private
+ %main = OpFunction %void None %ep_type
+ %main_start = OpLabel
+ OpReturn
+ OpFunctionEnd
+)",
+ R"(
+%b1 = block { # root
+ %1:ptr<private, u32, read_write> = var
+}
+
+%main = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
+ %b2 = block {
+ ret
+ }
+}
+)");
+}
+
+TEST_F(SpirvParserTest, PrivateVar_Initializer) {
+ EXPECT_IR(R"(
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint GLCompute %main "main"
+ OpExecutionMode %main LocalSize 1 1 1
+ %void = OpTypeVoid
+ %u32 = OpTypeInt 32 0
+ %u32_42 = OpConstant %u32 42
+ %u32_ptr = OpTypePointer Private %u32
+ %ep_type = OpTypeFunction %void
+ %var = OpVariable %u32_ptr Private %u32_42
+ %main = OpFunction %void None %ep_type
+ %main_start = OpLabel
+ OpReturn
+ OpFunctionEnd
+)",
+ R"(
+%b1 = block { # root
+ %1:ptr<private, u32, read_write> = var, 42u
+}
+
+%main = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
+ %b2 = block {
+ ret
+ }
+}
+)");
+}
+
+} // namespace
+} // namespace tint::spirv::reader
diff --git a/src/tint/lang/spirv/reader/reader.cc b/src/tint/lang/spirv/reader/reader.cc
index 3e7ce9a..1930b97 100644
--- a/src/tint/lang/spirv/reader/reader.cc
+++ b/src/tint/lang/spirv/reader/reader.cc
@@ -31,12 +31,19 @@
#include "src/tint/lang/core/ir/module.h"
#include "src/tint/lang/spirv/reader/ast_parser/parse.h"
+#include "src/tint/lang/spirv/reader/parser/parser.h"
namespace tint::spirv::reader {
Result<core::ir::Module> ReadIR(const std::vector<uint32_t>& input) {
- (void)input;
- return Failure("SPIR-V to IR reader is unimplemented");
+ auto mod = Parse(Slice(input.data(), input.size()));
+ if (!mod) {
+ return mod.Failure();
+ }
+
+ // TODO(crbug.com/tint/1907): Lower the module to core dialect.
+
+ return mod;
}
Program Read(const std::vector<uint32_t>& input, const Options& options) {
diff --git a/src/tint/lang/spirv/validate/BUILD.bazel b/src/tint/lang/spirv/validate/BUILD.bazel
index bc1d952..dd47510 100644
--- a/src/tint/lang/spirv/validate/BUILD.bazel
+++ b/src/tint/lang/spirv/validate/BUILD.bazel
@@ -85,6 +85,7 @@
] + select({
":tint_build_spv_reader_or_tint_build_spv_writer": [
"//src/tint/lang/spirv/validate",
+ "@spirv_tools",
],
"//conditions:default": [],
}),
diff --git a/src/tint/lang/spirv/validate/BUILD.cmake b/src/tint/lang/spirv/validate/BUILD.cmake
index e50d0e9..726f9cf 100644
--- a/src/tint/lang/spirv/validate/BUILD.cmake
+++ b/src/tint/lang/spirv/validate/BUILD.cmake
@@ -96,6 +96,9 @@
tint_target_add_dependencies(tint_lang_spirv_validate_test test
tint_lang_spirv_validate
)
+ tint_target_add_external_dependencies(tint_lang_spirv_validate_test test
+ "spirv-tools"
+ )
endif(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER)
endif(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER)
\ No newline at end of file
diff --git a/src/tint/lang/spirv/validate/BUILD.gn b/src/tint/lang/spirv/validate/BUILD.gn
index 99890f7..2f79a37 100644
--- a/src/tint/lang/spirv/validate/BUILD.gn
+++ b/src/tint/lang/spirv/validate/BUILD.gn
@@ -87,7 +87,11 @@
]
if (tint_build_spv_reader || tint_build_spv_writer) {
- deps += [ "${tint_src_dir}/lang/spirv/validate" ]
+ deps += [
+ "${tint_spirv_tools_dir}:spvtools_headers",
+ "${tint_spirv_tools_dir}:spvtools_val",
+ "${tint_src_dir}/lang/spirv/validate",
+ ]
}
}
}
diff --git a/src/tint/lang/spirv/validate/validate.cc b/src/tint/lang/spirv/validate/validate.cc
index 13344b7..8d85413 100644
--- a/src/tint/lang/spirv/validate/validate.cc
+++ b/src/tint/lang/spirv/validate/validate.cc
@@ -35,11 +35,11 @@
namespace tint::spirv::validate {
-Result<SuccessType> Validate(Slice<const uint32_t> spirv) {
+Result<SuccessType> Validate(Slice<const uint32_t> spirv, spv_target_env target_env) {
Vector<diag::Diagnostic, 4> diags;
diags.Push(diag::Diagnostic{}); // Filled in on error
- spvtools::SpirvTools tools(SPV_ENV_VULKAN_1_3);
+ spvtools::SpirvTools tools(target_env);
tools.SetMessageConsumer(
[&](spv_message_level_t level, const char*, const spv_position_t& pos, const char* msg) {
diag::Diagnostic diag;
diff --git a/src/tint/lang/spirv/validate/validate.h b/src/tint/lang/spirv/validate/validate.h
index 840d90f..1e09477 100644
--- a/src/tint/lang/spirv/validate/validate.h
+++ b/src/tint/lang/spirv/validate/validate.h
@@ -28,6 +28,7 @@
#ifndef SRC_TINT_LANG_SPIRV_VALIDATE_VALIDATE_H_
#define SRC_TINT_LANG_SPIRV_VALIDATE_VALIDATE_H_
+#include "spirv-tools/libspirv.hpp"
#include "src/tint/utils/result/result.h"
// Forward declarations
@@ -38,8 +39,10 @@
namespace tint::spirv::validate {
/// Validate checks that the provided SPIR-V passes validation.
+/// @param spirv the SPIR-V binary data
+/// @param target_env the target environment to validate against
/// @return success or failure(s)
-Result<SuccessType> Validate(Slice<const uint32_t> spirv);
+Result<SuccessType> Validate(Slice<const uint32_t> spirv, spv_target_env target_env);
} // namespace tint::spirv::validate
diff --git a/src/tint/lang/spirv/validate/validate_test.cc b/src/tint/lang/spirv/validate/validate_test.cc
index 96ba63e..14dde40 100644
--- a/src/tint/lang/spirv/validate/validate_test.cc
+++ b/src/tint/lang/spirv/validate/validate_test.cc
@@ -48,7 +48,7 @@
0x0000000e, 0x00000002, 0x0000000b, 0x0004003d, 0x00000006, 0x0000000f, 0x0000000e,
0x00050051, 0x00000005, 0x00000010, 0x0000000f, 0x00000001, 0x000100fd, 0x00010038,
};
- auto res = Validate(spirv);
+ auto res = Validate(spirv, SPV_ENV_VULKAN_1_3);
EXPECT_TRUE(res) << res;
}
@@ -68,7 +68,7 @@
0x0000000e, 0x00000002, 0x0000000b, 0x0004003d, 0x00000006, 0x0000000f, 0x0000000e,
0x00050051, 0x00000005, 0x00000010, 0x0000000f, 0x00000001, 0x000100fd, 0x00010038,
};
- auto res = Validate(spirv);
+ auto res = Validate(spirv, SPV_ENV_VULKAN_1_3);
ASSERT_FALSE(res);
EXPECT_EQ(res.Failure().reason.str(), R"(spirv error: SPIR-V failed validation.
diff --git a/src/tint/lang/spirv/writer/BUILD.cmake b/src/tint/lang/spirv/writer/BUILD.cmake
index 0720114..3700f48 100644
--- a/src/tint/lang/spirv/writer/BUILD.cmake
+++ b/src/tint/lang/spirv/writer/BUILD.cmake
@@ -267,6 +267,9 @@
tint_target_add_dependencies(tint_lang_spirv_writer_fuzz fuzz
tint_lang_spirv_validate
)
+ tint_target_add_external_dependencies(tint_lang_spirv_writer_fuzz fuzz
+ "spirv-tools"
+ )
endif(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER)
if(TINT_BUILD_SPV_WRITER)
diff --git a/src/tint/lang/spirv/writer/BUILD.gn b/src/tint/lang/spirv/writer/BUILD.gn
index 8045c04..120b4f4 100644
--- a/src/tint/lang/spirv/writer/BUILD.gn
+++ b/src/tint/lang/spirv/writer/BUILD.gn
@@ -235,7 +235,11 @@
]
if (tint_build_spv_reader || tint_build_spv_writer) {
- deps += [ "${tint_src_dir}/lang/spirv/validate" ]
+ deps += [
+ "${tint_spirv_tools_dir}:spvtools_headers",
+ "${tint_spirv_tools_dir}:spvtools_val",
+ "${tint_src_dir}/lang/spirv/validate",
+ ]
}
if (tint_build_spv_writer) {
diff --git a/src/tint/lang/spirv/writer/ast_printer/ast_printer.cc b/src/tint/lang/spirv/writer/ast_printer/ast_printer.cc
index 2fe2ab2..31a300e 100644
--- a/src/tint/lang/spirv/writer/ast_printer/ast_printer.cc
+++ b/src/tint/lang/spirv/writer/ast_printer/ast_printer.cc
@@ -146,6 +146,7 @@
polyfills.quantize_to_vec_f16 = true; // crbug.com/tint/1741
polyfills.workgroup_uniform_load = true;
polyfills.dot_4x8_packed = options.polyfill_dot_4x8_packed;
+ polyfills.pack_unpack_4x8 = true;
data.Add<ast::transform::BuiltinPolyfill::Config>(polyfills);
manager.Add<ast::transform::BuiltinPolyfill>(); // Must come before DirectVariableAccess
}
diff --git a/src/tint/lang/spirv/writer/ast_writer_fuzz.cc b/src/tint/lang/spirv/writer/ast_writer_fuzz.cc
index 7ce83db..c70990c 100644
--- a/src/tint/lang/spirv/writer/ast_writer_fuzz.cc
+++ b/src/tint/lang/spirv/writer/ast_writer_fuzz.cc
@@ -47,7 +47,8 @@
return;
}
auto& spirv = output->spirv;
- if (auto res = validate::Validate(Slice(spirv.data(), spirv.size())); !res) {
+ if (auto res = validate::Validate(Slice(spirv.data(), spirv.size()), SPV_ENV_VULKAN_1_1);
+ !res) {
TINT_ICE() << "Output of SPIR-V writer failed to validate with SPIR-V Tools\n"
<< res.Failure();
}
diff --git a/src/tint/lang/spirv/writer/raise/raise.cc b/src/tint/lang/spirv/writer/raise/raise.cc
index fad09b4..153bd2c 100644
--- a/src/tint/lang/spirv/writer/raise/raise.cc
+++ b/src/tint/lang/spirv/writer/raise/raise.cc
@@ -86,6 +86,7 @@
core_polyfills.insert_bits = core::ir::transform::BuiltinPolyfillLevel::kClampOrRangeCheck;
core_polyfills.saturate = true;
core_polyfills.texture_sample_base_clamp_to_edge_2d_f32 = true;
+ core_polyfills.pack_unpack_4x8 = true;
RUN_TRANSFORM(core::ir::transform::BuiltinPolyfill, module, core_polyfills);
core::ir::transform::ConversionPolyfillConfig conversion_polyfills;
diff --git a/src/tint/lang/spirv/writer/writer_fuzz.cc b/src/tint/lang/spirv/writer/writer_fuzz.cc
index ff37ab7..5fdb191 100644
--- a/src/tint/lang/spirv/writer/writer_fuzz.cc
+++ b/src/tint/lang/spirv/writer/writer_fuzz.cc
@@ -41,7 +41,8 @@
return;
}
auto& spirv = output->spirv;
- if (auto res = validate::Validate(Slice(spirv.data(), spirv.size())); !res) {
+ if (auto res = validate::Validate(Slice(spirv.data(), spirv.size()), SPV_ENV_VULKAN_1_1);
+ !res) {
TINT_ICE() << "Output of SPIR-V writer failed to validate with SPIR-V Tools\n"
<< res.Failure();
}
diff --git a/src/tint/lang/wgsl/ast/builtin_texture_helper_test.cc b/src/tint/lang/wgsl/ast/builtin_texture_helper_test.cc
index 24383f3..bff2caf 100644
--- a/src/tint/lang/wgsl/ast/builtin_texture_helper_test.cc
+++ b/src/tint/lang/wgsl/ast/builtin_texture_helper_test.cc
@@ -463,7 +463,8 @@
},
{
ValidTextureOverload::kDimensionsStorageWO2d,
- "textureDimensions(t : texture_storage_2d<rgba32float>) -> vec2<u32>",
+ "textureDimensions(t : texture_storage_2d<rgba32float>) -> "
+ "vec2<u32>",
tint::core::Access::kWrite,
tint::core::TexelFormat::kRgba32Float,
core::type::TextureDimension::k2d,
@@ -474,7 +475,8 @@
},
{
ValidTextureOverload::kDimensionsStorageWO2dArray,
- "textureDimensions(t : texture_storage_2d_array<rgba32float>) -> vec2<u32>",
+ "textureDimensions(t : texture_storage_2d_array<rgba32float>) -> "
+ "vec2<u32>",
tint::core::Access::kWrite,
tint::core::TexelFormat::kRgba32Float,
core::type::TextureDimension::k2dArray,
@@ -485,7 +487,8 @@
},
{
ValidTextureOverload::kDimensionsStorageWO3d,
- "textureDimensions(t : texture_storage_3d<rgba32float>) -> vec3<u32>",
+ "textureDimensions(t : texture_storage_3d<rgba32float>) -> "
+ "vec3<u32>",
tint::core::Access::kWrite,
tint::core::TexelFormat::kRgba32Float,
core::type::TextureDimension::k3d,
@@ -527,11 +530,12 @@
TextureDataType::kF32,
"textureGather",
[](ProgramBuilder* b) {
- return b->ExprList(0_u, // component
- kTextureName, // t
- kSamplerName, // s
- b->Call<vec2<f32>>(1_f, 2_f), // coords
- b->Call<vec2<i32>>(3_i, 4_i)); // offset
+ auto* coords = b->Call<vec2<f32>>(1_f, 2_f);
+ auto* offset = b->Call<vec2<i32>>(3_i, 4_i);
+ return b->ExprList(0_u, // component
+ kTextureName, // t
+ kSamplerName, // s
+ coords, offset);
},
/* returns value */ true,
},
@@ -570,12 +574,14 @@
TextureDataType::kF32,
"textureGather",
[](ProgramBuilder* b) {
- return b->ExprList(0_u, // component
- kTextureName, // t
- kSamplerName, // s
- b->Call<vec2<f32>>(1_f, 2_f), // coords
- 3_u, // array_index
- b->Call<vec2<i32>>(4_i, 5_i)); // offset
+ auto* coords = b->Call<vec2<f32>>(1_f, 2_f);
+ auto* offset = b->Call<vec2<i32>>(4_i, 5_i);
+ return b->ExprList(0_u, // component
+ kTextureName, // t
+ kSamplerName, // s
+ coords,
+ 3_u, // array_index
+ offset);
},
/* returns value */ true,
},
@@ -648,10 +654,11 @@
TextureDataType::kF32,
"textureGather",
[](ProgramBuilder* b) {
- return b->ExprList(kTextureName, // t
- kSamplerName, // s
- b->Call<vec2<f32>>(1_f, 2_f), // coords
- b->Call<vec2<i32>>(3_i, 4_i)); // offset
+ auto* coords = b->Call<vec2<f32>>(1_f, 2_f);
+ auto* offset = b->Call<vec2<i32>>(3_i, 4_i);
+ return b->ExprList(kTextureName, // t
+ kSamplerName, // s
+ coords, offset);
},
/* returns value */ true,
},
@@ -687,11 +694,13 @@
TextureDataType::kF32,
"textureGather",
[](ProgramBuilder* b) {
- return b->ExprList(kTextureName, // t
- kSamplerName, // s
- b->Call<vec2<f32>>(1_f, 2_f), // coords
- 3_i, // array_index
- b->Call<vec2<i32>>(4_i, 5_i)); // offset
+ auto* coords = b->Call<vec2<f32>>(1_f, 2_f);
+ auto* offset = b->Call<vec2<i32>>(4_i, 5_i);
+ return b->ExprList(kTextureName, // t
+ kSamplerName, // s
+ coords,
+ 3_i, // array_index
+ offset);
},
/* returns value */ true,
},
@@ -763,11 +772,13 @@
TextureDataType::kF32,
"textureGatherCompare",
[](ProgramBuilder* b) {
- return b->ExprList(kTextureName, // t
- kSamplerName, // s
- b->Call<vec2<f32>>(1_f, 2_f), // coords
- 3_f, // depth_ref
- b->Call<vec2<i32>>(4_i, 5_i)); // offset
+ auto* coords = b->Call<vec2<f32>>(1_f, 2_f);
+ auto* offset = b->Call<vec2<i32>>(4_i, 5_i);
+ return b->ExprList(kTextureName, // t
+ kSamplerName, // s
+ coords,
+ 3_f, // depth_ref
+ offset);
},
/* returns value */ true,
},
@@ -806,12 +817,14 @@
TextureDataType::kF32,
"textureGatherCompare",
[](ProgramBuilder* b) {
- return b->ExprList(kTextureName, // t
- kSamplerName, // s
- b->Call<vec2<f32>>(1_f, 2_f), // coords
- 3_i, // array_index
- 4_f, // depth_ref
- b->Call<vec2<i32>>(5_i, 6_i)); // offset
+ auto* coords = b->Call<vec2<f32>>(1_f, 2_f);
+ auto* offset = b->Call<vec2<i32>>(5_i, 6_i);
+ return b->ExprList(kTextureName, // t
+ kSamplerName, // s
+ coords,
+ 3_i, // array_index
+ 4_f, // depth_ref
+ offset);
},
/* returns value */ true,
},
@@ -901,7 +914,8 @@
},
{
ValidTextureOverload::kNumLayersStorageWO2dArray,
- "textureNumLayers(t : texture_storage_2d_array<rgba32float>) -> u32",
+ "textureNumLayers(t : texture_storage_2d_array<rgba32float>) -> "
+ "u32",
tint::core::Access::kWrite,
tint::core::TexelFormat::kRgba32Float,
core::type::TextureDimension::k2dArray,
@@ -1077,10 +1091,11 @@
TextureDataType::kF32,
"textureSample",
[](ProgramBuilder* b) {
- return b->ExprList(kTextureName, // t
- kSamplerName, // s
- b->Call<vec2<f32>>(1_f, 2_f), // coords
- b->Call<vec2<i32>>(3_i, 4_i)); // offset
+ auto* coords = b->Call<vec2<f32>>(1_f, 2_f);
+ auto* offset = b->Call<vec2<i32>>(3_i, 4_i);
+ return b->ExprList(kTextureName, // t
+ kSamplerName, // s
+ coords, offset);
},
/* returns value */ true,
},
@@ -1116,11 +1131,13 @@
TextureDataType::kF32,
"textureSample",
[](ProgramBuilder* b) {
- return b->ExprList(kTextureName, // t
- kSamplerName, // s
- b->Call<vec2<f32>>(1_f, 2_f), // coords
- 3_u, // array_index
- b->Call<vec2<i32>>(4_i, 5_i)); // offset
+ auto* coords = b->Call<vec2<f32>>(1_f, 2_f);
+ auto* offset = b->Call<vec2<i32>>(4_i, 5_i);
+ return b->ExprList(kTextureName, // t
+ kSamplerName, // s
+ coords,
+ 3_u, // array_index
+ offset);
},
/* returns value */ true,
},
@@ -1153,10 +1170,11 @@
TextureDataType::kF32,
"textureSample",
[](ProgramBuilder* b) {
- return b->ExprList(kTextureName, // t
- kSamplerName, // s
- b->Call<vec3<f32>>(1_f, 2_f, 3_f), // coords
- b->Call<vec3<i32>>(4_i, 5_i, 6_i)); // offset
+ auto* coords = b->Call<vec3<f32>>(1_f, 2_f, 3_f);
+ auto* offset = b->Call<vec3<i32>>(4_i, 5_i, 6_i);
+ return b->ExprList(kTextureName, // t
+ kSamplerName, // s
+ coords, offset);
},
/* returns value */ true,
},
@@ -1225,10 +1243,11 @@
TextureDataType::kF32,
"textureSample",
[](ProgramBuilder* b) {
- return b->ExprList(kTextureName, // t
- kSamplerName, // s
- b->Call<vec2<f32>>(1_f, 2_f), // coords
- b->Call<vec2<i32>>(3_i, 4_i)); // offset
+ auto* coords = b->Call<vec2<f32>>(1_f, 2_f);
+ auto* offset = b->Call<vec2<i32>>(3_i, 4_i);
+ return b->ExprList(kTextureName, // t
+ kSamplerName, // s
+ coords, offset);
},
/* returns value */ true,
},
@@ -1264,11 +1283,13 @@
TextureDataType::kF32,
"textureSample",
[](ProgramBuilder* b) {
- return b->ExprList(kTextureName, // t
- kSamplerName, // s
- b->Call<vec2<f32>>(1_f, 2_f), // coords
- 3_i, // array_index
- b->Call<vec2<i32>>(4_i, 5_i)); // offset
+ auto* coords = b->Call<vec2<f32>>(1_f, 2_f);
+ auto* offset = b->Call<vec2<i32>>(4_i, 5_i);
+ return b->ExprList(kTextureName, // t
+ kSamplerName, // s
+ coords,
+ 3_i, // array_index
+ offset);
},
/* returns value */ true,
},
@@ -1340,11 +1361,13 @@
TextureDataType::kF32,
"textureSampleBias",
[](ProgramBuilder* b) {
- return b->ExprList(kTextureName, // t
- kSamplerName, // s
- b->Call<vec2<f32>>(1_f, 2_f), // coords
- 3_f, // bias
- b->Call<vec2<i32>>(4_i, 5_i)); // offset
+ auto* coords = b->Call<vec2<f32>>(1_f, 2_f);
+ auto* offset = b->Call<vec2<i32>>(4_i, 5_i);
+ return b->ExprList(kTextureName, // t
+ kSamplerName, // s
+ coords,
+ 3_f, // bias
+ offset);
},
/* returns value */ true,
},
@@ -1383,12 +1406,14 @@
TextureDataType::kF32,
"textureSampleBias",
[](ProgramBuilder* b) {
- return b->ExprList(kTextureName, // t
- kSamplerName, // s
- b->Call<vec2<f32>>(1_f, 2_f), // coords
- 3_i, // array_index
- 4_f, // bias
- b->Call<vec2<i32>>(5_i, 6_i)); // offset
+ auto* coords = b->Call<vec2<f32>>(1_f, 2_f);
+ auto* offset = b->Call<vec2<i32>>(5_i, 6_i);
+ return b->ExprList(kTextureName, // t
+ kSamplerName, // s
+ coords,
+ 3_i, // array_index
+ 4_f, // bias
+ offset);
},
/* returns value */ true,
},
@@ -1424,11 +1449,13 @@
TextureDataType::kF32,
"textureSampleBias",
[](ProgramBuilder* b) {
- return b->ExprList(kTextureName, // t
- kSamplerName, // s
- b->Call<vec3<f32>>(1_f, 2_f, 3_f), // coords
- 4_f, // bias
- b->Call<vec3<i32>>(5_i, 6_i, 7_i)); // offset
+ auto* coords = b->Call<vec3<f32>>(1_f, 2_f, 3_f);
+ auto* offset = b->Call<vec3<i32>>(5_i, 6_i, 7_i);
+ return b->ExprList(kTextureName, // t
+ kSamplerName, // s
+ coords,
+ 4_f, // bias
+ offset);
},
/* returns value */ true,
},
@@ -1504,11 +1531,13 @@
TextureDataType::kF32,
"textureSampleLevel",
[](ProgramBuilder* b) {
- return b->ExprList(kTextureName, // t
- kSamplerName, // s
- b->Call<vec2<f32>>(1_f, 2_f), // coords
- 3_f, // level
- b->Call<vec2<i32>>(4_i, 5_i)); // offset
+ auto* coords = b->Call<vec2<f32>>(1_f, 2_f);
+ auto* offset = b->Call<vec2<i32>>(4_i, 5_i);
+ return b->ExprList(kTextureName, // t
+ kSamplerName, // s
+ coords,
+ 3_f, // level
+ offset);
},
/* returns value */ true,
},
@@ -1547,12 +1576,14 @@
TextureDataType::kF32,
"textureSampleLevel",
[](ProgramBuilder* b) {
- return b->ExprList(kTextureName, // t
- kSamplerName, // s
- b->Call<vec2<f32>>(1_f, 2_f), // coords
- 3_i, // array_index
- 4_f, // level
- b->Call<vec2<i32>>(5_i, 6_i)); // offset
+ auto* coords = b->Call<vec2<f32>>(1_f, 2_f);
+ auto* offset = b->Call<vec2<i32>>(5_i, 6_i);
+ return b->ExprList(kTextureName, // t
+ kSamplerName, // s
+ coords,
+ 3_i, // array_index
+ 4_f, // level
+ offset);
},
/* returns value */ true,
},
@@ -1588,11 +1619,13 @@
TextureDataType::kF32,
"textureSampleLevel",
[](ProgramBuilder* b) {
- return b->ExprList(kTextureName, // t
- kSamplerName, // s
- b->Call<vec3<f32>>(1_f, 2_f, 3_f), // coords
- 4_f, // level
- b->Call<vec3<i32>>(5_i, 6_i, 7_i)); // offset
+ auto* coords = b->Call<vec3<f32>>(1_f, 2_f, 3_f);
+ auto* offset = b->Call<vec3<i32>>(5_i, 6_i, 7_i);
+ return b->ExprList(kTextureName, // t
+ kSamplerName, // s
+ coords,
+ 4_f, // level
+ offset);
},
/* returns value */ true,
},
@@ -1668,11 +1701,13 @@
TextureDataType::kF32,
"textureSampleLevel",
[](ProgramBuilder* b) {
- return b->ExprList(kTextureName, // t
- kSamplerName, // s
- b->Call<vec2<f32>>(1_f, 2_f), // coords
- 3_i, // level
- b->Call<vec2<i32>>(4_i, 5_i)); // offset
+ auto* coords = b->Call<vec2<f32>>(1_f, 2_f);
+ auto* offset = b->Call<vec2<i32>>(4_i, 5_i);
+ return b->ExprList(kTextureName, // t
+ kSamplerName, // s
+ coords,
+ 3_i, // level
+ offset);
},
/* returns value */ true,
},
@@ -1711,12 +1746,14 @@
TextureDataType::kF32,
"textureSampleLevel",
[](ProgramBuilder* b) {
- return b->ExprList(kTextureName, // t
- kSamplerName, // s
- b->Call<vec2<f32>>(1_f, 2_f), // coords
- 3_u, // array_index
- 4_u, // level
- b->Call<vec2<i32>>(5_i, 6_i)); // offset
+ auto* coords = b->Call<vec2<f32>>(1_f, 2_f);
+ auto* offset = b->Call<vec2<i32>>(5_i, 6_i);
+ return b->ExprList(kTextureName, // t
+ kSamplerName, // s
+ coords,
+ 3_u, // array_index
+ 4_u, // level
+ offset);
},
/* returns value */ true,
},
@@ -1773,11 +1810,12 @@
TextureDataType::kF32,
"textureSampleGrad",
[](ProgramBuilder* b) {
- return b->ExprList(kTextureName, // t
- kSamplerName, // s
- b->Call<vec2<f32>>(1_f, 2_f), // coords
- b->Call<vec2<f32>>(3_f, 4_f), // ddx
- b->Call<vec2<f32>>(5_f, 6_f)); // ddy
+ auto* coords = b->Call<vec2<f32>>(1_f, 2_f);
+ auto* ddx = b->Call<vec2<f32>>(3_f, 4_f);
+ auto* ddy = b->Call<vec2<f32>>(5_f, 6_f);
+ return b->ExprList(kTextureName, // t
+ kSamplerName, // s
+ coords, ddx, ddy);
},
/* returns value */ true,
},
@@ -1795,12 +1833,13 @@
TextureDataType::kF32,
"textureSampleGrad",
[](ProgramBuilder* b) {
- return b->ExprList(kTextureName, // t
- kSamplerName, // s
- b->Call<vec2<f32>>(1_f, 2_f), // coords
- b->Call<vec2<f32>>(3_f, 4_f), // ddx
- b->Call<vec2<f32>>(5_f, 6_f), // ddy
- b->Call<vec2<i32>>(7_i, 7_i)); // offset
+ auto* coords = b->Call<vec2<f32>>(1_f, 2_f);
+ auto* ddx = b->Call<vec2<f32>>(3_f, 4_f);
+ auto* ddy = b->Call<vec2<f32>>(5_f, 6_f);
+ auto* offset = b->Call<vec2<i32>>(7_i, 7_i);
+ return b->ExprList(kTextureName, // t
+ kSamplerName, // s
+ coords, ddx, ddy, offset);
},
/* returns value */ true,
},
@@ -1818,12 +1857,14 @@
TextureDataType::kF32,
"textureSampleGrad",
[](ProgramBuilder* b) {
- return b->ExprList(kTextureName, // t
- kSamplerName, // s
- b->Call<vec2<f32>>(1_f, 2_f), // coords
- 3_i, // array_index
- b->Call<vec2<f32>>(4_f, 5_f), // ddx
- b->Call<vec2<f32>>(6_f, 7_f)); // ddy
+ auto* coords = b->Call<vec2<f32>>(1_f, 2_f);
+ auto* ddx = b->Call<vec2<f32>>(4_f, 5_f);
+ auto* ddy = b->Call<vec2<f32>>(6_f, 7_f);
+ return b->ExprList(kTextureName, // t
+ kSamplerName, // s
+ coords,
+ 3_i, // array_index
+ ddx, ddy);
},
/* returns value */ true,
},
@@ -1842,13 +1883,15 @@
TextureDataType::kF32,
"textureSampleGrad",
[](ProgramBuilder* b) {
- return b->ExprList(kTextureName, // t
- kSamplerName, // s
- b->Call<vec2<f32>>(1_f, 2_f), // coords
- 3_u, // array_index
- b->Call<vec2<f32>>(4_f, 5_f), // ddx
- b->Call<vec2<f32>>(6_f, 7_f), // ddy
- b->Call<vec2<i32>>(6_i, 7_i)); // offset
+ auto* coords = b->Call<vec2<f32>>(1_f, 2_f);
+ auto* ddx = b->Call<vec2<f32>>(4_f, 5_f);
+ auto* ddy = b->Call<vec2<f32>>(6_f, 7_f);
+ auto* offset = b->Call<vec2<i32>>(6_i, 7_i);
+ return b->ExprList(kTextureName, // t
+ kSamplerName, // s
+ coords,
+ 3_u, // array_index
+ ddx, ddy, offset);
},
/* returns value */ true,
},
@@ -1865,11 +1908,12 @@
TextureDataType::kF32,
"textureSampleGrad",
[](ProgramBuilder* b) {
- return b->ExprList(kTextureName, // t
- kSamplerName, // s
- b->Call<vec3<f32>>(1_f, 2_f, 3_f), // coords
- b->Call<vec3<f32>>(4_f, 5_f, 6_f), // ddx
- b->Call<vec3<f32>>(7_f, 8_f, 9_f)); // ddy
+ auto* coords = b->Call<vec3<f32>>(1_f, 2_f, 3_f);
+ auto* ddx = b->Call<vec3<f32>>(4_f, 5_f, 6_f);
+ auto* ddy = b->Call<vec3<f32>>(7_f, 8_f, 9_f);
+ return b->ExprList(kTextureName, // t
+ kSamplerName, // s
+ coords, ddx, ddy);
},
/* returns value */ true,
},
@@ -1887,12 +1931,13 @@
TextureDataType::kF32,
"textureSampleGrad",
[](ProgramBuilder* b) {
- return b->ExprList(kTextureName, // t
- kSamplerName, // s
- b->Call<vec3<f32>>(1_f, 2_f, 3_f), // coords
- b->Call<vec3<f32>>(4_f, 5_f, 6_f), // ddx
- b->Call<vec3<f32>>(7_f, 8_f, 9_f), // ddy
- b->Call<vec3<i32>>(0_i, 1_i, 2_i)); // offset
+ auto* coords = b->Call<vec3<f32>>(1_f, 2_f, 3_f);
+ auto* ddx = b->Call<vec3<f32>>(4_f, 5_f, 6_f);
+ auto* ddy = b->Call<vec3<f32>>(7_f, 8_f, 9_f);
+ auto* offset = b->Call<vec3<i32>>(0_i, 1_i, 2_i);
+ return b->ExprList(kTextureName, // t
+ kSamplerName, // s
+ coords, ddx, ddy, offset);
},
/* returns value */ true,
},
@@ -1909,11 +1954,12 @@
TextureDataType::kF32,
"textureSampleGrad",
[](ProgramBuilder* b) {
- return b->ExprList(kTextureName, // t
- kSamplerName, // s
- b->Call<vec3<f32>>(1_f, 2_f, 3_f), // coords
- b->Call<vec3<f32>>(4_f, 5_f, 6_f), // ddx
- b->Call<vec3<f32>>(7_f, 8_f, 9_f)); // ddy
+ auto* coords = b->Call<vec3<f32>>(1_f, 2_f, 3_f);
+ auto* ddx = b->Call<vec3<f32>>(4_f, 5_f, 6_f);
+ auto* ddy = b->Call<vec3<f32>>(7_f, 8_f, 9_f);
+ return b->ExprList(kTextureName, // t
+ kSamplerName, // s
+ coords, ddx, ddy);
},
/* returns value */ true,
},
@@ -1931,12 +1977,14 @@
TextureDataType::kF32,
"textureSampleGrad",
[](ProgramBuilder* b) {
- return b->ExprList(kTextureName, // t
- kSamplerName, // s
- b->Call<vec3<f32>>(1_f, 2_f, 3_f), // coords
- 4_u, // array_index
- b->Call<vec3<f32>>(5_f, 6_f, 7_f), // ddx
- b->Call<vec3<f32>>(8_f, 9_f, 10_f)); // ddy
+ auto* coords = b->Call<vec3<f32>>(1_f, 2_f, 3_f);
+ auto* ddx = b->Call<vec3<f32>>(5_f, 6_f, 7_f);
+ auto* ddy = b->Call<vec3<f32>>(8_f, 9_f, 10_f);
+ return b->ExprList(kTextureName, // t
+ kSamplerName, // s
+ coords,
+ 4_u, // array_index
+ ddx, ddy);
},
/* returns value */ true,
},
@@ -1972,11 +2020,13 @@
TextureDataType::kF32,
"textureSampleCompare",
[](ProgramBuilder* b) {
- return b->ExprList(kTextureName, // t
- kSamplerName, // s
- b->Call<vec2<f32>>(1_f, 2_f), // coords
- 3_f, // depth_ref
- b->Call<vec2<i32>>(4_i, 5_i)); // offset
+ auto* coords = b->Call<vec2<f32>>(1_f, 2_f);
+ auto* offset = b->Call<vec2<i32>>(4_i, 5_i);
+ return b->ExprList(kTextureName, // t
+ kSamplerName, // s
+ coords,
+ 3_f, // depth_ref
+ offset);
},
/* returns value */ true,
},
@@ -2015,12 +2065,14 @@
TextureDataType::kF32,
"textureSampleCompare",
[](ProgramBuilder* b) {
- return b->ExprList(kTextureName, // t
- kSamplerName, // s
- b->Call<vec2<f32>>(1_f, 2_f), // coords
- 4_u, // array_index
- 3_f, // depth_ref
- b->Call<vec2<i32>>(5_i, 6_i)); // offset
+ auto* coords = b->Call<vec2<f32>>(1_f, 2_f);
+ auto* offset = b->Call<vec2<i32>>(5_i, 6_i);
+ return b->ExprList(kTextureName, // t
+ kSamplerName, // s
+ coords,
+ 4_u, // array_index
+ 3_f, // depth_ref
+ offset);
},
/* returns value */ true,
},
@@ -2096,11 +2148,13 @@
TextureDataType::kF32,
"textureSampleCompareLevel",
[](ProgramBuilder* b) {
- return b->ExprList(kTextureName, // t
- kSamplerName, // s
- b->Call<vec2<f32>>(1_f, 2_f), // coords
- 3_f, // depth_ref
- b->Call<vec2<i32>>(4_i, 5_i)); // offset
+ auto* coords = b->Call<vec2<f32>>(1_f, 2_f);
+ auto* offset = b->Call<vec2<i32>>(4_i, 5_i);
+ return b->ExprList(kTextureName, // t
+ kSamplerName, // s
+ coords,
+ 3_f, // depth_ref
+ offset);
},
/* returns value */ true,
},
@@ -2139,12 +2193,14 @@
TextureDataType::kF32,
"textureSampleCompareLevel",
[](ProgramBuilder* b) {
- return b->ExprList(kTextureName, // t
- kSamplerName, // s
- b->Call<vec2<f32>>(1_f, 2_f), // coords
- 3_i, // array_index
- 4_f, // depth_ref
- b->Call<vec2<i32>>(5_i, 6_i)); // offset
+ auto* coords = b->Call<vec2<f32>>(1_f, 2_f);
+ auto* offset = b->Call<vec2<i32>>(5_i, 6_i);
+ return b->ExprList(kTextureName, // t
+ kSamplerName, // s
+ coords,
+ 3_i, // array_index
+ 4_f, // depth_ref
+ offset);
},
/* returns value */ true,
},
@@ -2169,7 +2225,8 @@
},
{
ValidTextureOverload::kSampleCompareLevelDepthCubeArrayF32,
- "textureSampleCompareLevel(t : texture_depth_cube_array,\n"
+ "textureSampleCompareLevel(t : "
+ "texture_depth_cube_array,\n"
" s : sampler_comparison,\n"
" coords : vec3<f32>,\n"
" array_index : i32,\n"
@@ -2512,15 +2569,17 @@
TextureDataType::kF32,
"textureStore",
[](ProgramBuilder* b) {
- return b->ExprList(kTextureName, // t
- b->Call<vec2<i32>>(1_i, 2_i), // coords
- b->Call<vec4<f32>>(3_f, 4_f, 5_f, 6_f)); // value
+ auto* coords = b->Call<vec2<i32>>(1_i, 2_i);
+ auto* value = b->Call<vec4<f32>>(3_f, 4_f, 5_f, 6_f);
+ return b->ExprList(kTextureName, // t
+ coords, value);
},
/* returns value */ false,
},
{
ValidTextureOverload::kStoreWO2dArrayRgba32float,
- "textureStore(t : texture_storage_2d_array<rgba32float>,\n"
+ "textureStore(t : "
+ "texture_storage_2d_array<rgba32float>,\n"
" coords : vec2<u32>,\n"
" array_index : u32,\n"
" value : vec4<T>)",
@@ -2530,10 +2589,12 @@
TextureDataType::kF32,
"textureStore",
[](ProgramBuilder* b) {
- return b->ExprList(kTextureName, // t
- b->Call<vec2<u32>>(1_u, 2_u), // coords
- 3_u, // array_index
- b->Call<vec4<f32>>(4_f, 5_f, 6_f, 7_f)); // value
+ auto* coords = b->Call<vec2<u32>>(1_u, 2_u);
+ auto* value = b->Call<vec4<f32>>(4_f, 5_f, 6_f, 7_f);
+ return b->ExprList(kTextureName, // t
+ coords,
+ 3_u, // array_index
+ value);
},
/* returns value */ false,
},
@@ -2548,9 +2609,10 @@
TextureDataType::kF32,
"textureStore",
[](ProgramBuilder* b) {
- return b->ExprList(kTextureName, // t
- b->Call<vec3<u32>>(1_u, 2_u, 3_u), // coords
- b->Call<vec4<f32>>(4_f, 5_f, 6_f, 7_f)); // value
+ auto* coords = b->Call<vec3<u32>>(1_u, 2_u, 3_u);
+ auto* value = b->Call<vec4<f32>>(4_f, 5_f, 6_f, 7_f);
+ return b->ExprList(kTextureName, // t
+ coords, value);
},
/* returns value */ false,
},
diff --git a/src/tint/lang/wgsl/ast/transform/builtin_polyfill.cc b/src/tint/lang/wgsl/ast/transform/builtin_polyfill.cc
index a222570..101c72a 100644
--- a/src/tint/lang/wgsl/ast/transform/builtin_polyfill.cc
+++ b/src/tint/lang/wgsl/ast/transform/builtin_polyfill.cc
@@ -888,6 +888,8 @@
return name;
}
+ /// Builds the polyfill function for the `dot4I8Packed` builtin
+ /// @return the polyfill function name
Symbol Dot4I8Packed() {
using vec4i = vec4<i32>;
using vec4u = vec4<u32>;
@@ -916,6 +918,8 @@
return name;
}
+ /// Builds the polyfill function for the `dot4U8Packed` builtin
+ /// @return the polyfill function name
Symbol Dot4U8Packed() {
using vec4u = vec4<u32>;
auto name = b.Symbols().New("tint_dot4_u8_packed");
@@ -940,6 +944,55 @@
return name;
}
+ /// Builds the polyfill function for the `pack4xI8` builtin
+ /// @return the polyfill function name
+ Symbol Pack4xI8() {
+ using vec4i = vec4<i32>;
+ using vec4u = vec4<u32>;
+
+ auto name = b.Symbols().New("tint_pack_4xi8");
+
+ auto body = tint::Vector{
+ // const n = vec4u(0, 8, 16, 24);
+ // let a_i8 = vec4u((a & vec4i(0xff)) << n);
+ // return dot(a_i8, vec4u(1));
+ b.Decl(b.Const("n", b.Call<vec4u>(0_a, 8_a, 16_a, 24_a))),
+ b.Decl(b.Let("a_i8", b.Call<vec4u>(b.Shl(b.And("a", b.Call<vec4i>(0xff_a)), "n")))),
+ b.Return(b.Call("dot", "a_i8", b.Call<vec4u>(1_a))),
+ };
+ b.Func(name,
+ tint::Vector{
+ b.Param("a", b.ty.vec4<i32>()),
+ },
+ b.ty.u32(), body);
+
+ return name;
+ }
+
+ /// Builds the polyfill function for the `pack4xU8` builtin
+ /// @return the polyfill function name
+ Symbol Pack4xU8() {
+ using vec4u = vec4<u32>;
+
+ auto name = b.Symbols().New("tint_pack_4xu8");
+
+ auto body = tint::Vector{
+ // const n = vec4u(0, 8, 16, 24);
+ // let a_u8 = (a & vec4u(0xff)) << n;
+ // return dot(a_u8, vec4u(1));
+ b.Decl(b.Const("n", b.Call<vec4u>(0_a, 8_a, 16_a, 24_a))),
+ b.Decl(b.Let("a_u8", b.Shl(b.And("a", b.Call<vec4u>(0xff_a)), "n"))),
+ b.Return(b.Call("dot", "a_u8", b.Call<vec4u>(1_a))),
+ };
+ b.Func(name,
+ tint::Vector{
+ b.Param("a", b.ty.vec4<u32>()),
+ },
+ b.ty.u32(), body);
+
+ return name;
+ }
+
////////////////////////////////////////////////////////////////////////////
// Inline polyfills
////////////////////////////////////////////////////////////////////////////
@@ -1338,6 +1391,22 @@
return Symbol{};
}
+ case wgsl::BuiltinFn::kPack4XI8: {
+ if (cfg.builtins.pack_unpack_4x8) {
+ return builtin_polyfills.GetOrCreate(builtin,
+ [&] { return Pack4xI8(); });
+ }
+ return Symbol{};
+ }
+
+ case wgsl::BuiltinFn::kPack4XU8: {
+ if (cfg.builtins.pack_unpack_4x8) {
+ return builtin_polyfills.GetOrCreate(builtin,
+ [&] { return Pack4xU8(); });
+ }
+ return Symbol{};
+ }
+
default:
return Symbol{};
}
diff --git a/src/tint/lang/wgsl/ast/transform/builtin_polyfill.h b/src/tint/lang/wgsl/ast/transform/builtin_polyfill.h
index 86059b6..c220699 100644
--- a/src/tint/lang/wgsl/ast/transform/builtin_polyfill.h
+++ b/src/tint/lang/wgsl/ast/transform/builtin_polyfill.h
@@ -100,6 +100,8 @@
bool workgroup_uniform_load = false;
/// Should `dot4I8Packed()` and `dot4U8Packed()` be polyfilled?
bool dot_4x8_packed = false;
+ /// Should `pack4xI8()` and `pack4xU8()` be polyfilled?
+ bool pack_unpack_4x8 = false;
};
/// Config is consumed by the BuiltinPolyfill transform.
diff --git a/src/tint/lang/wgsl/ast/transform/builtin_polyfill_test.cc b/src/tint/lang/wgsl/ast/transform/builtin_polyfill_test.cc
index b33c31a..d784775 100644
--- a/src/tint/lang/wgsl/ast/transform/builtin_polyfill_test.cc
+++ b/src/tint/lang/wgsl/ast/transform/builtin_polyfill_test.cc
@@ -4060,6 +4060,7 @@
DataMap polyfillPacked4x8IntegerDotProduct() {
BuiltinPolyfill::Builtins builtins;
builtins.dot_4x8_packed = true;
+ builtins.pack_unpack_4x8 = true;
DataMap data;
data.Add<BuiltinPolyfill::Config>(builtins);
return data;
@@ -4123,6 +4124,58 @@
EXPECT_EQ(expect, str(got));
}
+TEST_F(BuiltinPolyfillTest, Pack4xI8) {
+ auto* src = R"(
+fn f() {
+ let v1 = vec4i(127, 128, -128, -129);
+ _ = pack4xI8(v1);
+}
+)";
+
+ auto* expect = R"(
+fn tint_pack_4xi8(a : vec4<i32>) -> u32 {
+ const n = vec4<u32>(0, 8, 16, 24);
+ let a_i8 = vec4<u32>(((a & vec4<i32>(255)) << n));
+ return dot(a_i8, vec4<u32>(1));
+}
+
+fn f() {
+ let v1 = vec4i(127, 128, -(128), -(129));
+ _ = tint_pack_4xi8(v1);
+}
+)";
+
+ auto got = Run<BuiltinPolyfill>(src, polyfillPacked4x8IntegerDotProduct());
+
+ EXPECT_EQ(expect, str(got));
+}
+
+TEST_F(BuiltinPolyfillTest, Pack4xU8) {
+ auto* src = R"(
+fn f() {
+ let v1 = vec4u(0, 254, 255, 256);
+ _ = pack4xU8(v1);
+}
+)";
+
+ auto* expect = R"(
+fn tint_pack_4xu8(a : vec4<u32>) -> u32 {
+ const n = vec4<u32>(0, 8, 16, 24);
+ let a_u8 = ((a & vec4<u32>(255)) << n);
+ return dot(a_u8, vec4<u32>(1));
+}
+
+fn f() {
+ let v1 = vec4u(0, 254, 255, 256);
+ _ = tint_pack_4xu8(v1);
+}
+)";
+
+ auto got = Run<BuiltinPolyfill>(src, polyfillPacked4x8IntegerDotProduct());
+
+ EXPECT_EQ(expect, str(got));
+}
+
////////////////////////////////////////////////////////////////////////////////
// Polyfill combinations
////////////////////////////////////////////////////////////////////////////////
diff --git a/src/tint/lang/wgsl/ast/transform/canonicalize_entry_point_io.cc b/src/tint/lang/wgsl/ast/transform/canonicalize_entry_point_io.cc
index 1408dcc..e0ec04a 100644
--- a/src/tint/lang/wgsl/ast/transform/canonicalize_entry_point_io.cc
+++ b/src/tint/lang/wgsl/ast/transform/canonicalize_entry_point_io.cc
@@ -354,7 +354,18 @@
: b.Symbols().New(name);
wrapper_struct_param_members.Push({b.Member(symbol, ast_type, std::move(attrs)),
location, /* index */ std::nullopt, color});
- return b.MemberAccessor(InputStructSymbol(), symbol);
+ const Expression* expr = b.MemberAccessor(InputStructSymbol(), symbol);
+
+ // If this is a fragment position builtin and we're targeting D3D, we need to invert the
+ // 'w' component of the vector.
+ if (cfg.shader_style == ShaderStyle::kHlsl &&
+ builtin_attr == core::BuiltinValue::kPosition) {
+ auto* xyz = b.MemberAccessor(expr, "xyz");
+ auto* w = b.MemberAccessor(b.MemberAccessor(InputStructSymbol(), symbol), "w");
+ expr = b.Call<vec4<f32>>(xyz, b.Div(1_a, w));
+ }
+
+ return expr;
}
}
@@ -552,7 +563,8 @@
/// Comparison function used to reorder struct members such that all members with
/// color attributes appear first (ordered by color slot), then location attributes (ordered by
- /// location slot), followed by those with builtin attributes (ordered by BuiltinOrder).
+ /// location slot), then index attributes (ordered by index slot), followed by those with
+ /// builtin attributes (ordered by BuiltinOrder).
/// @param x a struct member
/// @param y another struct member
/// @returns true if a comes before b
@@ -575,6 +587,15 @@
return x.location.has_value();
}
+ if (x.index.has_value() && y.index.has_value()) {
+ // Both have index attributes: smallest goes first.
+ return x.index < y.index;
+ }
+ if (x.index.has_value() != y.index.has_value()) {
+ // The member with the index goes first
+ return x.index.has_value();
+ }
+
{
auto* x_blt = GetAttribute<BuiltinAttribute>(x.member->attributes);
auto* y_blt = GetAttribute<BuiltinAttribute>(y.member->attributes);
@@ -635,8 +656,8 @@
wrapper_struct_output_members.Push({
/* member */ b.Member(name, outval.type, std::move(outval.attributes)),
/* location */ outval.location,
+ /* index */ outval.index,
/* color */ std::nullopt,
- /* index */ std::nullopt,
});
assignments.Push(b.Assign(b.MemberAccessor(wrapper_result, name), outval.value));
}
diff --git a/src/tint/lang/wgsl/ast/transform/canonicalize_entry_point_io_test.cc b/src/tint/lang/wgsl/ast/transform/canonicalize_entry_point_io_test.cc
index f30d07f..468bb82 100644
--- a/src/tint/lang/wgsl/ast/transform/canonicalize_entry_point_io_test.cc
+++ b/src/tint/lang/wgsl/ast/transform/canonicalize_entry_point_io_test.cc
@@ -184,7 +184,7 @@
@fragment
fn frag_main(tint_symbol : tint_symbol_1) {
- frag_main_inner(tint_symbol.loc1, tint_symbol.loc2, tint_symbol.coord, tint_symbol.color);
+ frag_main_inner(tint_symbol.loc1, tint_symbol.loc2, vec4<f32>(tint_symbol.coord.xyz, (1 / tint_symbol.coord.w)), tint_symbol.color);
}
)";
@@ -634,7 +634,7 @@
@fragment
fn frag_main(tint_symbol : tint_symbol_1) {
- frag_main_inner(tint_symbol.loc0, FragLocations(tint_symbol.loc1, tint_symbol.loc2), FragBuiltins(tint_symbol.coord), FragColors(tint_symbol.col3, tint_symbol.col1, tint_symbol.col2));
+ frag_main_inner(tint_symbol.loc0, FragLocations(tint_symbol.loc1, tint_symbol.loc2), FragBuiltins(vec4<f32>(tint_symbol.coord.xyz, (1 / tint_symbol.coord.w))), FragColors(tint_symbol.col3, tint_symbol.col1, tint_symbol.col2));
}
)";
@@ -697,7 +697,7 @@
@fragment
fn frag_main(tint_symbol : tint_symbol_1) {
- frag_main_inner(tint_symbol.loc0, FragLocations(tint_symbol.loc1, tint_symbol.loc2), FragBuiltins(tint_symbol.coord), FragColors(tint_symbol.col3, tint_symbol.col1, tint_symbol.col2));
+ frag_main_inner(tint_symbol.loc0, FragLocations(tint_symbol.loc1, tint_symbol.loc2), FragBuiltins(vec4<f32>(tint_symbol.coord.xyz, (1 / tint_symbol.coord.w))), FragColors(tint_symbol.col3, tint_symbol.col1, tint_symbol.col2));
}
struct FragBuiltins {
@@ -2519,7 +2519,7 @@
@fragment
fn frag_main(tint_symbol : tint_symbol_1) -> tint_symbol_2 {
- let inner_result = frag_main_inner(FragmentInput(tint_symbol.value, tint_symbol.coord, tint_symbol.loc0));
+ let inner_result = frag_main_inner(FragmentInput(tint_symbol.value, vec4<f32>(tint_symbol.coord.xyz, (1 / tint_symbol.coord.w)), tint_symbol.loc0));
var wrapper_result : tint_symbol_2;
wrapper_result.value = inner_result.value;
return wrapper_result;
@@ -2572,7 +2572,7 @@
@fragment
fn frag_main(tint_symbol : tint_symbol_1) -> tint_symbol_2 {
- let inner_result = frag_main_inner(FragmentInput(tint_symbol.value, tint_symbol.coord, tint_symbol.loc0));
+ let inner_result = frag_main_inner(FragmentInput(tint_symbol.value, vec4<f32>(tint_symbol.coord.xyz, (1 / tint_symbol.coord.w)), tint_symbol.loc0));
var wrapper_result : tint_symbol_2;
wrapper_result.value = inner_result.value;
return wrapper_result;
@@ -2693,7 +2693,7 @@
@fragment
fn frag_main(tint_symbol_1 : tint_symbol_2) {
- frag_main_inner(tint_symbol_1.ff, tint_symbol_1.c, FragmentInputExtra(tint_symbol_1.d, tint_symbol_1.pos, tint_symbol_1.a), tint_symbol_1.b);
+ frag_main_inner(tint_symbol_1.ff, tint_symbol_1.c, FragmentInputExtra(tint_symbol_1.d, vec4<f32>(tint_symbol_1.pos.xyz, (1 / tint_symbol_1.pos.w)), tint_symbol_1.a), tint_symbol_1.b);
}
)";
@@ -2783,7 +2783,7 @@
@fragment
fn frag_main(tint_symbol_1 : tint_symbol_2) {
- frag_main_inner(tint_symbol_1.ff, tint_symbol_1.c, FragmentInputExtra(tint_symbol_1.d, tint_symbol_1.pos, tint_symbol_1.a), tint_symbol_1.b);
+ frag_main_inner(tint_symbol_1.ff, tint_symbol_1.c, FragmentInputExtra(tint_symbol_1.d, vec4<f32>(tint_symbol_1.pos.xyz, (1 / tint_symbol_1.pos.w)), tint_symbol_1.a), tint_symbol_1.b);
}
struct VertexOutput {
diff --git a/src/tint/lang/wgsl/builtin_fn.cc b/src/tint/lang/wgsl/builtin_fn.cc
index c43c067..95f1fe0 100644
--- a/src/tint/lang/wgsl/builtin_fn.cc
+++ b/src/tint/lang/wgsl/builtin_fn.cc
@@ -219,6 +219,12 @@
if (name == "pack4x8unorm") {
return BuiltinFn::kPack4X8Unorm;
}
+ if (name == "pack4xI8") {
+ return BuiltinFn::kPack4XI8;
+ }
+ if (name == "pack4xU8") {
+ return BuiltinFn::kPack4XU8;
+ }
if (name == "pow") {
return BuiltinFn::kPow;
}
@@ -517,6 +523,10 @@
return "pack4x8snorm";
case BuiltinFn::kPack4X8Unorm:
return "pack4x8unorm";
+ case BuiltinFn::kPack4XI8:
+ return "pack4xI8";
+ case BuiltinFn::kPack4XU8:
+ return "pack4xU8";
case BuiltinFn::kPow:
return "pow";
case BuiltinFn::kQuantizeToF16:
@@ -695,7 +705,8 @@
}
bool IsPacked4x8IntegerDotProductBuiltin(BuiltinFn f) {
- return f == BuiltinFn::kDot4I8Packed || f == BuiltinFn::kDot4U8Packed;
+ return f == BuiltinFn::kDot4I8Packed || f == BuiltinFn::kDot4U8Packed ||
+ f == BuiltinFn::kPack4XI8 || f == BuiltinFn::kPack4XU8;
}
bool IsSubgroup(BuiltinFn f) {
diff --git a/src/tint/lang/wgsl/builtin_fn.cc.tmpl b/src/tint/lang/wgsl/builtin_fn.cc.tmpl
index a255971..375198d 100644
--- a/src/tint/lang/wgsl/builtin_fn.cc.tmpl
+++ b/src/tint/lang/wgsl/builtin_fn.cc.tmpl
@@ -101,7 +101,8 @@
}
bool IsPacked4x8IntegerDotProductBuiltin(BuiltinFn f) {
- return f == BuiltinFn::kDot4I8Packed || f == BuiltinFn::kDot4U8Packed;
+ return f == BuiltinFn::kDot4I8Packed || f == BuiltinFn::kDot4U8Packed ||
+ f == BuiltinFn::kPack4XI8 || f == BuiltinFn::kPack4XU8;
}
bool IsSubgroup(BuiltinFn f) {
diff --git a/src/tint/lang/wgsl/builtin_fn.h b/src/tint/lang/wgsl/builtin_fn.h
index d9c68da..22b2a71 100644
--- a/src/tint/lang/wgsl/builtin_fn.h
+++ b/src/tint/lang/wgsl/builtin_fn.h
@@ -107,6 +107,8 @@
kPack2X16Unorm,
kPack4X8Snorm,
kPack4X8Unorm,
+ kPack4XI8,
+ kPack4XU8,
kPow,
kQuantizeToF16,
kRadians,
@@ -246,6 +248,8 @@
BuiltinFn::kPack2X16Unorm,
BuiltinFn::kPack4X8Snorm,
BuiltinFn::kPack4X8Unorm,
+ BuiltinFn::kPack4XI8,
+ BuiltinFn::kPack4XU8,
BuiltinFn::kPow,
BuiltinFn::kQuantizeToF16,
BuiltinFn::kRadians,
@@ -367,6 +371,8 @@
"pack2x16unorm",
"pack4x8snorm",
"pack4x8unorm",
+ "pack4xI8",
+ "pack4xU8",
"pow",
"quantizeToF16",
"radians",
diff --git a/src/tint/lang/wgsl/intrinsic/data.cc b/src/tint/lang/wgsl/intrinsic/data.cc
index 677c7ad..27396f7 100644
--- a/src/tint/lang/wgsl/intrinsic/data.cc
+++ b/src/tint/lang/wgsl/intrinsic/data.cc
@@ -1886,52 +1886,52 @@
/* [27] */ TypeMatcherIndex(9),
/* [28] */ TypeMatcherIndex(13),
/* [29] */ TypeMatcherIndex(9),
- /* [30] */ TypeMatcherIndex(25),
- /* [31] */ TypeMatcherIndex(0),
- /* [32] */ TypeMatcherIndex(30),
- /* [33] */ TypeMatcherIndex(0),
- /* [34] */ TypeMatcherIndex(11),
- /* [35] */ TypeMatcherIndex(8),
- /* [36] */ TypeMatcherIndex(31),
+ /* [30] */ TypeMatcherIndex(13),
+ /* [31] */ TypeMatcherIndex(7),
+ /* [32] */ TypeMatcherIndex(13),
+ /* [33] */ TypeMatcherIndex(8),
+ /* [34] */ TypeMatcherIndex(25),
+ /* [35] */ TypeMatcherIndex(0),
+ /* [36] */ TypeMatcherIndex(30),
/* [37] */ TypeMatcherIndex(0),
- /* [38] */ TypeMatcherIndex(32),
- /* [39] */ TypeMatcherIndex(0),
- /* [40] */ TypeMatcherIndex(12),
- /* [41] */ TypeMatcherIndex(8),
- /* [42] */ TypeMatcherIndex(33),
+ /* [38] */ TypeMatcherIndex(11),
+ /* [39] */ TypeMatcherIndex(8),
+ /* [40] */ TypeMatcherIndex(31),
+ /* [41] */ TypeMatcherIndex(0),
+ /* [42] */ TypeMatcherIndex(32),
/* [43] */ TypeMatcherIndex(0),
- /* [44] */ TypeMatcherIndex(34),
- /* [45] */ TypeMatcherIndex(0),
- /* [46] */ TypeMatcherIndex(35),
+ /* [44] */ TypeMatcherIndex(12),
+ /* [45] */ TypeMatcherIndex(8),
+ /* [46] */ TypeMatcherIndex(33),
/* [47] */ TypeMatcherIndex(0),
- /* [48] */ TypeMatcherIndex(36),
+ /* [48] */ TypeMatcherIndex(34),
/* [49] */ TypeMatcherIndex(0),
- /* [50] */ TypeMatcherIndex(13),
+ /* [50] */ TypeMatcherIndex(35),
/* [51] */ TypeMatcherIndex(0),
- /* [52] */ TypeMatcherIndex(11),
- /* [53] */ TypeMatcherIndex(7),
- /* [54] */ TypeMatcherIndex(12),
- /* [55] */ TypeMatcherIndex(9),
- /* [56] */ TypeMatcherIndex(30),
- /* [57] */ TypeMatcherIndex(9),
- /* [58] */ TypeMatcherIndex(31),
+ /* [52] */ TypeMatcherIndex(36),
+ /* [53] */ TypeMatcherIndex(0),
+ /* [54] */ TypeMatcherIndex(13),
+ /* [55] */ TypeMatcherIndex(0),
+ /* [56] */ TypeMatcherIndex(11),
+ /* [57] */ TypeMatcherIndex(7),
+ /* [58] */ TypeMatcherIndex(12),
/* [59] */ TypeMatcherIndex(9),
- /* [60] */ TypeMatcherIndex(32),
+ /* [60] */ TypeMatcherIndex(30),
/* [61] */ TypeMatcherIndex(9),
- /* [62] */ TypeMatcherIndex(33),
+ /* [62] */ TypeMatcherIndex(31),
/* [63] */ TypeMatcherIndex(9),
- /* [64] */ TypeMatcherIndex(12),
- /* [65] */ TypeMatcherIndex(7),
- /* [66] */ TypeMatcherIndex(34),
+ /* [64] */ TypeMatcherIndex(32),
+ /* [65] */ TypeMatcherIndex(9),
+ /* [66] */ TypeMatcherIndex(33),
/* [67] */ TypeMatcherIndex(9),
- /* [68] */ TypeMatcherIndex(35),
- /* [69] */ TypeMatcherIndex(9),
- /* [70] */ TypeMatcherIndex(11),
- /* [71] */ TypeMatcherIndex(0),
- /* [72] */ TypeMatcherIndex(13),
- /* [73] */ TypeMatcherIndex(7),
- /* [74] */ TypeMatcherIndex(13),
- /* [75] */ TypeMatcherIndex(8),
+ /* [68] */ TypeMatcherIndex(12),
+ /* [69] */ TypeMatcherIndex(7),
+ /* [70] */ TypeMatcherIndex(34),
+ /* [71] */ TypeMatcherIndex(9),
+ /* [72] */ TypeMatcherIndex(35),
+ /* [73] */ TypeMatcherIndex(9),
+ /* [74] */ TypeMatcherIndex(11),
+ /* [75] */ TypeMatcherIndex(0),
/* [76] */ TypeMatcherIndex(11),
/* [77] */ TypeMatcherIndex(1),
/* [78] */ TypeMatcherIndex(12),
@@ -2171,19 +2171,19 @@
{
/* [17] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(35),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [18] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(35),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [19] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(60),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(64),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2219,7 +2219,7 @@
{
/* [25] */
/* usage */ core::ParameterUsage::kOffset,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2231,7 +2231,7 @@
{
/* [27] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(38),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(42),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2255,7 +2255,7 @@
{
/* [31] */
/* usage */ core::ParameterUsage::kOffset,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2291,13 +2291,13 @@
{
/* [37] */
/* usage */ core::ParameterUsage::kOffset,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [38] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(60),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(64),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2327,13 +2327,13 @@
{
/* [43] */
/* usage */ core::ParameterUsage::kOffset,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [44] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(58),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(62),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2363,13 +2363,13 @@
{
/* [49] */
/* usage */ core::ParameterUsage::kOffset,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [50] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(62),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(66),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2381,31 +2381,31 @@
{
/* [52] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(54),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(58),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [53] */
/* usage */ core::ParameterUsage::kDdx,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(54),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(58),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [54] */
/* usage */ core::ParameterUsage::kDdy,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(54),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(58),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [55] */
/* usage */ core::ParameterUsage::kOffset,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(64),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(68),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [56] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(68),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(72),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2417,7 +2417,7 @@
{
/* [58] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(54),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(58),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2429,19 +2429,19 @@
{
/* [60] */
/* usage */ core::ParameterUsage::kDdx,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(54),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(58),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [61] */
/* usage */ core::ParameterUsage::kDdy,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(54),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(58),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [62] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(60),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(64),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2471,7 +2471,7 @@
{
/* [67] */
/* usage */ core::ParameterUsage::kOffset,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2507,7 +2507,7 @@
{
/* [73] */
/* usage */ core::ParameterUsage::kOffset,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2519,7 +2519,7 @@
{
/* [75] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(36),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(40),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2537,7 +2537,7 @@
{
/* [78] */
/* usage */ core::ParameterUsage::kOffset,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2549,7 +2549,7 @@
{
/* [80] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(46),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(50),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2561,7 +2561,7 @@
{
/* [82] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(54),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(58),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2597,7 +2597,7 @@
{
/* [88] */
/* usage */ core::ParameterUsage::kOffset,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2627,7 +2627,7 @@
{
/* [93] */
/* usage */ core::ParameterUsage::kOffset,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2645,7 +2645,7 @@
{
/* [96] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(54),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(58),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2663,7 +2663,7 @@
{
/* [99] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(60),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(64),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2687,13 +2687,13 @@
{
/* [103] */
/* usage */ core::ParameterUsage::kOffset,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [104] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(58),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(62),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2717,13 +2717,13 @@
{
/* [108] */
/* usage */ core::ParameterUsage::kOffset,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [109] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(62),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(66),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2735,7 +2735,7 @@
{
/* [111] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(54),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(58),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2747,13 +2747,13 @@
{
/* [113] */
/* usage */ core::ParameterUsage::kOffset,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(64),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(68),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [114] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(68),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(72),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2765,7 +2765,7 @@
{
/* [116] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(54),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(58),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2783,7 +2783,7 @@
{
/* [119] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(66),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(70),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2795,25 +2795,25 @@
{
/* [121] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(54),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(58),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [122] */
/* usage */ core::ParameterUsage::kDdx,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(54),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(58),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [123] */
/* usage */ core::ParameterUsage::kDdy,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(54),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(58),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [124] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(58),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(62),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2837,13 +2837,13 @@
{
/* [128] */
/* usage */ core::ParameterUsage::kOffset,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [129] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(62),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(66),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2855,7 +2855,7 @@
{
/* [131] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(54),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(58),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2867,13 +2867,13 @@
{
/* [133] */
/* usage */ core::ParameterUsage::kOffset,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(64),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(68),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [134] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(68),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(72),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2885,7 +2885,7 @@
{
/* [136] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(54),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(58),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2927,7 +2927,7 @@
{
/* [143] */
/* usage */ core::ParameterUsage::kOffset,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2945,7 +2945,7 @@
{
/* [146] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(54),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(58),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2975,13 +2975,13 @@
{
/* [151] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(35),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [152] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(35),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2993,7 +2993,7 @@
{
/* [154] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(44),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(48),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3005,7 +3005,7 @@
{
/* [156] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(54),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(58),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3029,7 +3029,7 @@
{
/* [160] */
/* usage */ core::ParameterUsage::kOffset,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3047,7 +3047,7 @@
{
/* [163] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(54),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(58),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3059,7 +3059,7 @@
{
/* [165] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(58),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(62),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3077,13 +3077,13 @@
{
/* [168] */
/* usage */ core::ParameterUsage::kOffset,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [169] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(62),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(66),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3095,19 +3095,19 @@
{
/* [171] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(54),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(58),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [172] */
/* usage */ core::ParameterUsage::kOffset,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(64),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(68),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [173] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(66),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(70),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3119,7 +3119,7 @@
{
/* [175] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(54),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(58),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3131,7 +3131,7 @@
{
/* [177] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(66),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(70),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3143,7 +3143,7 @@
{
/* [179] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(54),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(58),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3167,7 +3167,7 @@
{
/* [183] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(54),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(58),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3185,7 +3185,7 @@
{
/* [186] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(70),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(74),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3209,7 +3209,7 @@
{
/* [190] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(70),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(74),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3221,7 +3221,7 @@
{
/* [192] */
/* usage */ core::ParameterUsage::kValue,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(72),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(30),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3233,7 +3233,7 @@
{
/* [194] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(70),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(74),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3245,13 +3245,13 @@
{
/* [196] */
/* usage */ core::ParameterUsage::kValue,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(74),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(32),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [197] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(38),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(42),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3281,7 +3281,7 @@
{
/* [202] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(70),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(74),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3323,25 +3323,25 @@
{
/* [209] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(70),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(74),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [210] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(70),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(74),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [211] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(70),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(74),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [212] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(70),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(74),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3371,25 +3371,25 @@
{
/* [217] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(50),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(54),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [218] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(50),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(54),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [219] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(50),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(54),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [220] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(50),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(54),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3479,7 +3479,7 @@
{
/* [235] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(56),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(60),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3539,7 +3539,7 @@
{
/* [245] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(70),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(74),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3581,7 +3581,7 @@
{
/* [252] */
/* usage */ core::ParameterUsage::kValue,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(72),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(30),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3593,13 +3593,13 @@
{
/* [254] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(70),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(74),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [255] */
/* usage */ core::ParameterUsage::kValue,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(72),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(30),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3617,7 +3617,7 @@
{
/* [258] */
/* usage */ core::ParameterUsage::kValue,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(72),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(30),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3635,7 +3635,7 @@
{
/* [261] */
/* usage */ core::ParameterUsage::kValue,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(74),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(32),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3647,13 +3647,13 @@
{
/* [263] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(70),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(74),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [264] */
/* usage */ core::ParameterUsage::kValue,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(74),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(32),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3671,13 +3671,13 @@
{
/* [267] */
/* usage */ core::ParameterUsage::kValue,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(74),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(32),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [268] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(32),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(36),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3695,7 +3695,7 @@
{
/* [271] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(36),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(40),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3713,7 +3713,7 @@
{
/* [274] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(42),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(46),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3731,7 +3731,7 @@
{
/* [277] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(48),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(52),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3755,7 +3755,7 @@
{
/* [281] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(70),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(74),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3773,7 +3773,7 @@
{
/* [284] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(70),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(74),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3791,7 +3791,7 @@
{
/* [287] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(70),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(74),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3809,7 +3809,7 @@
{
/* [290] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(70),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(74),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3827,7 +3827,7 @@
{
/* [293] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(70),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(74),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3839,7 +3839,7 @@
{
/* [295] */
/* usage */ core::ParameterUsage::kXy,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(70),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(74),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3863,7 +3863,7 @@
{
/* [299] */
/* usage */ core::ParameterUsage::kYz,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(70),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(74),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3887,7 +3887,7 @@
{
/* [303] */
/* usage */ core::ParameterUsage::kZw,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(70),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(74),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3917,7 +3917,7 @@
{
/* [308] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(32),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(36),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3929,7 +3929,7 @@
{
/* [310] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(36),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(40),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3941,7 +3941,7 @@
{
/* [312] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(38),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(42),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3953,7 +3953,7 @@
{
/* [314] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(42),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(46),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3965,7 +3965,7 @@
{
/* [316] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(44),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(48),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3977,7 +3977,7 @@
{
/* [318] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(46),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(50),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -4043,7 +4043,7 @@
{
/* [329] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(70),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(74),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -4091,7 +4091,7 @@
{
/* [337] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(70),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(74),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -4103,7 +4103,7 @@
{
/* [339] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(70),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(74),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -4115,7 +4115,7 @@
{
/* [341] */
/* usage */ core::ParameterUsage::kCoords,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(70),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(74),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -4163,7 +4163,7 @@
{
/* [349] */
/* usage */ core::ParameterUsage::kSourceLaneIndex,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(35),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -4241,13 +4241,13 @@
{
/* [362] */
/* usage */ core::ParameterUsage::kXy,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(70),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(74),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [363] */
/* usage */ core::ParameterUsage::kZw,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(70),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(74),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -4314,221 +4314,233 @@
/* [374] */
/* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(30),
- /* number_matcher_indices */ NumberMatcherIndicesIndex(6),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [375] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(32),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [376] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(34),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(6),
+ },
+ {
+ /* [377] */
/* usage */ core::ParameterUsage::kTexture,
/* type_matcher_indices */ TypeMatcherIndicesIndex(165),
/* number_matcher_indices */ NumberMatcherIndicesIndex(2),
},
{
- /* [376] */
+ /* [378] */
/* usage */ core::ParameterUsage::kTexture,
/* type_matcher_indices */ TypeMatcherIndicesIndex(166),
/* number_matcher_indices */ NumberMatcherIndicesIndex(2),
},
{
- /* [377] */
+ /* [379] */
/* usage */ core::ParameterUsage::kTexture,
/* type_matcher_indices */ TypeMatcherIndicesIndex(167),
/* number_matcher_indices */ NumberMatcherIndicesIndex(2),
},
{
- /* [378] */
+ /* [380] */
/* usage */ core::ParameterUsage::kTexture,
/* type_matcher_indices */ TypeMatcherIndicesIndex(168),
/* number_matcher_indices */ NumberMatcherIndicesIndex(2),
},
{
- /* [379] */
- /* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(53),
- /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- },
- {
- /* [380] */
- /* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(87),
- /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- },
- {
/* [381] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(76),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(31),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [382] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(78),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(87),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [383] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(98),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(76),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [384] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(104),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(78),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [385] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(108),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(98),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [386] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(106),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(104),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [387] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(110),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(108),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [388] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(114),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(106),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [389] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(112),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(110),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [390] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(116),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(114),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [391] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(120),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(112),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [392] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(118),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(116),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [393] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(122),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(120),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [394] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(126),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(118),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [395] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(124),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(122),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [396] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(128),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(126),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [397] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(132),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(124),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [398] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(130),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(128),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [399] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(134),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(132),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [400] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(138),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(130),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [401] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(136),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(134),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [402] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(140),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(138),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [403] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(144),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(136),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [404] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(142),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(140),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [405] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(146),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(144),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [406] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(150),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(142),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [407] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(148),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(146),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [408] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(152),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(150),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [409] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(156),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(148),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [410] */
/* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(152),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [411] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(156),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [412] */
+ /* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(154),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
@@ -4830,63 +4842,65 @@
/* [47] */ &core::constant::Eval::pack2x16unorm,
/* [48] */ &core::constant::Eval::pack4x8snorm,
/* [49] */ &core::constant::Eval::pack4x8unorm,
- /* [50] */ &core::constant::Eval::pow,
- /* [51] */ &core::constant::Eval::quantizeToF16,
- /* [52] */ &core::constant::Eval::radians,
- /* [53] */ &core::constant::Eval::reflect,
- /* [54] */ &core::constant::Eval::refract,
- /* [55] */ &core::constant::Eval::reverseBits,
- /* [56] */ &core::constant::Eval::round,
- /* [57] */ &core::constant::Eval::saturate,
- /* [58] */ &core::constant::Eval::select_bool,
- /* [59] */ &core::constant::Eval::select_boolvec,
- /* [60] */ &core::constant::Eval::sign,
- /* [61] */ &core::constant::Eval::sin,
- /* [62] */ &core::constant::Eval::sinh,
- /* [63] */ &core::constant::Eval::smoothstep,
- /* [64] */ &core::constant::Eval::sqrt,
- /* [65] */ &core::constant::Eval::step,
- /* [66] */ &core::constant::Eval::tan,
- /* [67] */ &core::constant::Eval::tanh,
- /* [68] */ &core::constant::Eval::transpose,
- /* [69] */ &core::constant::Eval::trunc,
- /* [70] */ &core::constant::Eval::unpack2x16float,
- /* [71] */ &core::constant::Eval::unpack2x16snorm,
- /* [72] */ &core::constant::Eval::unpack2x16unorm,
- /* [73] */ &core::constant::Eval::unpack4x8snorm,
- /* [74] */ &core::constant::Eval::unpack4x8unorm,
- /* [75] */ &core::constant::Eval::Identity,
- /* [76] */ &core::constant::Eval::Not,
- /* [77] */ &core::constant::Eval::Complement,
- /* [78] */ &core::constant::Eval::UnaryMinus,
- /* [79] */ &core::constant::Eval::Plus,
- /* [80] */ &core::constant::Eval::Minus,
- /* [81] */ &core::constant::Eval::Multiply,
- /* [82] */ &core::constant::Eval::MultiplyMatVec,
- /* [83] */ &core::constant::Eval::MultiplyVecMat,
- /* [84] */ &core::constant::Eval::MultiplyMatMat,
- /* [85] */ &core::constant::Eval::Divide,
- /* [86] */ &core::constant::Eval::Modulo,
- /* [87] */ &core::constant::Eval::Xor,
- /* [88] */ &core::constant::Eval::And,
- /* [89] */ &core::constant::Eval::Or,
- /* [90] */ &core::constant::Eval::LogicalAnd,
- /* [91] */ &core::constant::Eval::LogicalOr,
- /* [92] */ &core::constant::Eval::Equal,
- /* [93] */ &core::constant::Eval::NotEqual,
- /* [94] */ &core::constant::Eval::LessThan,
- /* [95] */ &core::constant::Eval::GreaterThan,
- /* [96] */ &core::constant::Eval::LessThanEqual,
- /* [97] */ &core::constant::Eval::GreaterThanEqual,
- /* [98] */ &core::constant::Eval::ShiftLeft,
- /* [99] */ &core::constant::Eval::ShiftRight,
- /* [100] */ &core::constant::Eval::Zero,
- /* [101] */ &core::constant::Eval::Conv,
- /* [102] */ &core::constant::Eval::VecSplat,
- /* [103] */ &core::constant::Eval::VecInitS,
- /* [104] */ &core::constant::Eval::VecInitM,
- /* [105] */ &core::constant::Eval::MatInitS,
- /* [106] */ &core::constant::Eval::MatInitV,
+ /* [50] */ &core::constant::Eval::pack4xI8,
+ /* [51] */ &core::constant::Eval::pack4xU8,
+ /* [52] */ &core::constant::Eval::pow,
+ /* [53] */ &core::constant::Eval::quantizeToF16,
+ /* [54] */ &core::constant::Eval::radians,
+ /* [55] */ &core::constant::Eval::reflect,
+ /* [56] */ &core::constant::Eval::refract,
+ /* [57] */ &core::constant::Eval::reverseBits,
+ /* [58] */ &core::constant::Eval::round,
+ /* [59] */ &core::constant::Eval::saturate,
+ /* [60] */ &core::constant::Eval::select_bool,
+ /* [61] */ &core::constant::Eval::select_boolvec,
+ /* [62] */ &core::constant::Eval::sign,
+ /* [63] */ &core::constant::Eval::sin,
+ /* [64] */ &core::constant::Eval::sinh,
+ /* [65] */ &core::constant::Eval::smoothstep,
+ /* [66] */ &core::constant::Eval::sqrt,
+ /* [67] */ &core::constant::Eval::step,
+ /* [68] */ &core::constant::Eval::tan,
+ /* [69] */ &core::constant::Eval::tanh,
+ /* [70] */ &core::constant::Eval::transpose,
+ /* [71] */ &core::constant::Eval::trunc,
+ /* [72] */ &core::constant::Eval::unpack2x16float,
+ /* [73] */ &core::constant::Eval::unpack2x16snorm,
+ /* [74] */ &core::constant::Eval::unpack2x16unorm,
+ /* [75] */ &core::constant::Eval::unpack4x8snorm,
+ /* [76] */ &core::constant::Eval::unpack4x8unorm,
+ /* [77] */ &core::constant::Eval::Identity,
+ /* [78] */ &core::constant::Eval::Not,
+ /* [79] */ &core::constant::Eval::Complement,
+ /* [80] */ &core::constant::Eval::UnaryMinus,
+ /* [81] */ &core::constant::Eval::Plus,
+ /* [82] */ &core::constant::Eval::Minus,
+ /* [83] */ &core::constant::Eval::Multiply,
+ /* [84] */ &core::constant::Eval::MultiplyMatVec,
+ /* [85] */ &core::constant::Eval::MultiplyVecMat,
+ /* [86] */ &core::constant::Eval::MultiplyMatMat,
+ /* [87] */ &core::constant::Eval::Divide,
+ /* [88] */ &core::constant::Eval::Modulo,
+ /* [89] */ &core::constant::Eval::Xor,
+ /* [90] */ &core::constant::Eval::And,
+ /* [91] */ &core::constant::Eval::Or,
+ /* [92] */ &core::constant::Eval::LogicalAnd,
+ /* [93] */ &core::constant::Eval::LogicalOr,
+ /* [94] */ &core::constant::Eval::Equal,
+ /* [95] */ &core::constant::Eval::NotEqual,
+ /* [96] */ &core::constant::Eval::LessThan,
+ /* [97] */ &core::constant::Eval::GreaterThan,
+ /* [98] */ &core::constant::Eval::LessThanEqual,
+ /* [99] */ &core::constant::Eval::GreaterThanEqual,
+ /* [100] */ &core::constant::Eval::ShiftLeft,
+ /* [101] */ &core::constant::Eval::ShiftRight,
+ /* [102] */ &core::constant::Eval::Zero,
+ /* [103] */ &core::constant::Eval::Conv,
+ /* [104] */ &core::constant::Eval::VecSplat,
+ /* [105] */ &core::constant::Eval::VecInitS,
+ /* [106] */ &core::constant::Eval::VecInitM,
+ /* [107] */ &core::constant::Eval::MatInitS,
+ /* [108] */ &core::constant::Eval::MatInitV,
};
static_assert(ConstEvalFunctionIndex::CanIndex(kConstEvalFunctions),
@@ -4902,7 +4916,7 @@
/* template_types */ TemplateTypeIndex(0),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(268),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(35),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -4915,7 +4929,7 @@
/* template_types */ TemplateTypeIndex(12),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(308),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(35),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -4928,7 +4942,7 @@
/* template_types */ TemplateTypeIndex(0),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(75),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(34),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(38),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -4941,7 +4955,7 @@
/* template_types */ TemplateTypeIndex(12),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(310),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(34),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(38),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -4954,7 +4968,7 @@
/* template_types */ TemplateTypeIndex(0),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(27),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(34),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(38),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -4967,7 +4981,7 @@
/* template_types */ TemplateTypeIndex(12),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(312),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(34),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(38),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -4980,7 +4994,7 @@
/* template_types */ TemplateTypeIndex(0),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(274),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(40),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(44),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -4993,7 +5007,7 @@
/* template_types */ TemplateTypeIndex(12),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(314),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(40),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(44),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5006,7 +5020,7 @@
/* template_types */ TemplateTypeIndex(0),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(154),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(34),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(38),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5019,7 +5033,7 @@
/* template_types */ TemplateTypeIndex(12),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(316),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(34),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(38),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5032,7 +5046,7 @@
/* template_types */ TemplateTypeIndex(0),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(80),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(34),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(38),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5045,7 +5059,7 @@
/* template_types */ TemplateTypeIndex(12),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(318),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(34),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(38),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5058,7 +5072,7 @@
/* template_types */ TemplateTypeIndex(0),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(277),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(34),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(38),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5071,7 +5085,7 @@
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(89),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(34),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(38),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5084,7 +5098,7 @@
/* template_types */ TemplateTypeIndex(3),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(320),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(34),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(38),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5097,7 +5111,7 @@
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(32),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(34),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(38),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5110,7 +5124,7 @@
/* template_types */ TemplateTypeIndex(3),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(322),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(34),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(38),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5123,7 +5137,7 @@
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(161),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(34),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(38),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5136,7 +5150,7 @@
/* template_types */ TemplateTypeIndex(3),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(324),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(34),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(38),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5149,7 +5163,7 @@
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(94),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(34),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(38),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5162,7 +5176,7 @@
/* template_types */ TemplateTypeIndex(3),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(326),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(34),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(38),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5175,7 +5189,7 @@
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(283),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(34),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(38),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5187,8 +5201,8 @@
/* num_template_numbers */ 2,
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(6),
- /* parameters */ ParameterIndex(375),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(35),
+ /* parameters */ ParameterIndex(377),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5200,8 +5214,8 @@
/* num_template_numbers */ 2,
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(6),
- /* parameters */ ParameterIndex(376),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(34),
+ /* parameters */ ParameterIndex(378),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(38),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5213,8 +5227,8 @@
/* num_template_numbers */ 2,
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(6),
- /* parameters */ ParameterIndex(377),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(34),
+ /* parameters */ ParameterIndex(379),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(38),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5226,8 +5240,8 @@
/* num_template_numbers */ 2,
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(6),
- /* parameters */ ParameterIndex(378),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(40),
+ /* parameters */ ParameterIndex(380),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(44),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5240,7 +5254,7 @@
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(238),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(34),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(38),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5253,7 +5267,7 @@
/* template_types */ TemplateTypeIndex(4),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(268),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(50),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(54),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5266,7 +5280,7 @@
/* template_types */ TemplateTypeIndex(4),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(271),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(50),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(54),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5279,7 +5293,7 @@
/* template_types */ TemplateTypeIndex(0),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(197),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(50),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(54),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5292,7 +5306,7 @@
/* template_types */ TemplateTypeIndex(4),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(274),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(50),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(54),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5305,7 +5319,7 @@
/* template_types */ TemplateTypeIndex(7),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(277),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(50),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(54),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5383,7 +5397,7 @@
/* template_types */ TemplateTypeIndex(1),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(332),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(72),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(30),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5396,7 +5410,7 @@
/* template_types */ TemplateTypeIndex(1),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(334),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(74),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(32),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5422,7 +5436,7 @@
/* template_types */ TemplateTypeIndex(1),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(338),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(72),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(30),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5435,7 +5449,7 @@
/* template_types */ TemplateTypeIndex(1),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(340),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(74),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(32),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5461,7 +5475,7 @@
/* template_types */ TemplateTypeIndex(1),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(289),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(72),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(30),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5474,7 +5488,7 @@
/* template_types */ TemplateTypeIndex(1),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(292),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(74),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(32),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5500,7 +5514,7 @@
/* template_types */ TemplateTypeIndex(1),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(344),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(72),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(30),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5513,7 +5527,7 @@
/* template_types */ TemplateTypeIndex(1),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(346),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(74),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(32),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5528,7 +5542,7 @@
/* parameters */ ParameterIndex(/* invalid */),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(96),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(100),
+ /* const_eval_fn */ ConstEvalFunctionIndex(102),
},
{
/* [49] */
@@ -5539,9 +5553,9 @@
/* template_types */ TemplateTypeIndex(35),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(50),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(54),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(100),
+ /* const_eval_fn */ ConstEvalFunctionIndex(102),
},
{
/* [50] */
@@ -5552,9 +5566,9 @@
/* template_types */ TemplateTypeIndex(27),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(217),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(50),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(54),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(75),
+ /* const_eval_fn */ ConstEvalFunctionIndex(77),
},
{
/* [51] */
@@ -5565,9 +5579,9 @@
/* template_types */ TemplateTypeIndex(27),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(50),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(54),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(102),
+ /* const_eval_fn */ ConstEvalFunctionIndex(104),
},
{
/* [52] */
@@ -5578,9 +5592,9 @@
/* template_types */ TemplateTypeIndex(27),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(205),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(50),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(54),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(103),
+ /* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
/* [53] */
@@ -5591,9 +5605,9 @@
/* template_types */ TemplateTypeIndex(27),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(295),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(50),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(54),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(104),
+ /* const_eval_fn */ ConstEvalFunctionIndex(106),
},
{
/* [54] */
@@ -5604,9 +5618,9 @@
/* template_types */ TemplateTypeIndex(27),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(298),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(50),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(54),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(104),
+ /* const_eval_fn */ ConstEvalFunctionIndex(106),
},
{
/* [55] */
@@ -5617,9 +5631,9 @@
/* template_types */ TemplateTypeIndex(27),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(301),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(50),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(54),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(104),
+ /* const_eval_fn */ ConstEvalFunctionIndex(106),
},
{
/* [56] */
@@ -5630,9 +5644,9 @@
/* template_types */ TemplateTypeIndex(27),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(362),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(50),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(54),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(104),
+ /* const_eval_fn */ ConstEvalFunctionIndex(106),
},
{
/* [57] */
@@ -5643,9 +5657,9 @@
/* template_types */ TemplateTypeIndex(27),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(364),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(50),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(54),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(104),
+ /* const_eval_fn */ ConstEvalFunctionIndex(106),
},
{
/* [58] */
@@ -5656,9 +5670,9 @@
/* template_types */ TemplateTypeIndex(27),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(366),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(50),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(54),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(104),
+ /* const_eval_fn */ ConstEvalFunctionIndex(106),
},
{
/* [59] */
@@ -5668,10 +5682,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(14),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(383),
+ /* parameters */ ParameterIndex(385),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(28),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
/* [60] */
@@ -5681,10 +5695,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(16),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(383),
+ /* parameters */ ParameterIndex(385),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(100),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
/* [61] */
@@ -5694,10 +5708,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(18),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(383),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(72),
+ /* parameters */ ParameterIndex(385),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(30),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
/* [62] */
@@ -5707,10 +5721,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(20),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(383),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(74),
+ /* parameters */ ParameterIndex(385),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(32),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
/* [63] */
@@ -5720,10 +5734,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(22),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(383),
+ /* parameters */ ParameterIndex(385),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(102),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
/* [64] */
@@ -6111,7 +6125,7 @@
/* template_types */ TemplateTypeIndex(0),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(74),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(50),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(54),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -6124,7 +6138,7 @@
/* template_types */ TemplateTypeIndex(0),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(74),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(50),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(54),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -6137,7 +6151,7 @@
/* template_types */ TemplateTypeIndex(0),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(26),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(50),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(54),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -6150,7 +6164,7 @@
/* template_types */ TemplateTypeIndex(0),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(26),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(50),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(54),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -6163,7 +6177,7 @@
/* template_types */ TemplateTypeIndex(0),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(153),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(50),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(54),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -6176,7 +6190,7 @@
/* template_types */ TemplateTypeIndex(0),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(79),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(50),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(54),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -6425,7 +6439,7 @@
/* parameters */ ParameterIndex(/* invalid */),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(90),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(100),
+ /* const_eval_fn */ ConstEvalFunctionIndex(102),
},
{
/* [118] */
@@ -6438,7 +6452,7 @@
/* parameters */ ParameterIndex(/* invalid */),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(10),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(100),
+ /* const_eval_fn */ ConstEvalFunctionIndex(102),
},
{
/* [119] */
@@ -6451,7 +6465,7 @@
/* parameters */ ParameterIndex(213),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(10),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(75),
+ /* const_eval_fn */ ConstEvalFunctionIndex(77),
},
{
/* [120] */
@@ -6464,7 +6478,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(10),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(102),
+ /* const_eval_fn */ ConstEvalFunctionIndex(104),
},
{
/* [121] */
@@ -6477,7 +6491,7 @@
/* parameters */ ParameterIndex(205),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(10),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(103),
+ /* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
/* [122] */
@@ -6490,7 +6504,7 @@
/* parameters */ ParameterIndex(295),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(10),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(104),
+ /* const_eval_fn */ ConstEvalFunctionIndex(106),
},
{
/* [123] */
@@ -6503,7 +6517,7 @@
/* parameters */ ParameterIndex(298),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(10),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(104),
+ /* const_eval_fn */ ConstEvalFunctionIndex(106),
},
{
/* [124] */
@@ -6513,10 +6527,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(14),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(382),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(54),
+ /* parameters */ ParameterIndex(384),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(58),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
/* [125] */
@@ -6526,10 +6540,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(16),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(382),
+ /* parameters */ ParameterIndex(384),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(92),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
/* [126] */
@@ -6539,10 +6553,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(18),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(382),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(64),
+ /* parameters */ ParameterIndex(384),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(68),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
/* [127] */
@@ -6552,10 +6566,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(20),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(382),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(40),
+ /* parameters */ ParameterIndex(384),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(44),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
/* [128] */
@@ -6565,10 +6579,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(22),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(382),
+ /* parameters */ ParameterIndex(384),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(94),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
/* [129] */
@@ -6579,7 +6593,7 @@
/* template_types */ TemplateTypeIndex(0),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(268),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(35),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -6592,7 +6606,7 @@
/* template_types */ TemplateTypeIndex(0),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(75),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(35),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -6605,7 +6619,7 @@
/* template_types */ TemplateTypeIndex(0),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(27),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(35),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -6618,7 +6632,7 @@
/* template_types */ TemplateTypeIndex(0),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(274),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(35),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -6631,7 +6645,7 @@
/* template_types */ TemplateTypeIndex(0),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(154),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(35),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -6644,7 +6658,7 @@
/* template_types */ TemplateTypeIndex(0),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(80),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(35),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -6657,7 +6671,7 @@
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(89),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(35),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -6670,7 +6684,7 @@
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(32),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(35),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -6683,7 +6697,7 @@
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(161),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(35),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -6696,7 +6710,7 @@
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(94),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(35),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -6711,7 +6725,7 @@
/* parameters */ ParameterIndex(/* invalid */),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(84),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(100),
+ /* const_eval_fn */ ConstEvalFunctionIndex(102),
},
{
/* [140] */
@@ -6722,9 +6736,9 @@
/* template_types */ TemplateTypeIndex(35),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(70),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(74),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(100),
+ /* const_eval_fn */ ConstEvalFunctionIndex(102),
},
{
/* [141] */
@@ -6735,9 +6749,9 @@
/* template_types */ TemplateTypeIndex(27),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(209),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(70),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(74),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(75),
+ /* const_eval_fn */ ConstEvalFunctionIndex(77),
},
{
/* [142] */
@@ -6748,9 +6762,9 @@
/* template_types */ TemplateTypeIndex(27),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(70),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(74),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(102),
+ /* const_eval_fn */ ConstEvalFunctionIndex(104),
},
{
/* [143] */
@@ -6761,9 +6775,9 @@
/* template_types */ TemplateTypeIndex(27),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(205),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(70),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(74),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(103),
+ /* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
/* [144] */
@@ -6773,10 +6787,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(14),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(381),
+ /* parameters */ ParameterIndex(383),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(26),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
/* [145] */
@@ -6786,10 +6800,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(16),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(381),
+ /* parameters */ ParameterIndex(383),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(86),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
/* [146] */
@@ -6799,10 +6813,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(18),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(381),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* parameters */ ParameterIndex(383),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(56),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
/* [147] */
@@ -6812,10 +6826,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(20),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(381),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(34),
+ /* parameters */ ParameterIndex(383),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(38),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
/* [148] */
@@ -6825,10 +6839,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(22),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(381),
+ /* parameters */ ParameterIndex(383),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(88),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
/* [149] */
@@ -6841,7 +6855,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(81),
+ /* const_eval_fn */ ConstEvalFunctionIndex(83),
},
{
/* [150] */
@@ -6854,7 +6868,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(81),
+ /* const_eval_fn */ ConstEvalFunctionIndex(83),
},
{
/* [151] */
@@ -6867,7 +6881,7 @@
/* parameters */ ParameterIndex(223),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(81),
+ /* const_eval_fn */ ConstEvalFunctionIndex(83),
},
{
/* [152] */
@@ -6880,7 +6894,7 @@
/* parameters */ ParameterIndex(350),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(81),
+ /* const_eval_fn */ ConstEvalFunctionIndex(83),
},
{
/* [153] */
@@ -6893,7 +6907,7 @@
/* parameters */ ParameterIndex(355),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(12),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(2),
- /* const_eval_fn */ ConstEvalFunctionIndex(81),
+ /* const_eval_fn */ ConstEvalFunctionIndex(83),
},
{
/* [154] */
@@ -6906,7 +6920,7 @@
/* parameters */ ParameterIndex(354),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(12),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(2),
- /* const_eval_fn */ ConstEvalFunctionIndex(81),
+ /* const_eval_fn */ ConstEvalFunctionIndex(83),
},
{
/* [155] */
@@ -6919,7 +6933,7 @@
/* parameters */ ParameterIndex(356),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(3),
- /* const_eval_fn */ ConstEvalFunctionIndex(82),
+ /* const_eval_fn */ ConstEvalFunctionIndex(84),
},
{
/* [156] */
@@ -6932,7 +6946,7 @@
/* parameters */ ParameterIndex(358),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(83),
+ /* const_eval_fn */ ConstEvalFunctionIndex(85),
},
{
/* [157] */
@@ -6945,7 +6959,7 @@
/* parameters */ ParameterIndex(360),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(12),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(20),
- /* const_eval_fn */ ConstEvalFunctionIndex(84),
+ /* const_eval_fn */ ConstEvalFunctionIndex(86),
},
{
/* [158] */
@@ -7400,7 +7414,7 @@
/* parameters */ ParameterIndex(/* invalid */),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(104),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(100),
+ /* const_eval_fn */ ConstEvalFunctionIndex(102),
},
{
/* [193] */
@@ -7410,10 +7424,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(36),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(384),
+ /* parameters */ ParameterIndex(386),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(104),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(75),
+ /* const_eval_fn */ ConstEvalFunctionIndex(77),
},
{
/* [194] */
@@ -7426,7 +7440,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(104),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(105),
+ /* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
/* [195] */
@@ -7439,7 +7453,7 @@
/* parameters */ ParameterIndex(209),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(104),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(106),
+ /* const_eval_fn */ ConstEvalFunctionIndex(108),
},
{
/* [196] */
@@ -7449,10 +7463,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(16),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(385),
+ /* parameters */ ParameterIndex(387),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(106),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
/* [197] */
@@ -7462,10 +7476,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(14),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(386),
+ /* parameters */ ParameterIndex(388),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(108),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
/* [198] */
@@ -7478,7 +7492,7 @@
/* parameters */ ParameterIndex(/* invalid */),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(110),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(100),
+ /* const_eval_fn */ ConstEvalFunctionIndex(102),
},
{
/* [199] */
@@ -7488,10 +7502,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(36),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(387),
+ /* parameters */ ParameterIndex(389),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(110),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(75),
+ /* const_eval_fn */ ConstEvalFunctionIndex(77),
},
{
/* [200] */
@@ -7504,7 +7518,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(110),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(105),
+ /* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
/* [201] */
@@ -7517,7 +7531,7 @@
/* parameters */ ParameterIndex(213),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(110),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(106),
+ /* const_eval_fn */ ConstEvalFunctionIndex(108),
},
{
/* [202] */
@@ -7527,10 +7541,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(16),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(388),
+ /* parameters */ ParameterIndex(390),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(112),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
/* [203] */
@@ -7540,10 +7554,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(14),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(389),
+ /* parameters */ ParameterIndex(391),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(114),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
/* [204] */
@@ -7556,7 +7570,7 @@
/* parameters */ ParameterIndex(/* invalid */),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(116),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(100),
+ /* const_eval_fn */ ConstEvalFunctionIndex(102),
},
{
/* [205] */
@@ -7566,10 +7580,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(36),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(390),
+ /* parameters */ ParameterIndex(392),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(116),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(75),
+ /* const_eval_fn */ ConstEvalFunctionIndex(77),
},
{
/* [206] */
@@ -7582,7 +7596,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(116),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(105),
+ /* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
/* [207] */
@@ -7595,7 +7609,7 @@
/* parameters */ ParameterIndex(217),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(116),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(106),
+ /* const_eval_fn */ ConstEvalFunctionIndex(108),
},
{
/* [208] */
@@ -7605,10 +7619,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(16),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(391),
+ /* parameters */ ParameterIndex(393),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(118),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
/* [209] */
@@ -7618,10 +7632,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(14),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(392),
+ /* parameters */ ParameterIndex(394),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(120),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
/* [210] */
@@ -7634,7 +7648,7 @@
/* parameters */ ParameterIndex(/* invalid */),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(122),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(100),
+ /* const_eval_fn */ ConstEvalFunctionIndex(102),
},
{
/* [211] */
@@ -7644,10 +7658,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(36),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(393),
+ /* parameters */ ParameterIndex(395),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(122),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(75),
+ /* const_eval_fn */ ConstEvalFunctionIndex(77),
},
{
/* [212] */
@@ -7660,7 +7674,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(122),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(105),
+ /* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
/* [213] */
@@ -7673,7 +7687,7 @@
/* parameters */ ParameterIndex(209),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(122),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(106),
+ /* const_eval_fn */ ConstEvalFunctionIndex(108),
},
{
/* [214] */
@@ -7683,10 +7697,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(16),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(394),
+ /* parameters */ ParameterIndex(396),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(124),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
/* [215] */
@@ -7696,10 +7710,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(14),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(395),
+ /* parameters */ ParameterIndex(397),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(126),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
/* [216] */
@@ -7712,7 +7726,7 @@
/* parameters */ ParameterIndex(/* invalid */),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(128),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(100),
+ /* const_eval_fn */ ConstEvalFunctionIndex(102),
},
{
/* [217] */
@@ -7722,10 +7736,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(36),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(396),
+ /* parameters */ ParameterIndex(398),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(128),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(75),
+ /* const_eval_fn */ ConstEvalFunctionIndex(77),
},
{
/* [218] */
@@ -7738,7 +7752,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(128),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(105),
+ /* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
/* [219] */
@@ -7751,7 +7765,7 @@
/* parameters */ ParameterIndex(213),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(128),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(106),
+ /* const_eval_fn */ ConstEvalFunctionIndex(108),
},
{
/* [220] */
@@ -7761,10 +7775,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(16),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(397),
+ /* parameters */ ParameterIndex(399),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(130),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
/* [221] */
@@ -7774,10 +7788,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(14),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(398),
+ /* parameters */ ParameterIndex(400),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(132),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
/* [222] */
@@ -7790,7 +7804,7 @@
/* parameters */ ParameterIndex(/* invalid */),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(134),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(100),
+ /* const_eval_fn */ ConstEvalFunctionIndex(102),
},
{
/* [223] */
@@ -7800,10 +7814,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(36),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(399),
+ /* parameters */ ParameterIndex(401),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(134),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(75),
+ /* const_eval_fn */ ConstEvalFunctionIndex(77),
},
{
/* [224] */
@@ -7816,7 +7830,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(134),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(105),
+ /* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
/* [225] */
@@ -7829,7 +7843,7 @@
/* parameters */ ParameterIndex(217),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(134),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(106),
+ /* const_eval_fn */ ConstEvalFunctionIndex(108),
},
{
/* [226] */
@@ -7839,10 +7853,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(16),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(400),
+ /* parameters */ ParameterIndex(402),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(136),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
/* [227] */
@@ -7852,10 +7866,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(14),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(401),
+ /* parameters */ ParameterIndex(403),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(138),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
/* [228] */
@@ -7868,7 +7882,7 @@
/* parameters */ ParameterIndex(/* invalid */),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(140),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(100),
+ /* const_eval_fn */ ConstEvalFunctionIndex(102),
},
{
/* [229] */
@@ -7878,10 +7892,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(36),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(402),
+ /* parameters */ ParameterIndex(404),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(140),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(75),
+ /* const_eval_fn */ ConstEvalFunctionIndex(77),
},
{
/* [230] */
@@ -7894,7 +7908,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(140),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(105),
+ /* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
/* [231] */
@@ -7907,7 +7921,7 @@
/* parameters */ ParameterIndex(209),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(140),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(106),
+ /* const_eval_fn */ ConstEvalFunctionIndex(108),
},
{
/* [232] */
@@ -7917,10 +7931,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(16),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(403),
+ /* parameters */ ParameterIndex(405),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(142),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
/* [233] */
@@ -7930,10 +7944,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(14),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(404),
+ /* parameters */ ParameterIndex(406),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(144),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
/* [234] */
@@ -7946,7 +7960,7 @@
/* parameters */ ParameterIndex(/* invalid */),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(146),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(100),
+ /* const_eval_fn */ ConstEvalFunctionIndex(102),
},
{
/* [235] */
@@ -7956,10 +7970,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(36),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(405),
+ /* parameters */ ParameterIndex(407),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(146),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(75),
+ /* const_eval_fn */ ConstEvalFunctionIndex(77),
},
{
/* [236] */
@@ -7972,7 +7986,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(146),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(105),
+ /* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
/* [237] */
@@ -7985,7 +7999,7 @@
/* parameters */ ParameterIndex(213),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(146),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(106),
+ /* const_eval_fn */ ConstEvalFunctionIndex(108),
},
{
/* [238] */
@@ -7995,10 +8009,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(16),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(406),
+ /* parameters */ ParameterIndex(408),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(148),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
/* [239] */
@@ -8008,10 +8022,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(14),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(407),
+ /* parameters */ ParameterIndex(409),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(150),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
/* [240] */
@@ -8024,7 +8038,7 @@
/* parameters */ ParameterIndex(/* invalid */),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(152),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(100),
+ /* const_eval_fn */ ConstEvalFunctionIndex(102),
},
{
/* [241] */
@@ -8034,10 +8048,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(36),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(408),
+ /* parameters */ ParameterIndex(410),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(152),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(75),
+ /* const_eval_fn */ ConstEvalFunctionIndex(77),
},
{
/* [242] */
@@ -8050,7 +8064,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(152),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(105),
+ /* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
/* [243] */
@@ -8063,7 +8077,7 @@
/* parameters */ ParameterIndex(217),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(152),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(106),
+ /* const_eval_fn */ ConstEvalFunctionIndex(108),
},
{
/* [244] */
@@ -8073,10 +8087,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(16),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(409),
+ /* parameters */ ParameterIndex(411),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(154),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
/* [245] */
@@ -8086,10 +8100,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(14),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(410),
+ /* parameters */ ParameterIndex(412),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(156),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
/* [246] */
@@ -8100,7 +8114,7 @@
/* template_types */ TemplateTypeIndex(0),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(27),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(35),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -8113,7 +8127,7 @@
/* template_types */ TemplateTypeIndex(0),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(80),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(35),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -8126,7 +8140,7 @@
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(32),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(35),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -8139,7 +8153,7 @@
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(94),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(35),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -8151,8 +8165,8 @@
/* num_template_numbers */ 2,
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(6),
- /* parameters */ ParameterIndex(377),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(35),
+ /* parameters */ ParameterIndex(379),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -8167,7 +8181,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(79),
+ /* const_eval_fn */ ConstEvalFunctionIndex(81),
},
{
/* [252] */
@@ -8180,7 +8194,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(79),
+ /* const_eval_fn */ ConstEvalFunctionIndex(81),
},
{
/* [253] */
@@ -8193,7 +8207,7 @@
/* parameters */ ParameterIndex(223),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(79),
+ /* const_eval_fn */ ConstEvalFunctionIndex(81),
},
{
/* [254] */
@@ -8206,7 +8220,7 @@
/* parameters */ ParameterIndex(350),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(79),
+ /* const_eval_fn */ ConstEvalFunctionIndex(81),
},
{
/* [255] */
@@ -8219,7 +8233,7 @@
/* parameters */ ParameterIndex(353),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(12),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(2),
- /* const_eval_fn */ ConstEvalFunctionIndex(79),
+ /* const_eval_fn */ ConstEvalFunctionIndex(81),
},
{
/* [256] */
@@ -8232,7 +8246,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(80),
+ /* const_eval_fn */ ConstEvalFunctionIndex(82),
},
{
/* [257] */
@@ -8245,7 +8259,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(80),
+ /* const_eval_fn */ ConstEvalFunctionIndex(82),
},
{
/* [258] */
@@ -8258,7 +8272,7 @@
/* parameters */ ParameterIndex(223),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(80),
+ /* const_eval_fn */ ConstEvalFunctionIndex(82),
},
{
/* [259] */
@@ -8271,7 +8285,7 @@
/* parameters */ ParameterIndex(350),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(80),
+ /* const_eval_fn */ ConstEvalFunctionIndex(82),
},
{
/* [260] */
@@ -8284,7 +8298,7 @@
/* parameters */ ParameterIndex(353),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(12),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(2),
- /* const_eval_fn */ ConstEvalFunctionIndex(80),
+ /* const_eval_fn */ ConstEvalFunctionIndex(82),
},
{
/* [261] */
@@ -8297,7 +8311,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(85),
+ /* const_eval_fn */ ConstEvalFunctionIndex(87),
},
{
/* [262] */
@@ -8310,7 +8324,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(85),
+ /* const_eval_fn */ ConstEvalFunctionIndex(87),
},
{
/* [263] */
@@ -8323,7 +8337,7 @@
/* parameters */ ParameterIndex(223),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(85),
+ /* const_eval_fn */ ConstEvalFunctionIndex(87),
},
{
/* [264] */
@@ -8336,7 +8350,7 @@
/* parameters */ ParameterIndex(350),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(85),
+ /* const_eval_fn */ ConstEvalFunctionIndex(87),
},
{
/* [265] */
@@ -8349,7 +8363,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(86),
+ /* const_eval_fn */ ConstEvalFunctionIndex(88),
},
{
/* [266] */
@@ -8362,7 +8376,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(86),
+ /* const_eval_fn */ ConstEvalFunctionIndex(88),
},
{
/* [267] */
@@ -8375,7 +8389,7 @@
/* parameters */ ParameterIndex(223),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(86),
+ /* const_eval_fn */ ConstEvalFunctionIndex(88),
},
{
/* [268] */
@@ -8388,7 +8402,7 @@
/* parameters */ ParameterIndex(350),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(86),
+ /* const_eval_fn */ ConstEvalFunctionIndex(88),
},
{
/* [269] */
@@ -8401,7 +8415,7 @@
/* parameters */ ParameterIndex(226),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(88),
+ /* const_eval_fn */ ConstEvalFunctionIndex(90),
},
{
/* [270] */
@@ -8414,7 +8428,7 @@
/* parameters */ ParameterIndex(233),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(8),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(88),
+ /* const_eval_fn */ ConstEvalFunctionIndex(90),
},
{
/* [271] */
@@ -8427,7 +8441,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(88),
+ /* const_eval_fn */ ConstEvalFunctionIndex(90),
},
{
/* [272] */
@@ -8440,7 +8454,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(88),
+ /* const_eval_fn */ ConstEvalFunctionIndex(90),
},
{
/* [273] */
@@ -8453,7 +8467,7 @@
/* parameters */ ParameterIndex(226),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(89),
+ /* const_eval_fn */ ConstEvalFunctionIndex(91),
},
{
/* [274] */
@@ -8466,7 +8480,7 @@
/* parameters */ ParameterIndex(233),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(8),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(89),
+ /* const_eval_fn */ ConstEvalFunctionIndex(91),
},
{
/* [275] */
@@ -8479,7 +8493,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(89),
+ /* const_eval_fn */ ConstEvalFunctionIndex(91),
},
{
/* [276] */
@@ -8492,7 +8506,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(89),
+ /* const_eval_fn */ ConstEvalFunctionIndex(91),
},
{
/* [277] */
@@ -8544,7 +8558,7 @@
/* parameters */ ParameterIndex(224),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(58),
+ /* const_eval_fn */ ConstEvalFunctionIndex(60),
},
{
/* [281] */
@@ -8557,7 +8571,7 @@
/* parameters */ ParameterIndex(228),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(58),
+ /* const_eval_fn */ ConstEvalFunctionIndex(60),
},
{
/* [282] */
@@ -8570,7 +8584,7 @@
/* parameters */ ParameterIndex(231),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(59),
+ /* const_eval_fn */ ConstEvalFunctionIndex(61),
},
{
/* [283] */
@@ -8581,9 +8595,9 @@
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(53),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(31),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(100),
+ /* const_eval_fn */ ConstEvalFunctionIndex(102),
},
{
/* [284] */
@@ -8593,10 +8607,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(379),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(53),
+ /* parameters */ ParameterIndex(381),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(31),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(75),
+ /* const_eval_fn */ ConstEvalFunctionIndex(77),
},
{
/* [285] */
@@ -8607,9 +8621,9 @@
/* template_types */ TemplateTypeIndex(30),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(53),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(31),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
/* [286] */
@@ -8620,9 +8634,9 @@
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(35),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(100),
+ /* const_eval_fn */ ConstEvalFunctionIndex(102),
},
{
/* [287] */
@@ -8633,9 +8647,9 @@
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(17),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(35),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(75),
+ /* const_eval_fn */ ConstEvalFunctionIndex(77),
},
{
/* [288] */
@@ -8646,9 +8660,9 @@
/* template_types */ TemplateTypeIndex(31),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(35),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
/* [289] */
@@ -8661,7 +8675,7 @@
/* parameters */ ParameterIndex(/* invalid */),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(15),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(100),
+ /* const_eval_fn */ ConstEvalFunctionIndex(102),
},
{
/* [290] */
@@ -8674,7 +8688,7 @@
/* parameters */ ParameterIndex(370),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(15),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(75),
+ /* const_eval_fn */ ConstEvalFunctionIndex(77),
},
{
/* [291] */
@@ -8687,7 +8701,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(15),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
/* [292] */
@@ -8700,7 +8714,7 @@
/* parameters */ ParameterIndex(/* invalid */),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(87),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(100),
+ /* const_eval_fn */ ConstEvalFunctionIndex(102),
},
{
/* [293] */
@@ -8710,10 +8724,10 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(380),
+ /* parameters */ ParameterIndex(382),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(87),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(75),
+ /* const_eval_fn */ ConstEvalFunctionIndex(77),
},
{
/* [294] */
@@ -8726,7 +8740,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(87),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
/* [295] */
@@ -8739,7 +8753,7 @@
/* parameters */ ParameterIndex(/* invalid */),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(100),
+ /* const_eval_fn */ ConstEvalFunctionIndex(102),
},
{
/* [296] */
@@ -8752,7 +8766,7 @@
/* parameters */ ParameterIndex(226),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(75),
+ /* const_eval_fn */ ConstEvalFunctionIndex(77),
},
{
/* [297] */
@@ -8765,7 +8779,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
/* [298] */
@@ -9766,7 +9780,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(50),
+ /* const_eval_fn */ ConstEvalFunctionIndex(52),
},
{
/* [375] */
@@ -9779,7 +9793,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(50),
+ /* const_eval_fn */ ConstEvalFunctionIndex(52),
},
{
/* [376] */
@@ -9792,7 +9806,7 @@
/* parameters */ ParameterIndex(370),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(15),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(51),
+ /* const_eval_fn */ ConstEvalFunctionIndex(53),
},
{
/* [377] */
@@ -9805,7 +9819,7 @@
/* parameters */ ParameterIndex(371),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(14),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(51),
+ /* const_eval_fn */ ConstEvalFunctionIndex(53),
},
{
/* [378] */
@@ -9818,7 +9832,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(52),
+ /* const_eval_fn */ ConstEvalFunctionIndex(54),
},
{
/* [379] */
@@ -9831,7 +9845,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(52),
+ /* const_eval_fn */ ConstEvalFunctionIndex(54),
},
{
/* [380] */
@@ -9844,7 +9858,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(55),
+ /* const_eval_fn */ ConstEvalFunctionIndex(57),
},
{
/* [381] */
@@ -9857,7 +9871,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(55),
+ /* const_eval_fn */ ConstEvalFunctionIndex(57),
},
{
/* [382] */
@@ -9870,7 +9884,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(56),
+ /* const_eval_fn */ ConstEvalFunctionIndex(58),
},
{
/* [383] */
@@ -9883,7 +9897,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(56),
+ /* const_eval_fn */ ConstEvalFunctionIndex(58),
},
{
/* [384] */
@@ -9896,7 +9910,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(57),
+ /* const_eval_fn */ ConstEvalFunctionIndex(59),
},
{
/* [385] */
@@ -9909,7 +9923,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(57),
+ /* const_eval_fn */ ConstEvalFunctionIndex(59),
},
{
/* [386] */
@@ -9922,7 +9936,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(60),
+ /* const_eval_fn */ ConstEvalFunctionIndex(62),
},
{
/* [387] */
@@ -9935,7 +9949,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(60),
+ /* const_eval_fn */ ConstEvalFunctionIndex(62),
},
{
/* [388] */
@@ -9948,7 +9962,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(61),
+ /* const_eval_fn */ ConstEvalFunctionIndex(63),
},
{
/* [389] */
@@ -9961,7 +9975,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(61),
+ /* const_eval_fn */ ConstEvalFunctionIndex(63),
},
{
/* [390] */
@@ -9974,7 +9988,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(62),
+ /* const_eval_fn */ ConstEvalFunctionIndex(64),
},
{
/* [391] */
@@ -9987,7 +10001,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(62),
+ /* const_eval_fn */ ConstEvalFunctionIndex(64),
},
{
/* [392] */
@@ -10000,7 +10014,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(63),
+ /* const_eval_fn */ ConstEvalFunctionIndex(65),
},
{
/* [393] */
@@ -10013,7 +10027,7 @@
/* parameters */ ParameterIndex(221),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(63),
+ /* const_eval_fn */ ConstEvalFunctionIndex(65),
},
{
/* [394] */
@@ -10026,7 +10040,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(64),
+ /* const_eval_fn */ ConstEvalFunctionIndex(66),
},
{
/* [395] */
@@ -10039,7 +10053,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(64),
+ /* const_eval_fn */ ConstEvalFunctionIndex(66),
},
{
/* [396] */
@@ -10052,7 +10066,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(65),
+ /* const_eval_fn */ ConstEvalFunctionIndex(67),
},
{
/* [397] */
@@ -10065,7 +10079,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(65),
+ /* const_eval_fn */ ConstEvalFunctionIndex(67),
},
{
/* [398] */
@@ -10078,7 +10092,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(66),
+ /* const_eval_fn */ ConstEvalFunctionIndex(68),
},
{
/* [399] */
@@ -10091,7 +10105,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(66),
+ /* const_eval_fn */ ConstEvalFunctionIndex(68),
},
{
/* [400] */
@@ -10104,7 +10118,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(67),
+ /* const_eval_fn */ ConstEvalFunctionIndex(69),
},
{
/* [401] */
@@ -10117,7 +10131,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(67),
+ /* const_eval_fn */ ConstEvalFunctionIndex(69),
},
{
/* [402] */
@@ -10130,7 +10144,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(69),
+ /* const_eval_fn */ ConstEvalFunctionIndex(71),
},
{
/* [403] */
@@ -10143,7 +10157,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(69),
+ /* const_eval_fn */ ConstEvalFunctionIndex(71),
},
{
/* [404] */
@@ -10154,7 +10168,7 @@
/* template_types */ TemplateTypeIndex(0),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(277),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(35),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -10167,7 +10181,7 @@
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(283),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(35),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -10208,7 +10222,7 @@
/* parameters */ ParameterIndex(226),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(76),
+ /* const_eval_fn */ ConstEvalFunctionIndex(78),
},
{
/* [409] */
@@ -10221,7 +10235,7 @@
/* parameters */ ParameterIndex(233),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(8),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(76),
+ /* const_eval_fn */ ConstEvalFunctionIndex(78),
},
{
/* [410] */
@@ -10234,7 +10248,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(77),
+ /* const_eval_fn */ ConstEvalFunctionIndex(79),
},
{
/* [411] */
@@ -10247,7 +10261,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(77),
+ /* const_eval_fn */ ConstEvalFunctionIndex(79),
},
{
/* [412] */
@@ -10260,7 +10274,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(78),
+ /* const_eval_fn */ ConstEvalFunctionIndex(80),
},
{
/* [413] */
@@ -10273,7 +10287,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(78),
+ /* const_eval_fn */ ConstEvalFunctionIndex(80),
},
{
/* [414] */
@@ -10286,7 +10300,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(87),
+ /* const_eval_fn */ ConstEvalFunctionIndex(89),
},
{
/* [415] */
@@ -10299,7 +10313,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(87),
+ /* const_eval_fn */ ConstEvalFunctionIndex(89),
},
{
/* [416] */
@@ -10312,7 +10326,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(92),
+ /* const_eval_fn */ ConstEvalFunctionIndex(94),
},
{
/* [417] */
@@ -10325,7 +10339,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(8),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(92),
+ /* const_eval_fn */ ConstEvalFunctionIndex(94),
},
{
/* [418] */
@@ -10338,7 +10352,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(93),
+ /* const_eval_fn */ ConstEvalFunctionIndex(95),
},
{
/* [419] */
@@ -10351,7 +10365,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(8),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(93),
+ /* const_eval_fn */ ConstEvalFunctionIndex(95),
},
{
/* [420] */
@@ -10364,7 +10378,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(94),
+ /* const_eval_fn */ ConstEvalFunctionIndex(96),
},
{
/* [421] */
@@ -10377,7 +10391,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(8),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(94),
+ /* const_eval_fn */ ConstEvalFunctionIndex(96),
},
{
/* [422] */
@@ -10390,7 +10404,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(95),
+ /* const_eval_fn */ ConstEvalFunctionIndex(97),
},
{
/* [423] */
@@ -10403,7 +10417,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(8),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(95),
+ /* const_eval_fn */ ConstEvalFunctionIndex(97),
},
{
/* [424] */
@@ -10416,7 +10430,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(96),
+ /* const_eval_fn */ ConstEvalFunctionIndex(98),
},
{
/* [425] */
@@ -10429,7 +10443,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(8),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(96),
+ /* const_eval_fn */ ConstEvalFunctionIndex(98),
},
{
/* [426] */
@@ -10442,7 +10456,7 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(97),
+ /* const_eval_fn */ ConstEvalFunctionIndex(99),
},
{
/* [427] */
@@ -10455,7 +10469,7 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(8),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(97),
+ /* const_eval_fn */ ConstEvalFunctionIndex(99),
},
{
/* [428] */
@@ -10468,7 +10482,7 @@
/* parameters */ ParameterIndex(16),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(98),
+ /* const_eval_fn */ ConstEvalFunctionIndex(100),
},
{
/* [429] */
@@ -10481,7 +10495,7 @@
/* parameters */ ParameterIndex(351),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(98),
+ /* const_eval_fn */ ConstEvalFunctionIndex(100),
},
{
/* [430] */
@@ -10494,7 +10508,7 @@
/* parameters */ ParameterIndex(16),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
{
/* [431] */
@@ -10507,7 +10521,7 @@
/* parameters */ ParameterIndex(351),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
{
/* [432] */
@@ -10518,7 +10532,7 @@
/* template_types */ TemplateTypeIndex(25),
/* template_numbers */ TemplateNumberIndex(7),
/* parameters */ ParameterIndex(368),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(35),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -10570,7 +10584,7 @@
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(17),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(53),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(31),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(22),
},
@@ -10583,7 +10597,7 @@
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(17),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(35),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(23),
},
@@ -10622,7 +10636,7 @@
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(372),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(35),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(45),
},
@@ -10635,7 +10649,7 @@
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(372),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(35),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(46),
},
@@ -10648,7 +10662,7 @@
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(372),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(35),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(47),
},
@@ -10661,7 +10675,7 @@
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(373),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(35),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(48),
},
@@ -10674,13 +10688,39 @@
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(373),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(35),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(49),
},
{
/* [445] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 1,
+ /* num_template_types */ 0,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(/* invalid */),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(374),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(50),
+ },
+ {
+ /* [446] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 1,
+ /* num_template_types */ 0,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(/* invalid */),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(375),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(51),
+ },
+ {
+ /* [447] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
/* num_template_numbers */ 1,
@@ -10689,10 +10729,10 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(53),
+ /* const_eval_fn */ ConstEvalFunctionIndex(55),
},
{
- /* [446] */
+ /* [448] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 3,
/* num_template_types */ 1,
@@ -10702,10 +10742,10 @@
/* parameters */ ParameterIndex(222),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(54),
+ /* const_eval_fn */ ConstEvalFunctionIndex(56),
},
{
- /* [447] */
+ /* [449] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 0,
/* num_template_types */ 0,
@@ -10718,7 +10758,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [448] */
+ /* [450] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -10728,35 +10768,9 @@
/* parameters */ ParameterIndex(353),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(12),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(3),
- /* const_eval_fn */ ConstEvalFunctionIndex(68),
- },
- {
- /* [449] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 1,
- /* num_template_types */ 0,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(/* invalid */),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(17),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(26),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(70),
},
{
- /* [450] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 1,
- /* num_template_types */ 0,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(/* invalid */),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(17),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(26),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(71),
- },
- {
/* [451] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
@@ -10778,7 +10792,7 @@
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(17),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(28),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(26),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(73),
},
@@ -10791,53 +10805,53 @@
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(17),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(28),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(26),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(74),
},
{
/* [454] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 1,
+ /* num_template_types */ 0,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(/* invalid */),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(17),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(28),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(75),
+ },
+ {
+ /* [455] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 1,
+ /* num_template_types */ 0,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(/* invalid */),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(17),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(28),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(76),
+ },
+ {
+ /* [456] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(25),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(374),
+ /* parameters */ ParameterIndex(376),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [455] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 1,
- /* num_template_types */ 1,
- /* num_template_numbers */ 1,
- /* template_types */ TemplateTypeIndex(26),
- /* template_numbers */ TemplateNumberIndex(8),
- /* parameters */ ParameterIndex(0),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
- /* [456] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 2,
- /* num_template_types */ 1,
- /* num_template_numbers */ 1,
- /* template_types */ TemplateTypeIndex(26),
- /* template_numbers */ TemplateNumberIndex(8),
- /* parameters */ ParameterIndex(0),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(/* invalid */),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
/* [457] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 2,
+ /* num_parameters */ 1,
/* num_template_types */ 1,
/* num_template_numbers */ 1,
/* template_types */ TemplateTypeIndex(26),
@@ -10850,6 +10864,32 @@
{
/* [458] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 2,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 1,
+ /* template_types */ TemplateTypeIndex(26),
+ /* template_numbers */ TemplateNumberIndex(8),
+ /* parameters */ ParameterIndex(0),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(/* invalid */),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [459] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 2,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 1,
+ /* template_types */ TemplateTypeIndex(26),
+ /* template_numbers */ TemplateNumberIndex(8),
+ /* parameters */ ParameterIndex(0),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [460] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 3,
/* num_template_types */ 1,
/* num_template_numbers */ 1,
@@ -10861,7 +10901,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [459] */
+ /* [461] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 0,
/* num_template_types */ 0,
@@ -10869,12 +10909,12 @@
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(74),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(32),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [460] */
+ /* [462] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
@@ -10887,7 +10927,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [461] */
+ /* [463] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -10897,36 +10937,36 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(75),
- },
- {
- /* [462] */
- /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 2,
- /* num_template_types */ 0,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(/* invalid */),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(226),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(90),
- },
- {
- /* [463] */
- /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 2,
- /* num_template_types */ 0,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(/* invalid */),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(226),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(91),
+ /* const_eval_fn */ ConstEvalFunctionIndex(77),
},
{
/* [464] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 2,
+ /* num_template_types */ 0,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(/* invalid */),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(226),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(92),
+ },
+ {
+ /* [465] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 2,
+ /* num_template_types */ 0,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(/* invalid */),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(226),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(93),
+ },
+ {
+ /* [466] */
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -10936,7 +10976,7 @@
/* parameters */ ParameterIndex(213),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(158),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
},
};
@@ -11354,60 +11394,72 @@
},
{
/* [60] */
+ /* fn pack4xI8(vec4<i32>) -> u32 */
+ /* num overloads */ 1,
+ /* overloads */ OverloadIndex(445),
+ },
+ {
+ /* [61] */
+ /* fn pack4xU8(vec4<u32>) -> u32 */
+ /* num overloads */ 1,
+ /* overloads */ OverloadIndex(446),
+ },
+ {
+ /* [62] */
/* fn pow<T : fa_f32_f16>(T, T) -> T */
/* fn pow<N : num, T : fa_f32_f16>(vec<N, T>, vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
/* overloads */ OverloadIndex(374),
},
{
- /* [61] */
+ /* [63] */
/* fn quantizeToF16(f32) -> f32 */
/* fn quantizeToF16<N : num>(vec<N, f32>) -> vec<N, f32> */
/* num overloads */ 2,
/* overloads */ OverloadIndex(376),
},
{
- /* [62] */
+ /* [64] */
/* fn radians<T : fa_f32_f16>(T) -> T */
/* fn radians<N : num, T : fa_f32_f16>(vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
/* overloads */ OverloadIndex(378),
},
{
- /* [63] */
+ /* [65] */
/* fn reflect<N : num, T : fa_f32_f16>(vec<N, T>, vec<N, T>) -> vec<N, T> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(445),
+ /* overloads */ OverloadIndex(447),
},
{
- /* [64] */
+ /* [66] */
/* fn refract<N : num, T : fa_f32_f16>(vec<N, T>, vec<N, T>, T) -> vec<N, T> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(446),
+ /* overloads */ OverloadIndex(448),
},
{
- /* [65] */
+ /* [67] */
/* fn reverseBits<T : iu32>(T) -> T */
/* fn reverseBits<N : num, T : iu32>(vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
/* overloads */ OverloadIndex(380),
},
{
- /* [66] */
+ /* [68] */
/* fn round<T : fa_f32_f16>(@test_value(3.5) T) -> T */
/* fn round<N : num, T : fa_f32_f16>(@test_value(3.5) vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
/* overloads */ OverloadIndex(382),
},
{
- /* [67] */
+ /* [69] */
/* fn saturate<T : fa_f32_f16>(@test_value(2) T) -> T */
/* fn saturate<T : fa_f32_f16, N : num>(@test_value(2) vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
/* overloads */ OverloadIndex(384),
},
{
- /* [68] */
+ /* [70] */
/* fn select<T : scalar>(T, T, bool) -> T */
/* fn select<T : scalar, N : num>(vec<N, T>, vec<N, T>, bool) -> vec<N, T> */
/* fn select<N : num, T : scalar>(vec<N, T>, vec<N, T>, vec<N, bool>) -> vec<N, T> */
@@ -11415,130 +11467,130 @@
/* overloads */ OverloadIndex(280),
},
{
- /* [69] */
+ /* [71] */
/* fn sign<T : fia_fi32_f16>(T) -> T */
/* fn sign<N : num, T : fia_fi32_f16>(vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
/* overloads */ OverloadIndex(386),
},
{
- /* [70] */
+ /* [72] */
/* fn sin<T : fa_f32_f16>(@test_value(1.57079632679) T) -> T */
/* fn sin<N : num, T : fa_f32_f16>(@test_value(1.57079632679) vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
/* overloads */ OverloadIndex(388),
},
{
- /* [71] */
+ /* [73] */
/* fn sinh<T : fa_f32_f16>(T) -> T */
/* fn sinh<N : num, T : fa_f32_f16>(vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
/* overloads */ OverloadIndex(390),
},
{
- /* [72] */
+ /* [74] */
/* fn smoothstep<T : fa_f32_f16>(@test_value(2) T, @test_value(4) T, @test_value(3) T) -> T */
/* fn smoothstep<N : num, T : fa_f32_f16>(@test_value(2) vec<N, T>, @test_value(4) vec<N, T>, @test_value(3) vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
/* overloads */ OverloadIndex(392),
},
{
- /* [73] */
+ /* [75] */
/* fn sqrt<T : fa_f32_f16>(T) -> T */
/* fn sqrt<N : num, T : fa_f32_f16>(vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
/* overloads */ OverloadIndex(394),
},
{
- /* [74] */
+ /* [76] */
/* fn step<T : fa_f32_f16>(T, T) -> T */
/* fn step<N : num, T : fa_f32_f16>(vec<N, T>, vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
/* overloads */ OverloadIndex(396),
},
{
- /* [75] */
+ /* [77] */
/* fn storageBarrier() */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(447),
+ /* overloads */ OverloadIndex(449),
},
{
- /* [76] */
+ /* [78] */
/* fn tan<T : fa_f32_f16>(T) -> T */
/* fn tan<N : num, T : fa_f32_f16>(vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
/* overloads */ OverloadIndex(398),
},
{
- /* [77] */
+ /* [79] */
/* fn tanh<T : fa_f32_f16>(T) -> T */
/* fn tanh<N : num, T : fa_f32_f16>(vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
/* overloads */ OverloadIndex(400),
},
{
- /* [78] */
+ /* [80] */
/* fn transpose<M : num, N : num, T : fa_f32_f16>(mat<M, N, T>) -> mat<N, M, T> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(448),
+ /* overloads */ OverloadIndex(450),
},
{
- /* [79] */
+ /* [81] */
/* fn trunc<T : fa_f32_f16>(@test_value(1.5) T) -> T */
/* fn trunc<N : num, T : fa_f32_f16>(@test_value(1.5) vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
/* overloads */ OverloadIndex(402),
},
{
- /* [80] */
- /* fn unpack2x16float(u32) -> vec2<f32> */
- /* num overloads */ 1,
- /* overloads */ OverloadIndex(449),
- },
- {
- /* [81] */
- /* fn unpack2x16snorm(u32) -> vec2<f32> */
- /* num overloads */ 1,
- /* overloads */ OverloadIndex(450),
- },
- {
/* [82] */
- /* fn unpack2x16unorm(u32) -> vec2<f32> */
+ /* fn unpack2x16float(u32) -> vec2<f32> */
/* num overloads */ 1,
/* overloads */ OverloadIndex(451),
},
{
/* [83] */
- /* fn unpack4x8snorm(u32) -> vec4<f32> */
+ /* fn unpack2x16snorm(u32) -> vec2<f32> */
/* num overloads */ 1,
/* overloads */ OverloadIndex(452),
},
{
/* [84] */
- /* fn unpack4x8unorm(u32) -> vec4<f32> */
+ /* fn unpack2x16unorm(u32) -> vec2<f32> */
/* num overloads */ 1,
/* overloads */ OverloadIndex(453),
},
{
/* [85] */
- /* fn workgroupBarrier() */
- /* num overloads */ 1,
- /* overloads */ OverloadIndex(447),
- },
- {
- /* [86] */
- /* fn workgroupUniformLoad<T>(ptr<workgroup, T, read_write>) -> T */
+ /* fn unpack4x8snorm(u32) -> vec4<f32> */
/* num overloads */ 1,
/* overloads */ OverloadIndex(454),
},
{
- /* [87] */
- /* fn textureBarrier() */
+ /* [86] */
+ /* fn unpack4x8unorm(u32) -> vec4<f32> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(447),
+ /* overloads */ OverloadIndex(455),
+ },
+ {
+ /* [87] */
+ /* fn workgroupBarrier() */
+ /* num overloads */ 1,
+ /* overloads */ OverloadIndex(449),
},
{
/* [88] */
+ /* fn workgroupUniformLoad<T>(ptr<workgroup, T, read_write>) -> T */
+ /* num overloads */ 1,
+ /* overloads */ OverloadIndex(456),
+ },
+ {
+ /* [89] */
+ /* fn textureBarrier() */
+ /* num overloads */ 1,
+ /* overloads */ OverloadIndex(449),
+ },
+ {
+ /* [90] */
/* fn textureDimensions<T : fiu32>(texture: texture_1d<T>) -> u32 */
/* fn textureDimensions<T : fiu32, L : iu32>(texture: texture_1d<T>, level: L) -> u32 */
/* fn textureDimensions<T : fiu32>(texture: texture_2d<T>) -> vec2<u32> */
@@ -11570,7 +11622,7 @@
/* overloads */ OverloadIndex(0),
},
{
- /* [89] */
+ /* [91] */
/* fn textureGather<T : fiu32, C : iu32>(@const component: C, texture: texture_2d<T>, sampler: sampler, coords: vec2<f32>) -> vec4<T> */
/* fn textureGather<T : fiu32, C : iu32>(@const component: C, texture: texture_2d<T>, sampler: sampler, coords: vec2<f32>, @const offset: vec2<i32>) -> vec4<T> */
/* fn textureGather<T : fiu32, C : iu32, A : iu32>(@const component: C, texture: texture_2d_array<T>, sampler: sampler, coords: vec2<f32>, array_index: A) -> vec4<T> */
@@ -11587,7 +11639,7 @@
/* overloads */ OverloadIndex(93),
},
{
- /* [90] */
+ /* [92] */
/* fn textureGatherCompare(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32) -> vec4<f32> */
/* fn textureGatherCompare(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32, @const offset: vec2<i32>) -> vec4<f32> */
/* fn textureGatherCompare<A : iu32>(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: A, depth_ref: f32) -> vec4<f32> */
@@ -11598,7 +11650,7 @@
/* overloads */ OverloadIndex(174),
},
{
- /* [91] */
+ /* [93] */
/* fn textureNumLayers<T : fiu32>(texture: texture_2d_array<T>) -> u32 */
/* fn textureNumLayers<T : fiu32>(texture: texture_cube_array<T>) -> u32 */
/* fn textureNumLayers(texture: texture_depth_2d_array) -> u32 */
@@ -11608,7 +11660,7 @@
/* overloads */ OverloadIndex(246),
},
{
- /* [92] */
+ /* [94] */
/* fn textureNumLevels<T : fiu32>(texture: texture_1d<T>) -> u32 */
/* fn textureNumLevels<T : fiu32>(texture: texture_2d<T>) -> u32 */
/* fn textureNumLevels<T : fiu32>(texture: texture_2d_array<T>) -> u32 */
@@ -11623,14 +11675,14 @@
/* overloads */ OverloadIndex(129),
},
{
- /* [93] */
+ /* [95] */
/* fn textureNumSamples<T : fiu32>(texture: texture_multisampled_2d<T>) -> u32 */
/* fn textureNumSamples(texture: texture_depth_multisampled_2d) -> u32 */
/* num overloads */ 2,
/* overloads */ OverloadIndex(404),
},
{
- /* [94] */
+ /* [96] */
/* fn textureSample(texture: texture_1d<f32>, sampler: sampler, coords: f32) -> vec4<f32> */
/* fn textureSample(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>) -> vec4<f32> */
/* fn textureSample(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, @const offset: vec2<i32>) -> vec4<f32> */
@@ -11650,7 +11702,7 @@
/* overloads */ OverloadIndex(64),
},
{
- /* [95] */
+ /* [97] */
/* fn textureSampleBias(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, bias: f32) -> vec4<f32> */
/* fn textureSampleBias(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, bias: f32, @const offset: vec2<i32>) -> vec4<f32> */
/* fn textureSampleBias<A : iu32>(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: A, bias: f32) -> vec4<f32> */
@@ -11663,7 +11715,7 @@
/* overloads */ OverloadIndex(158),
},
{
- /* [96] */
+ /* [98] */
/* fn textureSampleCompare(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32) -> f32 */
/* fn textureSampleCompare(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32, @const offset: vec2<i32>) -> f32 */
/* fn textureSampleCompare<A : iu32>(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: A, depth_ref: f32) -> f32 */
@@ -11674,7 +11726,7 @@
/* overloads */ OverloadIndex(180),
},
{
- /* [97] */
+ /* [99] */
/* fn textureSampleCompareLevel(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32) -> f32 */
/* fn textureSampleCompareLevel(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32, @const offset: vec2<i32>) -> f32 */
/* fn textureSampleCompareLevel<A : iu32>(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: A, depth_ref: f32) -> f32 */
@@ -11685,7 +11737,7 @@
/* overloads */ OverloadIndex(186),
},
{
- /* [98] */
+ /* [100] */
/* fn textureSampleGrad(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, ddx: vec2<f32>, ddy: vec2<f32>) -> vec4<f32> */
/* fn textureSampleGrad(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, ddx: vec2<f32>, ddy: vec2<f32>, @const offset: vec2<i32>) -> vec4<f32> */
/* fn textureSampleGrad<A : iu32>(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: A, ddx: vec2<f32>, ddy: vec2<f32>) -> vec4<f32> */
@@ -11698,7 +11750,7 @@
/* overloads */ OverloadIndex(166),
},
{
- /* [99] */
+ /* [101] */
/* fn textureSampleLevel(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, level: f32) -> vec4<f32> */
/* fn textureSampleLevel(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, level: f32, @const offset: vec2<i32>) -> vec4<f32> */
/* fn textureSampleLevel<A : iu32>(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: A, level: f32) -> vec4<f32> */
@@ -11717,14 +11769,14 @@
/* overloads */ OverloadIndex(79),
},
{
- /* [100] */
+ /* [102] */
/* fn textureSampleBaseClampToEdge(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>) -> vec4<f32> */
/* fn textureSampleBaseClampToEdge(texture: texture_external, sampler: sampler, coords: vec2<f32>) -> vec4<f32> */
/* num overloads */ 2,
/* overloads */ OverloadIndex(406),
},
{
- /* [101] */
+ /* [103] */
/* fn textureStore<C : iu32>(texture: texture_storage_1d<f32_texel_format, writable>, coords: C, value: vec4<f32>) */
/* fn textureStore<C : iu32>(texture: texture_storage_2d<f32_texel_format, writable>, coords: vec2<C>, value: vec4<f32>) */
/* fn textureStore<C : iu32, A : iu32>(texture: texture_storage_2d_array<f32_texel_format, writable>, coords: vec2<C>, array_index: A, value: vec4<f32>) */
@@ -11741,7 +11793,7 @@
/* overloads */ OverloadIndex(105),
},
{
- /* [102] */
+ /* [104] */
/* fn textureLoad<T : fiu32, C : iu32, L : iu32>(texture: texture_1d<T>, coords: C, level: L) -> vec4<T> */
/* fn textureLoad<T : fiu32, C : iu32, L : iu32>(texture: texture_2d<T>, coords: vec2<C>, level: L) -> vec4<T> */
/* fn textureLoad<T : fiu32, C : iu32, A : iu32, L : iu32>(texture: texture_2d_array<T>, coords: vec2<C>, array_index: A, level: L) -> vec4<T> */
@@ -11767,89 +11819,89 @@
/* overloads */ OverloadIndex(27),
},
{
- /* [103] */
- /* fn atomicLoad<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>) -> T */
- /* num overloads */ 1,
- /* overloads */ OverloadIndex(455),
- },
- {
- /* [104] */
- /* fn atomicStore<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) */
- /* num overloads */ 1,
- /* overloads */ OverloadIndex(456),
- },
- {
/* [105] */
- /* fn atomicAdd<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
+ /* fn atomicLoad<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>) -> T */
/* num overloads */ 1,
/* overloads */ OverloadIndex(457),
},
{
/* [106] */
- /* fn atomicSub<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
- /* num overloads */ 1,
- /* overloads */ OverloadIndex(457),
- },
- {
- /* [107] */
- /* fn atomicMax<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
- /* num overloads */ 1,
- /* overloads */ OverloadIndex(457),
- },
- {
- /* [108] */
- /* fn atomicMin<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
- /* num overloads */ 1,
- /* overloads */ OverloadIndex(457),
- },
- {
- /* [109] */
- /* fn atomicAnd<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
- /* num overloads */ 1,
- /* overloads */ OverloadIndex(457),
- },
- {
- /* [110] */
- /* fn atomicOr<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
- /* num overloads */ 1,
- /* overloads */ OverloadIndex(457),
- },
- {
- /* [111] */
- /* fn atomicXor<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
- /* num overloads */ 1,
- /* overloads */ OverloadIndex(457),
- },
- {
- /* [112] */
- /* fn atomicExchange<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
- /* num overloads */ 1,
- /* overloads */ OverloadIndex(457),
- },
- {
- /* [113] */
- /* fn atomicCompareExchangeWeak<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T, T) -> __atomic_compare_exchange_result<T> */
+ /* fn atomicStore<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) */
/* num overloads */ 1,
/* overloads */ OverloadIndex(458),
},
{
+ /* [107] */
+ /* fn atomicAdd<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
+ /* num overloads */ 1,
+ /* overloads */ OverloadIndex(459),
+ },
+ {
+ /* [108] */
+ /* fn atomicSub<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
+ /* num overloads */ 1,
+ /* overloads */ OverloadIndex(459),
+ },
+ {
+ /* [109] */
+ /* fn atomicMax<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
+ /* num overloads */ 1,
+ /* overloads */ OverloadIndex(459),
+ },
+ {
+ /* [110] */
+ /* fn atomicMin<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
+ /* num overloads */ 1,
+ /* overloads */ OverloadIndex(459),
+ },
+ {
+ /* [111] */
+ /* fn atomicAnd<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
+ /* num overloads */ 1,
+ /* overloads */ OverloadIndex(459),
+ },
+ {
+ /* [112] */
+ /* fn atomicOr<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
+ /* num overloads */ 1,
+ /* overloads */ OverloadIndex(459),
+ },
+ {
+ /* [113] */
+ /* fn atomicXor<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
+ /* num overloads */ 1,
+ /* overloads */ OverloadIndex(459),
+ },
+ {
/* [114] */
- /* fn subgroupBallot() -> vec4<u32> */
+ /* fn atomicExchange<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
/* num overloads */ 1,
/* overloads */ OverloadIndex(459),
},
{
/* [115] */
- /* fn subgroupBroadcast<T : fiu32>(value: T, @const sourceLaneIndex: u32) -> T */
+ /* fn atomicCompareExchangeWeak<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T, T) -> __atomic_compare_exchange_result<T> */
/* num overloads */ 1,
/* overloads */ OverloadIndex(460),
},
{
/* [116] */
- /* fn _tint_materialize<T>(T) -> T */
+ /* fn subgroupBallot() -> vec4<u32> */
/* num overloads */ 1,
/* overloads */ OverloadIndex(461),
},
+ {
+ /* [117] */
+ /* fn subgroupBroadcast<T : fiu32>(value: T, @const sourceLaneIndex: u32) -> T */
+ /* num overloads */ 1,
+ /* overloads */ OverloadIndex(462),
+ },
+ {
+ /* [118] */
+ /* fn _tint_materialize<T>(T) -> T */
+ /* num overloads */ 1,
+ /* overloads */ OverloadIndex(463),
+ },
};
constexpr IntrinsicInfo kUnaryOperators[] = {
@@ -11961,13 +12013,13 @@
/* [8] */
/* op &&(bool, bool) -> bool */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(462),
+ /* overloads */ OverloadIndex(464),
},
{
/* [9] */
/* op ||(bool, bool) -> bool */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(463),
+ /* overloads */ OverloadIndex(465),
},
{
/* [10] */
@@ -12242,7 +12294,7 @@
/* [17] */
/* conv packedVec3<T : concrete_scalar>(vec3<T>) -> packedVec3<T> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(464),
+ /* overloads */ OverloadIndex(466),
},
};
diff --git a/src/tint/lang/wgsl/reader/lower/lower.cc b/src/tint/lang/wgsl/reader/lower/lower.cc
index 381fad1..6b67a5e 100644
--- a/src/tint/lang/wgsl/reader/lower/lower.cc
+++ b/src/tint/lang/wgsl/reader/lower/lower.cc
@@ -105,6 +105,8 @@
CASE(kPack2X16Unorm)
CASE(kPack4X8Snorm)
CASE(kPack4X8Unorm)
+ CASE(kPack4XI8)
+ CASE(kPack4XU8)
CASE(kPow)
CASE(kQuantizeToF16)
CASE(kRadians)
diff --git a/src/tint/lang/wgsl/resolver/builtin_validation_test.cc b/src/tint/lang/wgsl/resolver/builtin_validation_test.cc
index 7a062b5..ca20ce7 100644
--- a/src/tint/lang/wgsl/resolver/builtin_validation_test.cc
+++ b/src/tint/lang/wgsl/resolver/builtin_validation_test.cc
@@ -545,9 +545,9 @@
} // namespace texture_constexpr_args
-using ResolverPacked4x8IntegerDotProductExtensionValidationTest = ResolverTest;
+using ResolverPacked4x8IntegerDotProductValidationTest = ResolverTest;
-TEST_F(ResolverPacked4x8IntegerDotProductExtensionValidationTest, Dot4I8Packed) {
+TEST_F(ResolverPacked4x8IntegerDotProductValidationTest, Dot4I8Packed) {
// fn func { return dot4I8Packed(1u, 2u); }
Require(wgsl::LanguageFeature::kPacked4X8IntegerDotProduct);
@@ -560,7 +560,7 @@
EXPECT_TRUE(r()->Resolve());
}
-TEST_F(ResolverPacked4x8IntegerDotProductExtensionValidationTest, Dot4I8Packed_FeatureDisallowed) {
+TEST_F(ResolverPacked4x8IntegerDotProductValidationTest, Dot4I8Packed_FeatureDisallowed) {
// fn func { return dot4I8Packed(1u, 2u); }
Func("func", tint::Empty, ty.i32(),
Vector{
@@ -576,7 +576,7 @@
"current environment");
}
-TEST_F(ResolverPacked4x8IntegerDotProductExtensionValidationTest, Dot4U8Packed) {
+TEST_F(ResolverPacked4x8IntegerDotProductValidationTest, Dot4U8Packed) {
// fn func { return dot4U8Packed(1u, 2u); }
Require(wgsl::LanguageFeature::kPacked4X8IntegerDotProduct);
@@ -589,7 +589,7 @@
EXPECT_TRUE(r()->Resolve());
}
-TEST_F(ResolverPacked4x8IntegerDotProductExtensionValidationTest, Dot4U8Packed_FeatureDisallowed) {
+TEST_F(ResolverPacked4x8IntegerDotProductValidationTest, Dot4U8Packed_FeatureDisallowed) {
// fn func { return dot4U8Packed(1u, 2u); }
Func("func", tint::Empty, ty.u32(),
Vector{
@@ -605,6 +605,60 @@
"current environment");
}
+TEST_F(ResolverPacked4x8IntegerDotProductValidationTest, Pack4xI8) {
+ // fn func { return pack4xI8(vec4i()); }
+ Require(wgsl::LanguageFeature::kPacked4X8IntegerDotProduct);
+
+ Func("func", tint::Empty, ty.u32(),
+ Vector{
+ Return(Call(Source{Source::Location{12, 34}}, "pack4xI8", Call<vec4<i32>>())),
+ });
+
+ EXPECT_TRUE(r()->Resolve());
+}
+
+TEST_F(ResolverPacked4x8IntegerDotProductValidationTest, Pack4xI8_FeatureDisallowed) {
+ // fn func { return pack4xI8(vec4i()); }
+ Func("func", tint::Empty, ty.u32(),
+ Vector{
+ Return(Call(Source{Source::Location{12, 34}}, "pack4xI8", Call<vec4<i32>>())),
+ });
+
+ auto resolver = Resolver(this, {});
+ EXPECT_FALSE(resolver.Resolve());
+ EXPECT_EQ(resolver.error(),
+ "12:34 error: built-in function 'pack4xI8' requires the "
+ "packed_4x8_integer_dot_product language feature, which is not allowed in the "
+ "current environment");
+}
+
+TEST_F(ResolverPacked4x8IntegerDotProductValidationTest, Pack4xU8) {
+ // fn func { return pack4xU8(vec4u()); }
+ Require(wgsl::LanguageFeature::kPacked4X8IntegerDotProduct);
+
+ Func("func", tint::Empty, ty.u32(),
+ Vector{
+ Return(Call(Source{Source::Location{12, 34}}, "pack4xU8", Call<vec4<u32>>())),
+ });
+
+ EXPECT_TRUE(r()->Resolve());
+}
+
+TEST_F(ResolverPacked4x8IntegerDotProductValidationTest, Pack4xU8_FeatureDisallowed) {
+ // fn func { return pack4xU8(vec4u()); }
+ Func("func", tint::Empty, ty.u32(),
+ Vector{
+ Return(Call(Source{Source::Location{12, 34}}, "pack4xU8", Call<vec4<u32>>())),
+ });
+
+ auto resolver = Resolver(this, {});
+ EXPECT_FALSE(resolver.Resolve());
+ EXPECT_EQ(resolver.error(),
+ "12:34 error: built-in function 'pack4xU8' requires the "
+ "packed_4x8_integer_dot_product language feature, which is not allowed in the "
+ "current environment");
+}
+
TEST_F(ResolverBuiltinValidationTest, WorkgroupUniformLoad_WrongAddressSpace) {
// @group(0) @binding(0) var<storage, read_write> v : i32;
// fn foo() {
diff --git a/src/tint/lang/wgsl/resolver/resolver.cc b/src/tint/lang/wgsl/resolver/resolver.cc
index 6e60fa8..a155f8c 100644
--- a/src/tint/lang/wgsl/resolver/resolver.cc
+++ b/src/tint/lang/wgsl/resolver/resolver.cc
@@ -3132,7 +3132,7 @@
auto* texture = user->Variable();
if (!texture_sampler_set.Contains(texture)) {
current_function_->AddTextureSamplerPair(texture, nullptr);
- func->AddTextureSamplerPair(texture, nullptr);
+ func->AddTextureSamplerPair(param, nullptr);
texture_sampler_set.Add(texture);
}
} else if (param->Type()->Is<core::type::Sampler>()) {
@@ -3140,7 +3140,7 @@
auto* sampler = user->Variable();
if (!texture_sampler_set.Contains(sampler)) {
current_function_->AddTextureSamplerPair(nullptr, sampler);
- func->AddTextureSamplerPair(nullptr, sampler);
+ func->AddTextureSamplerPair(nullptr, param);
texture_sampler_set.Add(sampler);
}
}
diff --git a/src/tint/lang/wgsl/resolver/resolver_test.cc b/src/tint/lang/wgsl/resolver/resolver_test.cc
index f78bdc3..f8bcdb4 100644
--- a/src/tint/lang/wgsl/resolver/resolver_test.cc
+++ b/src/tint/lang/wgsl/resolver/resolver_test.cc
@@ -2255,6 +2255,105 @@
EXPECT_TRUE(outer_pairs[1].second == inner_pairs_2[0].second);
}
+TEST_F(ResolverTest, TextureSampler_TextureSampleInFunctionPassedAsArguments) {
+ GlobalVar("gt", ty.sampled_texture(core::type::TextureDimension::k2d, ty.f32()), Group(1_a),
+ Binding(1_a));
+ GlobalVar("gs", ty.sampler(core::type::SamplerKind::kSampler), Group(1_a), Binding(2_a));
+
+ auto* inner_coords = Param("coords", ty.vec2<f32>());
+ auto* inner_t = Param("t", ty.sampled_texture(core::type::TextureDimension::k2d, ty.f32()));
+ auto* inner_s = Param("s", ty.sampler(core::type::SamplerKind::kSampler));
+ auto* inner_call = Assign(Phony(), Call("textureSample", inner_t, inner_s, inner_coords));
+ const ast::Function* inner_func =
+ Func("inner_func", Vector{inner_coords, inner_t, inner_s}, ty.void_(), Vector{inner_call});
+
+ auto* middle_coords = Param("coords", ty.vec2<f32>());
+ auto* middle_s = Param("s", ty.sampler(core::type::SamplerKind::kSampler));
+ auto* middle_t = Param("t", ty.sampled_texture(core::type::TextureDimension::k2d, ty.f32()));
+ auto* middle_call = CallStmt(Call("inner_func", middle_coords, "t", "s"));
+ const ast::Function* middle_func = Func(
+ "middle_func", Vector{middle_coords, middle_s, middle_t}, ty.void_(), Vector{middle_call});
+
+ auto* outer_call = CallStmt(Call("middle_func", Call<vec2<f32>>(1_f, 2_f), "gs", "gt"));
+ const ast::Function* outer_func =
+ Func("outer_func", tint::Empty, ty.void_(), Vector{outer_call},
+ Vector{Stage(ast::PipelineStage::kFragment)});
+
+ EXPECT_TRUE(r()->Resolve()) << r()->error();
+
+ auto inner_pairs = Sem().Get(inner_func)->TextureSamplerPairs();
+ ASSERT_EQ(inner_pairs.Length(), 1u);
+ auto* inner_pair_texture = As<sem::Parameter>(inner_pairs[0].first);
+ ASSERT_NE(inner_pair_texture, nullptr);
+ EXPECT_EQ(inner_pair_texture->Index(), 1u);
+ auto* inner_pair_sampler = As<sem::Parameter>(inner_pairs[0].second);
+ ASSERT_NE(inner_pair_sampler, nullptr);
+ EXPECT_EQ(inner_pair_sampler->Index(), 2u);
+
+ auto middle_pairs = Sem().Get(middle_func)->TextureSamplerPairs();
+ ASSERT_EQ(middle_pairs.Length(), 1u);
+ auto* middle_pair_texture = As<sem::Parameter>(middle_pairs[0].first);
+ ASSERT_NE(middle_pair_texture, nullptr);
+ EXPECT_EQ(middle_pair_texture->Index(), 2u);
+ auto* middle_pair_sampler = As<sem::Parameter>(middle_pairs[0].second);
+ ASSERT_NE(middle_pair_sampler, nullptr);
+ EXPECT_EQ(middle_pair_sampler->Index(), 1u);
+
+ auto outer_pairs = Sem().Get(outer_func)->TextureSamplerPairs();
+ ASSERT_EQ(outer_pairs.Length(), 1u);
+ EXPECT_TRUE(outer_pairs[0].first != nullptr);
+ EXPECT_TRUE(outer_pairs[0].second != nullptr);
+}
+
+TEST_F(ResolverTest, TextureSampler_UnusedTextureSampleInFunctionPassedAsArguments) {
+ GlobalVar("gt", ty.sampled_texture(core::type::TextureDimension::k2d, ty.f32()), Group(1_a),
+ Binding(1_a));
+ GlobalVar("gs", ty.sampler(core::type::SamplerKind::kSampler), Group(1_a), Binding(2_a));
+
+ auto* inner_coords = Param("coords", ty.vec2<f32>());
+ auto* inner_t = Param("t", ty.sampled_texture(core::type::TextureDimension::k2d, ty.f32()));
+ auto* inner_s = Param("s", ty.sampler(core::type::SamplerKind::kSampler));
+ const ast::Function* inner_func =
+ Func("inner_func", Vector{inner_coords, inner_t, inner_s}, ty.void_(), Empty);
+
+ auto* middle_coords = Param("coords", ty.vec2<f32>());
+ auto* middle_s = Param("s", ty.sampler(core::type::SamplerKind::kSampler));
+ auto* middle_t = Param("t", ty.sampled_texture(core::type::TextureDimension::k2d, ty.f32()));
+ auto* middle_call = CallStmt(Call("inner_func", middle_coords, "t", "s"));
+ const ast::Function* middle_func = Func(
+ "middle_func", Vector{middle_coords, middle_s, middle_t}, ty.void_(), Vector{middle_call});
+
+ auto* outer_call = CallStmt(Call("middle_func", Call<vec2<f32>>(1_f, 2_f), "gs", "gt"));
+ const ast::Function* outer_func =
+ Func("outer_func", tint::Empty, ty.void_(), Vector{outer_call},
+ Vector{Stage(ast::PipelineStage::kFragment)});
+
+ EXPECT_TRUE(r()->Resolve()) << r()->error();
+
+ auto inner_pairs = Sem().Get(inner_func)->TextureSamplerPairs();
+ ASSERT_EQ(inner_pairs.Length(), 2u);
+ auto* inner_pair_texture = As<sem::Parameter>(inner_pairs[0].first);
+ ASSERT_NE(inner_pair_texture, nullptr);
+ EXPECT_EQ(inner_pair_texture->Index(), 1u);
+ auto* inner_pair_sampler = As<sem::Parameter>(inner_pairs[1].second);
+ ASSERT_NE(inner_pair_sampler, nullptr);
+ EXPECT_EQ(inner_pair_sampler->Index(), 2u);
+
+ auto middle_pairs = Sem().Get(middle_func)->TextureSamplerPairs();
+ ASSERT_EQ(middle_pairs.Length(), 2u);
+ auto* middle_pair_texture = As<sem::Parameter>(middle_pairs[0].first);
+ ASSERT_NE(middle_pair_texture, nullptr);
+ EXPECT_EQ(middle_pair_texture->Index(), 2u);
+ auto* middle_pair_sampler = As<sem::Parameter>(middle_pairs[1].second);
+ ASSERT_NE(middle_pair_sampler, nullptr);
+ EXPECT_EQ(middle_pair_sampler->Index(), 1u);
+
+ auto outer_pairs = Sem().Get(outer_func)->TextureSamplerPairs();
+ ASSERT_EQ(outer_pairs.Length(), 2u);
+ EXPECT_TRUE(outer_pairs[0].first != nullptr);
+ EXPECT_TRUE(outer_pairs[1].second != nullptr);
+}
+
TEST_F(ResolverTest, TextureSampler_TextureDimensions) {
GlobalVar("t", ty.sampled_texture(core::type::TextureDimension::k2d, ty.f32()), Group(1_a),
Binding(2_a));
diff --git a/src/tint/lang/wgsl/wgsl.def b/src/tint/lang/wgsl/wgsl.def
index 6d3add1..cb5a480 100644
--- a/src/tint/lang/wgsl/wgsl.def
+++ b/src/tint/lang/wgsl/wgsl.def
@@ -517,6 +517,8 @@
@must_use @const fn pack2x16unorm(vec2<f32>) -> u32
@must_use @const fn pack4x8snorm(vec4<f32>) -> u32
@must_use @const fn pack4x8unorm(vec4<f32>) -> u32
+@must_use @const fn pack4xI8(vec4<i32>) -> u32
+@must_use @const fn pack4xU8(vec4<u32>) -> u32
@must_use @const fn pow<T: fa_f32_f16>(T, T) -> T
@must_use @const fn pow<N: num, T: fa_f32_f16>(vec<N, T>, vec<N, T>) -> vec<N, T>
@must_use @const fn quantizeToF16(f32) -> f32