Import Tint changes from Dawn
Changes:
- 11bfdca89824e609029519e2f36ae0af5695bd20 [tint][spriv] Fix SampledImage::Equal() by Ben Clayton <bclayton@google.com>
- 9073b75698fffeaa6f0c6c18cbdbe7d9cde6dc8d [tint][core] Remove abstracts and packedVec3() from core.... by Ben Clayton <bclayton@google.com>
- f6398145fbde5d7366a7bf525b1d3c522c8b0159 Implement a push constant helper class. by Stephen White <senorblanco@chromium.org>
- 0d6b9d11ac4ba0d8aa7fc814189052635fa69a3d [tint] Fix GCC error by Ben Clayton <bclayton@google.com>
GitOrigin-RevId: 11bfdca89824e609029519e2f36ae0af5695bd20
Change-Id: I73ee7d0712eed8b1dff2b7b9ff0a01fce591219d
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/174480
Commit-Queue: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
diff --git a/src/tint/cmd/test/BUILD.bazel b/src/tint/cmd/test/BUILD.bazel
index f97708c..0eec522 100644
--- a/src/tint/cmd/test/BUILD.bazel
+++ b/src/tint/cmd/test/BUILD.bazel
@@ -56,9 +56,11 @@
"//src/tint/lang/msl/ir:test",
"//src/tint/lang/spirv/ir:test",
"//src/tint/lang/spirv/reader/lower:test",
+ "//src/tint/lang/spirv/type:test",
"//src/tint/lang/wgsl/ast:test",
"//src/tint/lang/wgsl/common:test",
"//src/tint/lang/wgsl/helpers:test",
+ "//src/tint/lang/wgsl/intrinsic:test",
"//src/tint/lang/wgsl/program:test",
"//src/tint/lang/wgsl/reader/lower:test",
"//src/tint/lang/wgsl/resolver:test",
diff --git a/src/tint/cmd/test/BUILD.cmake b/src/tint/cmd/test/BUILD.cmake
index 5164585..4b50533 100644
--- a/src/tint/cmd/test/BUILD.cmake
+++ b/src/tint/cmd/test/BUILD.cmake
@@ -57,9 +57,11 @@
tint_lang_msl_ir_test
tint_lang_spirv_ir_test
tint_lang_spirv_reader_lower_test
+ tint_lang_spirv_type_test
tint_lang_wgsl_ast_test
tint_lang_wgsl_common_test
tint_lang_wgsl_helpers_test
+ tint_lang_wgsl_intrinsic_test
tint_lang_wgsl_program_test
tint_lang_wgsl_reader_lower_test
tint_lang_wgsl_resolver_test
diff --git a/src/tint/cmd/test/BUILD.gn b/src/tint/cmd/test/BUILD.gn
index debb9f1..65fd5c2 100644
--- a/src/tint/cmd/test/BUILD.gn
+++ b/src/tint/cmd/test/BUILD.gn
@@ -62,10 +62,12 @@
"${tint_src_dir}/lang/msl/ir:unittests",
"${tint_src_dir}/lang/spirv/ir:unittests",
"${tint_src_dir}/lang/spirv/reader/lower:unittests",
+ "${tint_src_dir}/lang/spirv/type:unittests",
"${tint_src_dir}/lang/wgsl:unittests",
"${tint_src_dir}/lang/wgsl/ast:unittests",
"${tint_src_dir}/lang/wgsl/common:unittests",
"${tint_src_dir}/lang/wgsl/helpers:unittests",
+ "${tint_src_dir}/lang/wgsl/intrinsic:unittests",
"${tint_src_dir}/lang/wgsl/program:unittests",
"${tint_src_dir}/lang/wgsl/reader/lower:unittests",
"${tint_src_dir}/lang/wgsl/resolver:unittests",
diff --git a/src/tint/lang/core/core.def b/src/tint/lang/core/core.def
index f54c573..f4350ec 100644
--- a/src/tint/lang/core/core.def
+++ b/src/tint/lang/core/core.def
@@ -161,7 +161,7 @@
texture_external
// Internal types.
- __packed_vec3
+ __packed_vec3 // note: not core type, but used by legacy MSL writer
__atomic_compare_exchange_result_i32
__atomic_compare_exchange_result_u32
__frexp_result_abstract
@@ -228,8 +228,6 @@
// https://gpuweb.github.io/gpuweb/wgsl/#plain-types-section
type bool
-@precedence(5) @display("abstract-int") type ia
-@precedence(4) @display("abstract-float") type fa
@precedence(3) type i32
@precedence(2) type u32
@precedence(1) type f32
@@ -270,7 +268,6 @@
type texture_storage_2d_array<F: texel_format, A: access>
type texture_storage_3d<F: texel_format, A: access>
type texture_external
-type packedVec3<T>
@display("__modf_result_{T}") type __modf_result<T>
@display("__modf_result_vec{N}_{T}") type __modf_result_vec<N: num, T>
@@ -285,20 +282,12 @@
// A type matcher that can match one or more types. //
////////////////////////////////////////////////////////////////////////////////
-match scalar: ia | fa | f32 | f16 | i32 | u32 | bool
-match concrete_scalar: f32 | f16 | i32 | u32 | bool
-match scalar_no_f32: ia | fa | i32 | f16 | u32 | bool
-match scalar_no_f16: ia | fa | f32 | i32 | u32 | bool
-match scalar_no_i32: ia | fa | f32 | f16 | u32 | bool
-match scalar_no_u32: ia | fa | f32 | f16 | i32 | bool
-match scalar_no_bool: ia | fa | f32 | f16 | i32 | u32
-match fia_fiu32_f16: fa | ia | f32 | i32 | u32 | f16
-match fia_fi32_f16: fa | ia | f32 | i32 | f16
-match fia_fiu32: fa | ia | f32 | i32 | u32
-match fa_f32: fa | f32
-match fa_f32_f16: fa | f32 | f16
-match ia_iu32: ia | i32 | u32
-match ia_i32: ia | i32
+match scalar: f32 | f16 | i32 | u32 | bool
+match scalar_no_f32: i32 | f16 | u32 | bool
+match scalar_no_f16: f32 | i32 | u32 | bool
+match scalar_no_i32: f32 | f16 | u32 | bool
+match scalar_no_u32: f32 | f16 | i32 | bool
+match scalar_no_bool: f32 | f16 | i32 | u32
match fiu32_f16: f32 | i32 | u32 | f16
match fiu32: f32 | i32 | u32
match fi32_f16: f32 | i32 | f16
@@ -524,48 +513,48 @@
////////////////////////////////////////////////////////////////////////////////
// https://gpuweb.github.io/gpuweb/wgsl/#builtin-functions
-@must_use @const fn abs<T: fia_fiu32_f16>(T) -> T
-@must_use @const fn abs<N: num, T: fia_fiu32_f16>(vec<N, T>) -> vec<N, T>
-@must_use @const fn acos<T: fa_f32_f16>(@test_value(0.96891242171) T) -> T
-@must_use @const fn acos<N: num, T: fa_f32_f16>(@test_value(0.96891242171) vec<N, T>) -> vec<N, T>
-@must_use @const fn acosh<T: fa_f32_f16>(@test_value(1.5430806348) T) -> T
-@must_use @const fn acosh<N: num, T: fa_f32_f16>(@test_value(1.5430806348) vec<N, T>) -> vec<N, T>
+@must_use @const fn abs<T: fiu32_f16>(T) -> T
+@must_use @const fn abs<N: num, T: fiu32_f16>(vec<N, T>) -> vec<N, T>
+@must_use @const fn acos<T: f32_f16>(@test_value(0.96891242171) T) -> T
+@must_use @const fn acos<N: num, T: f32_f16>(@test_value(0.96891242171) vec<N, T>) -> vec<N, T>
+@must_use @const fn acosh<T: f32_f16>(@test_value(1.5430806348) T) -> T
+@must_use @const fn acosh<N: num, T: f32_f16>(@test_value(1.5430806348) vec<N, T>) -> vec<N, T>
@must_use @const fn all(bool) -> bool
@must_use @const fn all<N: num>(vec<N, bool>) -> bool
@must_use @const fn any(bool) -> bool
@must_use @const fn any<N: num>(vec<N, bool>) -> bool
@must_use fn arrayLength<T, A: access>(ptr<storage, array<T>, A>) -> u32
-@must_use @const fn asin<T: fa_f32_f16>(@test_value(0.479425538604) T) -> T
-@must_use @const fn asin<N: num, T: fa_f32_f16>(@test_value(0.479425538604) vec<N, T>) -> vec<N, T>
-@must_use @const fn asinh<T: fa_f32_f16>(T) -> T
-@must_use @const fn asinh<N: num, T: fa_f32_f16>(vec<N, T>) -> vec<N, T>
-@must_use @const fn atan<T: fa_f32_f16>(T) -> T
-@must_use @const fn atan<N: num, T: fa_f32_f16>(vec<N, T>) -> vec<N, T>
-@must_use @const fn atan2<T: fa_f32_f16>(T, T) -> T
-@must_use @const fn atan2<T: fa_f32_f16, N: num>(vec<N, T>, vec<N, T>) -> vec<N, T>
-@must_use @const fn atanh<T: fa_f32_f16>(@test_value(0.5) T) -> T
-@must_use @const fn atanh<N: num, T: fa_f32_f16>(@test_value(0.5) vec<N, T>) -> vec<N, T>
-@must_use @const fn ceil<T: fa_f32_f16>(@test_value(1.5) T) -> T
-@must_use @const fn ceil<N: num, T: fa_f32_f16>(@test_value(1.5) vec<N, T>) -> vec<N, T>
-@must_use @const fn clamp<T: fia_fiu32_f16>(T, T, T) -> T
-@must_use @const fn clamp<T: fia_fiu32_f16, N: num>(vec<N, T>, vec<N, T>, vec<N, T>) -> vec<N, T>
-@must_use @const fn cos<T: fa_f32_f16>(@test_value(0) T) -> T
-@must_use @const fn cos<N: num, T: fa_f32_f16>(@test_value(0) vec<N, T>) -> vec<N, T>
-@must_use @const fn cosh<T: fa_f32_f16>(@test_value(0) T) -> T
-@must_use @const fn cosh<N: num, T: fa_f32_f16>(@test_value(0) vec<N, T>) -> vec<N, T>
+@must_use @const fn asin<T: f32_f16>(@test_value(0.479425538604) T) -> T
+@must_use @const fn asin<N: num, T: f32_f16>(@test_value(0.479425538604) vec<N, T>) -> vec<N, T>
+@must_use @const fn asinh<T: f32_f16>(T) -> T
+@must_use @const fn asinh<N: num, T: f32_f16>(vec<N, T>) -> vec<N, T>
+@must_use @const fn atan<T: f32_f16>(T) -> T
+@must_use @const fn atan<N: num, T: f32_f16>(vec<N, T>) -> vec<N, T>
+@must_use @const fn atan2<T: f32_f16>(T, T) -> T
+@must_use @const fn atan2<T: f32_f16, N: num>(vec<N, T>, vec<N, T>) -> vec<N, T>
+@must_use @const fn atanh<T: f32_f16>(@test_value(0.5) T) -> T
+@must_use @const fn atanh<N: num, T: f32_f16>(@test_value(0.5) vec<N, T>) -> vec<N, T>
+@must_use @const fn ceil<T: f32_f16>(@test_value(1.5) T) -> T
+@must_use @const fn ceil<N: num, T: f32_f16>(@test_value(1.5) vec<N, T>) -> vec<N, T>
+@must_use @const fn clamp<T: fiu32_f16>(T, T, T) -> T
+@must_use @const fn clamp<T: fiu32_f16, N: num>(vec<N, T>, vec<N, T>, vec<N, T>) -> vec<N, T>
+@must_use @const fn cos<T: f32_f16>(@test_value(0) T) -> T
+@must_use @const fn cos<N: num, T: f32_f16>(@test_value(0) vec<N, T>) -> vec<N, T>
+@must_use @const fn cosh<T: f32_f16>(@test_value(0) T) -> T
+@must_use @const fn cosh<N: num, T: f32_f16>(@test_value(0) vec<N, T>) -> vec<N, T>
@must_use @const fn countLeadingZeros<T: iu32>(T) -> T
@must_use @const fn countLeadingZeros<N: num, T: iu32>(vec<N, T>) -> vec<N, T>
@must_use @const fn countOneBits<T: iu32>(T) -> T
@must_use @const fn countOneBits<N: num, T: iu32>(vec<N, T>) -> vec<N, T>
@must_use @const fn countTrailingZeros<T: iu32>(T) -> T
@must_use @const fn countTrailingZeros<N: num, T: iu32>(vec<N, T>) -> vec<N, T>
-@must_use @const fn cross<T: fa_f32_f16>(vec3<T>, vec3<T>) -> vec3<T>
-@must_use @const fn degrees<T: fa_f32_f16>(T) -> T
-@must_use @const fn degrees<N: num, T: fa_f32_f16>(vec<N, T>) -> vec<N, T>
-@must_use @const fn determinant<N: num, T: fa_f32_f16>(mat<N, N, T>) -> T
-@must_use @const fn distance<T: fa_f32_f16>(T, T) -> T
-@must_use @const fn distance<N: num, T: fa_f32_f16>(vec<N, T>, vec<N, T>) -> T
-@must_use @const fn dot<N: num, T: fia_fiu32_f16>(vec<N, T>, vec<N, T>) -> T
+@must_use @const fn cross<T: f32_f16>(vec3<T>, vec3<T>) -> vec3<T>
+@must_use @const fn degrees<T: f32_f16>(T) -> T
+@must_use @const fn degrees<N: num, T: f32_f16>(vec<N, T>) -> vec<N, T>
+@must_use @const fn determinant<N: num, T: f32_f16>(mat<N, N, T>) -> T
+@must_use @const fn distance<T: f32_f16>(T, T) -> T
+@must_use @const fn distance<N: num, T: f32_f16>(vec<N, T>, vec<N, T>) -> T
+@must_use @const fn dot<N: num, T: fiu32_f16>(vec<N, T>, vec<N, T>) -> T
@must_use fn dot4I8Packed(u32, u32) -> i32
@must_use fn dot4U8Packed(u32, u32) -> u32
@must_use @stage("fragment") fn dpdx(f32) -> f32
@@ -580,25 +569,25 @@
@must_use @stage("fragment") fn dpdyCoarse<N: num>(vec<N, f32>) -> vec<N, f32>
@must_use @stage("fragment") fn dpdyFine(f32) -> f32
@must_use @stage("fragment") fn dpdyFine<N: num>(vec<N, f32>) -> vec<N, f32>
-@must_use @const fn exp<T: fa_f32_f16>(T) -> T
-@must_use @const fn exp<N: num, T: fa_f32_f16>(vec<N, T>) -> vec<N, T>
-@must_use @const fn exp2<T: fa_f32_f16>(T) -> T
-@must_use @const fn exp2<N: num, T: fa_f32_f16>(vec<N, T>) -> vec<N, T>
+@must_use @const fn exp<T: f32_f16>(T) -> T
+@must_use @const fn exp<N: num, T: f32_f16>(vec<N, T>) -> vec<N, T>
+@must_use @const fn exp2<T: f32_f16>(T) -> T
+@must_use @const fn exp2<N: num, T: f32_f16>(vec<N, T>) -> vec<N, T>
@must_use @const fn extractBits<T: iu32>(T, u32, u32) -> T
@must_use @const fn extractBits<N: num, T: iu32>(vec<N, T>, u32, u32) -> vec<N, T>
-@must_use @const fn faceForward<N: num, T: fa_f32_f16>(vec<N, T>, vec<N, T>, vec<N, T>) -> vec<N, T>
+@must_use @const fn faceForward<N: num, T: f32_f16>(vec<N, T>, vec<N, T>, vec<N, T>) -> vec<N, T>
@must_use @const fn firstLeadingBit<T: iu32>(T) -> T
@must_use @const fn firstLeadingBit<N: num, T: iu32>(vec<N, T>) -> vec<N, T>
@must_use @const fn firstTrailingBit<T: iu32>(T) -> T
@must_use @const fn firstTrailingBit<N: num, T: iu32>(vec<N, T>) -> vec<N, T>
-@must_use @const fn floor<T: fa_f32_f16>(@test_value(1.5) T) -> T
-@must_use @const fn floor<N: num, T: fa_f32_f16>(@test_value(1.5) vec<N, T>) -> vec<N, T>
-@must_use @const fn fma<T: fa_f32_f16>(T, T, T) -> T
-@must_use @const fn fma<N: num, T: fa_f32_f16>(vec<N, T>, vec<N, T>, vec<N, T>) -> vec<N, T>
-@must_use @const fn fract<T: fa_f32_f16>(@test_value(1.25) T) -> T
-@must_use @const fn fract<N: num, T: fa_f32_f16>(@test_value(1.25) vec<N, T>) -> vec<N, T>
-@must_use @const fn frexp<T: fa_f32_f16>(T) -> __frexp_result<T>
-@must_use @const fn frexp<N: num, T: fa_f32_f16>(vec<N, T>) -> __frexp_result_vec<N, T>
+@must_use @const fn floor<T: f32_f16>(@test_value(1.5) T) -> T
+@must_use @const fn floor<N: num, T: f32_f16>(@test_value(1.5) vec<N, T>) -> vec<N, T>
+@must_use @const fn fma<T: f32_f16>(T, T, T) -> T
+@must_use @const fn fma<N: num, T: f32_f16>(vec<N, T>, vec<N, T>, vec<N, T>) -> vec<N, T>
+@must_use @const fn fract<T: f32_f16>(@test_value(1.25) T) -> T
+@must_use @const fn fract<N: num, T: f32_f16>(@test_value(1.25) vec<N, T>) -> vec<N, T>
+@must_use @const fn frexp<T: f32_f16>(T) -> __frexp_result<T>
+@must_use @const fn frexp<N: num, T: f32_f16>(vec<N, T>) -> __frexp_result_vec<N, T>
@must_use @stage("fragment") fn fwidth(f32) -> f32
@must_use @stage("fragment") fn fwidth<N: num>(vec<N, f32>) -> vec<N, f32>
@must_use @stage("fragment") fn fwidthCoarse(f32) -> f32
@@ -607,26 +596,26 @@
@must_use @stage("fragment") fn fwidthFine<N: num>(vec<N, f32>) -> vec<N, f32>
@must_use @const fn insertBits<T: iu32>(T, T, u32, u32) -> T
@must_use @const fn insertBits<N: num, T: iu32>(vec<N, T>, vec<N, T>, u32, u32) -> vec<N, T>
-@must_use @const fn inverseSqrt<T: fa_f32_f16>(T) -> T
-@must_use @const fn inverseSqrt<N: num, T: fa_f32_f16>(vec<N, T>) -> vec<N, T>
-@must_use @const fn ldexp<T: fa_f32_f16, U: ia_i32>(T, U) -> T
-@must_use @const fn ldexp<N: num, T: fa_f32_f16, U: ia_i32>(vec<N, T>, vec<N, U>) -> vec<N, T>
-@must_use @const fn length<T: fa_f32_f16>(@test_value(0.0) T) -> T
-@must_use @const fn length<N: num, T: fa_f32_f16>(@test_value(0.0) vec<N, T>) -> T
-@must_use @const fn log<T: fa_f32_f16>(T) -> T
-@must_use @const fn log<N: num, T: fa_f32_f16>(vec<N, T>) -> vec<N, T>
-@must_use @const fn log2<T: fa_f32_f16>(T) -> T
-@must_use @const fn log2<N: num, T: fa_f32_f16>(vec<N, T>) -> vec<N, T>
-@must_use @const fn max<T: fia_fiu32_f16>(T, T) -> T
-@must_use @const fn max<N: num, T: fia_fiu32_f16>(vec<N, T>, vec<N, T>) -> vec<N, T>
-@must_use @const fn min<T: fia_fiu32_f16>(T, T) -> T
-@must_use @const fn min<N: num, T: fia_fiu32_f16>(vec<N, T>, vec<N, T>) -> vec<N, T>
-@must_use @const fn mix<T: fa_f32_f16>(T, T, T) -> T
-@must_use @const fn mix<N: num, T: fa_f32_f16>(vec<N, T>, vec<N, T>, vec<N, T>) -> vec<N, T>
-@must_use @const fn mix<N: num, T: fa_f32_f16>(vec<N, T>, vec<N, T>, T) -> vec<N, T>
-@must_use @const fn modf<T: fa_f32_f16>(@test_value(-1.5) T) -> __modf_result<T>
-@must_use @const fn modf<N: num, T: fa_f32_f16>(@test_value(-1.5) vec<N, T>) -> __modf_result_vec<N, T>
-@must_use @const fn normalize<N: num, T: fa_f32_f16>(vec<N, T>) -> vec<N, T>
+@must_use @const fn inverseSqrt<T: f32_f16>(T) -> T
+@must_use @const fn inverseSqrt<N: num, T: f32_f16>(vec<N, T>) -> vec<N, T>
+@must_use @const fn ldexp<T: f32_f16, U: i32>(T, U) -> T
+@must_use @const fn ldexp<N: num, T: f32_f16, U: i32>(vec<N, T>, vec<N, U>) -> vec<N, T>
+@must_use @const fn length<T: f32_f16>(@test_value(0.0) T) -> T
+@must_use @const fn length<N: num, T: f32_f16>(@test_value(0.0) vec<N, T>) -> T
+@must_use @const fn log<T: f32_f16>(T) -> T
+@must_use @const fn log<N: num, T: f32_f16>(vec<N, T>) -> vec<N, T>
+@must_use @const fn log2<T: f32_f16>(T) -> T
+@must_use @const fn log2<N: num, T: f32_f16>(vec<N, T>) -> vec<N, T>
+@must_use @const fn max<T: fiu32_f16>(T, T) -> T
+@must_use @const fn max<N: num, T: fiu32_f16>(vec<N, T>, vec<N, T>) -> vec<N, T>
+@must_use @const fn min<T: fiu32_f16>(T, T) -> T
+@must_use @const fn min<N: num, T: fiu32_f16>(vec<N, T>, vec<N, T>) -> vec<N, T>
+@must_use @const fn mix<T: f32_f16>(T, T, T) -> T
+@must_use @const fn mix<N: num, T: f32_f16>(vec<N, T>, vec<N, T>, vec<N, T>) -> vec<N, T>
+@must_use @const fn mix<N: num, T: f32_f16>(vec<N, T>, vec<N, T>, T) -> vec<N, T>
+@must_use @const fn modf<T: f32_f16>(@test_value(-1.5) T) -> __modf_result<T>
+@must_use @const fn modf<N: num, T: f32_f16>(@test_value(-1.5) vec<N, T>) -> __modf_result_vec<N, T>
+@must_use @const fn normalize<N: num, T: f32_f16>(vec<N, T>) -> vec<N, T>
@must_use @const fn pack2x16float(vec2<f32>) -> u32
@must_use @const fn pack2x16snorm(vec2<f32>) -> u32
@must_use @const fn pack2x16unorm(vec2<f32>) -> u32
@@ -636,43 +625,43 @@
@must_use @const fn pack4xU8(vec4<u32>) -> u32
@must_use @const fn pack4xI8Clamp(vec4<i32>) -> u32
@must_use @const fn pack4xU8Clamp(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 pow<T: f32_f16>(T, T) -> T
+@must_use @const fn pow<N: num, T: f32_f16>(vec<N, T>, vec<N, T>) -> vec<N, T>
@must_use @const fn quantizeToF16(f32) -> f32
@must_use @const fn quantizeToF16<N: num>(vec<N, f32>) -> vec<N, f32>
-@must_use @const fn radians<T: fa_f32_f16>(T) -> T
-@must_use @const fn radians<N: num, T: fa_f32_f16>(vec<N, T>) -> vec<N, T>
-@must_use @const fn reflect<N: num, T: fa_f32_f16>(vec<N, T>, vec<N, T>) -> vec<N, T>
-@must_use @const fn refract<N: num, T: fa_f32_f16>(vec<N, T>, vec<N, T>, T) -> vec<N, T>
+@must_use @const fn radians<T: f32_f16>(T) -> T
+@must_use @const fn radians<N: num, T: f32_f16>(vec<N, T>) -> vec<N, T>
+@must_use @const fn reflect<N: num, T: f32_f16>(vec<N, T>, vec<N, T>) -> vec<N, T>
+@must_use @const fn refract<N: num, T: f32_f16>(vec<N, T>, vec<N, T>, T) -> vec<N, T>
@must_use @const fn reverseBits<T: iu32>(T) -> T
@must_use @const fn reverseBits<N: num, T: iu32>(vec<N, T>) -> vec<N, T>
-@must_use @const fn round<T: fa_f32_f16>(@test_value(3.5) T) -> T
-@must_use @const fn round<N: num, T: fa_f32_f16>(@test_value(3.5) vec<N, T>) -> vec<N, T>
-@must_use @const fn saturate<T: fa_f32_f16>(@test_value(2) T) -> T
-@must_use @const fn saturate<T: fa_f32_f16, N: num>(@test_value(2) vec<N, T>) -> vec<N, T>
+@must_use @const fn round<T: f32_f16>(@test_value(3.5) T) -> T
+@must_use @const fn round<N: num, T: f32_f16>(@test_value(3.5) vec<N, T>) -> vec<N, T>
+@must_use @const fn saturate<T: f32_f16>(@test_value(2) T) -> T
+@must_use @const fn saturate<T: f32_f16, N: num>(@test_value(2) vec<N, T>) -> vec<N, T>
@must_use @const("select_bool") fn select<T: scalar>(T, T, bool) -> T
@must_use @const("select_bool") fn select<T: scalar, N: num>(vec<N, T>, vec<N, T>, bool) -> vec<N, T>
@must_use @const("select_boolvec") fn select<N: num, T: scalar>(vec<N, T>, vec<N, T>, vec<N, bool>) -> vec<N, T>
-@must_use @const fn sign<T: fia_fi32_f16>(T) -> T
-@must_use @const fn sign<N: num, T: fia_fi32_f16>(vec<N, T>) -> vec<N, T>
-@must_use @const fn sin<T: fa_f32_f16>(@test_value(1.57079632679) T) -> T
-@must_use @const fn sin<N: num, T: fa_f32_f16>(@test_value(1.57079632679) vec<N, T>) -> vec<N, T>
-@must_use @const fn sinh<T: fa_f32_f16>(T) -> T
-@must_use @const fn sinh<N: num, T: fa_f32_f16>(vec<N, T>) -> vec<N, T>
-@must_use @const fn smoothstep<T: fa_f32_f16>(@test_value(2) T, @test_value(4) T, @test_value(3) T) -> T
-@must_use @const 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>
-@must_use @const fn sqrt<T: fa_f32_f16>(T) -> T
-@must_use @const fn sqrt<N: num, T: fa_f32_f16>(vec<N, T>) -> vec<N, T>
-@must_use @const fn step<T: fa_f32_f16>(T, T) -> T
-@must_use @const fn step<N: num, T: fa_f32_f16>(vec<N, T>, vec<N, T>) -> vec<N, T>
+@must_use @const fn sign<T: fi32_f16>(T) -> T
+@must_use @const fn sign<N: num, T: fi32_f16>(vec<N, T>) -> vec<N, T>
+@must_use @const fn sin<T: f32_f16>(@test_value(1.57079632679) T) -> T
+@must_use @const fn sin<N: num, T: f32_f16>(@test_value(1.57079632679) vec<N, T>) -> vec<N, T>
+@must_use @const fn sinh<T: f32_f16>(T) -> T
+@must_use @const fn sinh<N: num, T: f32_f16>(vec<N, T>) -> vec<N, T>
+@must_use @const fn smoothstep<T: f32_f16>(@test_value(2) T, @test_value(4) T, @test_value(3) T) -> T
+@must_use @const fn smoothstep<N: num, T: f32_f16>(@test_value(2) vec<N, T>, @test_value(4) vec<N, T>, @test_value(3) vec<N, T>) -> vec<N, T>
+@must_use @const fn sqrt<T: f32_f16>(T) -> T
+@must_use @const fn sqrt<N: num, T: f32_f16>(vec<N, T>) -> vec<N, T>
+@must_use @const fn step<T: f32_f16>(T, T) -> T
+@must_use @const fn step<N: num, T: f32_f16>(vec<N, T>, vec<N, T>) -> vec<N, T>
@stage("compute") fn storageBarrier()
-@must_use @const fn tan<T: fa_f32_f16>(T) -> T
-@must_use @const fn tan<N: num, T: fa_f32_f16>(vec<N, T>) -> vec<N, T>
-@must_use @const fn tanh<T: fa_f32_f16>(T) -> T
-@must_use @const fn tanh<N: num, T: fa_f32_f16>(vec<N, T>) -> vec<N, T>
-@must_use @const fn transpose<M: num, N: num, T: fa_f32_f16>(mat<M, N, T>) -> mat<N, M, T>
-@must_use @const fn trunc<T: fa_f32_f16>(@test_value(1.5) T) -> T
-@must_use @const fn trunc<N: num, T: fa_f32_f16>(@test_value(1.5) vec<N, T>) -> vec<N, T>
+@must_use @const fn tan<T: f32_f16>(T) -> T
+@must_use @const fn tan<N: num, T: f32_f16>(vec<N, T>) -> vec<N, T>
+@must_use @const fn tanh<T: f32_f16>(T) -> T
+@must_use @const fn tanh<N: num, T: f32_f16>(vec<N, T>) -> vec<N, T>
+@must_use @const fn transpose<M: num, N: num, T: f32_f16>(mat<M, N, T>) -> mat<N, M, T>
+@must_use @const fn trunc<T: f32_f16>(@test_value(1.5) T) -> T
+@must_use @const fn trunc<N: num, T: f32_f16>(@test_value(1.5) vec<N, T>) -> vec<N, T>
@must_use @const fn unpack2x16float(u32) -> vec2<f32>
@must_use @const fn unpack2x16snorm(u32) -> vec2<f32>
@must_use @const fn unpack2x16unorm(u32) -> vec2<f32>
@@ -864,12 +853,9 @@
@must_use @const("Zero") ctor f32() -> f32
@must_use @const("Zero") ctor f16() -> f16
@must_use @const("Zero") ctor bool() -> bool
-@must_use @const("Zero") ctor vec2() -> vec2<ia>
-@must_use @const("Zero") ctor vec3() -> vec3<ia>
-@must_use @const("Zero") ctor vec4() -> vec4<ia>
-@must_use @const("Zero") ctor vec2<T: concrete_scalar>() -> vec2<T>
-@must_use @const("Zero") ctor vec3<T: concrete_scalar>() -> vec3<T>
-@must_use @const("Zero") ctor vec4<T: concrete_scalar>() -> vec4<T>
+@must_use @const("Zero") ctor vec2<T: scalar>() -> vec2<T>
+@must_use @const("Zero") ctor vec3<T: scalar>() -> vec3<T>
+@must_use @const("Zero") ctor vec4<T: scalar>() -> vec4<T>
@must_use @const("Zero") ctor mat2x2<T: f32_f16>() -> mat2x2<T>
@must_use @const("Zero") ctor mat2x3<T: f32_f16>() -> mat2x3<T>
@must_use @const("Zero") ctor mat2x4<T: f32_f16>() -> mat2x4<T>
@@ -921,52 +907,52 @@
// Matrix constructors (scalar)
@must_use @const("MatInitS")
-ctor mat2x2<T: fa_f32_f16>(T, T,
- T, T) -> mat2x2<T>
+ctor mat2x2<T: f32_f16>(T, T,
+ T, T) -> mat2x2<T>
@must_use @const("MatInitS")
-ctor mat2x3<T: fa_f32_f16>(T, T, T,
- T, T, T) -> mat2x3<T>
+ctor mat2x3<T: f32_f16>(T, T, T,
+ T, T, T) -> mat2x3<T>
@must_use @const("MatInitS")
-ctor mat2x4<T: fa_f32_f16>(T, T, T, T,
- T, T, T, T) -> mat2x4<T>
+ctor mat2x4<T: f32_f16>(T, T, T, T,
+ T, T, T, T) -> mat2x4<T>
@must_use @const("MatInitS")
-ctor mat3x2<T: fa_f32_f16>(T, T,
- T, T,
- T, T) -> mat3x2<T>
+ctor mat3x2<T: f32_f16>(T, T,
+ T, T,
+ T, T) -> mat3x2<T>
@must_use @const("MatInitS")
-ctor mat3x3<T: fa_f32_f16>(T, T, T,
- T, T, T,
- T, T, T) -> mat3x3<T>
+ctor mat3x3<T: f32_f16>(T, T, T,
+ T, T, T,
+ T, T, T) -> mat3x3<T>
@must_use @const("MatInitS")
-ctor mat3x4<T: fa_f32_f16>(T, T, T, T,
- T, T, T, T,
- T, T, T, T) -> mat3x4<T>
+ctor mat3x4<T: f32_f16>(T, T, T, T,
+ T, T, T, T,
+ T, T, T, T) -> mat3x4<T>
@must_use @const("MatInitS")
-ctor mat4x2<T: fa_f32_f16>(T, T,
- T, T,
- T, T,
- T, T) -> mat4x2<T>
+ctor mat4x2<T: f32_f16>(T, T,
+ T, T,
+ T, T,
+ T, T) -> mat4x2<T>
@must_use @const("MatInitS")
-ctor mat4x3<T: fa_f32_f16>(T, T, T,
- T, T, T,
- T, T, T,
- T, T, T) -> mat4x3<T>
+ctor mat4x3<T: f32_f16>(T, T, T,
+ T, T, T,
+ T, T, T,
+ T, T, T) -> mat4x3<T>
@must_use @const("MatInitS")
-ctor mat4x4<T: fa_f32_f16>(T, T, T, T,
- T, T, T, T,
- T, T, T, T,
- T, T, T, T) -> mat4x4<T>
+ctor mat4x4<T: f32_f16>(T, T, T, T,
+ T, T, T, T,
+ T, T, T, T,
+ T, T, T, T) -> mat4x4<T>
// Matrix constructors (column vectors)
-@must_use @const("MatInitV") ctor mat2x2<T: fa_f32_f16>(vec2<T>, vec2<T>) -> mat2x2<T>
-@must_use @const("MatInitV") ctor mat2x3<T: fa_f32_f16>(vec3<T>, vec3<T>) -> mat2x3<T>
-@must_use @const("MatInitV") ctor mat2x4<T: fa_f32_f16>(vec4<T>, vec4<T>) -> mat2x4<T>
-@must_use @const("MatInitV") ctor mat3x2<T: fa_f32_f16>(vec2<T>, vec2<T>, vec2<T>) -> mat3x2<T>
-@must_use @const("MatInitV") ctor mat3x3<T: fa_f32_f16>(vec3<T>, vec3<T>, vec3<T>) -> mat3x3<T>
-@must_use @const("MatInitV") ctor mat3x4<T: fa_f32_f16>(vec4<T>, vec4<T>, vec4<T>) -> mat3x4<T>
-@must_use @const("MatInitV") ctor mat4x2<T: fa_f32_f16>(vec2<T>, vec2<T>, vec2<T>, vec2<T>) -> mat4x2<T>
-@must_use @const("MatInitV") ctor mat4x3<T: fa_f32_f16>(vec3<T>, vec3<T>, vec3<T>, vec3<T>) -> mat4x3<T>
-@must_use @const("MatInitV") ctor mat4x4<T: fa_f32_f16>(vec4<T>, vec4<T>, vec4<T>, vec4<T>) -> mat4x4<T>
+@must_use @const("MatInitV") ctor mat2x2<T: f32_f16>(vec2<T>, vec2<T>) -> mat2x2<T>
+@must_use @const("MatInitV") ctor mat2x3<T: f32_f16>(vec3<T>, vec3<T>) -> mat2x3<T>
+@must_use @const("MatInitV") ctor mat2x4<T: f32_f16>(vec4<T>, vec4<T>) -> mat2x4<T>
+@must_use @const("MatInitV") ctor mat3x2<T: f32_f16>(vec2<T>, vec2<T>, vec2<T>) -> mat3x2<T>
+@must_use @const("MatInitV") ctor mat3x3<T: f32_f16>(vec3<T>, vec3<T>, vec3<T>) -> mat3x3<T>
+@must_use @const("MatInitV") ctor mat3x4<T: f32_f16>(vec4<T>, vec4<T>, vec4<T>) -> mat3x4<T>
+@must_use @const("MatInitV") ctor mat4x2<T: f32_f16>(vec2<T>, vec2<T>, vec2<T>, vec2<T>) -> mat4x2<T>
+@must_use @const("MatInitV") ctor mat4x3<T: f32_f16>(vec3<T>, vec3<T>, vec3<T>, vec3<T>) -> mat4x3<T>
+@must_use @const("MatInitV") ctor mat4x4<T: f32_f16>(vec4<T>, vec4<T>, vec4<T>, vec4<T>) -> mat4x4<T>
////////////////////////////////////////////////////////////////////////////////
// Value conversions //
@@ -1014,9 +1000,6 @@
@must_use @const conv mat4x4<T: f16>(mat4x4<f32>) -> mat4x4<f16>
@must_use @const conv mat4x4<T: f32>(mat4x4<f16>) -> mat4x4<f32>
-// Conversion from vec3 to internal __packed_vec3 type.
-@must_use @const conv packedVec3<T: concrete_scalar>(vec3<T>) -> packedVec3<T>
-
////////////////////////////////////////////////////////////////////////////////
// Operators //
// //
@@ -1036,59 +1019,59 @@
@must_use @const op ! (bool) -> bool
@must_use @const op ! <N: num> (vec<N, bool>) -> vec<N, bool>
-@must_use @const op ~ <T: ia_iu32>(T) -> T
-@must_use @const op ~ <T: ia_iu32, N: num> (vec<N, T>) -> vec<N, T>
+@must_use @const op ~ <T: iu32>(T) -> T
+@must_use @const op ~ <T: iu32, N: num> (vec<N, T>) -> vec<N, T>
-@must_use @const("UnaryMinus") op - <T: fia_fi32_f16>(T) -> T
-@must_use @const("UnaryMinus") op - <T: fia_fi32_f16, N: num> (vec<N, T>) -> vec<N, T>
+@must_use @const("UnaryMinus") op - <T: fi32_f16>(T) -> T
+@must_use @const("UnaryMinus") op - <T: fi32_f16, N: num> (vec<N, T>) -> vec<N, T>
////////////////////////////////////////////////////////////////////////////////
// Binary Operators //
////////////////////////////////////////////////////////////////////////////////
-@must_use @const op + <T: fia_fiu32_f16>(T, T) -> T
-@must_use @const op + <T: fia_fiu32_f16, N: num> (vec<N, T>, vec<N, T>) -> vec<N, T>
-@must_use @const op + <T: fia_fiu32_f16, N: num> (vec<N, T>, T) -> vec<N, T>
-@must_use @const op + <T: fia_fiu32_f16, N: num> (T, vec<N, T>) -> vec<N, T>
-@must_use @const op + <T: fa_f32_f16, N: num, M: num> (mat<N, M, T>, mat<N, M, T>) -> mat<N, M, T>
+@must_use @const op + <T: fiu32_f16>(T, T) -> T
+@must_use @const op + <T: fiu32_f16, N: num> (vec<N, T>, vec<N, T>) -> vec<N, T>
+@must_use @const op + <T: fiu32_f16, N: num> (vec<N, T>, T) -> vec<N, T>
+@must_use @const op + <T: fiu32_f16, N: num> (T, vec<N, T>) -> vec<N, T>
+@must_use @const op + <T: f32_f16, N: num, M: num> (mat<N, M, T>, mat<N, M, T>) -> mat<N, M, T>
-@must_use @const op - <T: fia_fiu32_f16>(T, T) -> T
-@must_use @const op - <T: fia_fiu32_f16, N: num> (vec<N, T>, vec<N, T>) -> vec<N, T>
-@must_use @const op - <T: fia_fiu32_f16, N: num> (vec<N, T>, T) -> vec<N, T>
-@must_use @const op - <T: fia_fiu32_f16, N: num> (T, vec<N, T>) -> vec<N, T>
-@must_use @const op - <T: fa_f32_f16, N: num, M: num> (mat<N, M, T>, mat<N, M, T>) -> mat<N, M, T>
+@must_use @const op - <T: fiu32_f16>(T, T) -> T
+@must_use @const op - <T: fiu32_f16, N: num> (vec<N, T>, vec<N, T>) -> vec<N, T>
+@must_use @const op - <T: fiu32_f16, N: num> (vec<N, T>, T) -> vec<N, T>
+@must_use @const op - <T: fiu32_f16, N: num> (T, vec<N, T>) -> vec<N, T>
+@must_use @const op - <T: f32_f16, N: num, M: num> (mat<N, M, T>, mat<N, M, T>) -> mat<N, M, T>
-@must_use @const("Multiply") op * <T: fia_fiu32_f16>(T, T) -> T
-@must_use @const("Multiply") op * <T: fia_fiu32_f16, N: num> (vec<N, T>, vec<N, T>) -> vec<N, T>
-@must_use @const("Multiply") op * <T: fia_fiu32_f16, N: num> (vec<N, T>, T) -> vec<N, T>
-@must_use @const("Multiply") op * <T: fia_fiu32_f16, N: num> (T, vec<N, T>) -> vec<N, T>
-@must_use @const("Multiply") op * <T: fa_f32_f16, N: num, M: num> (T, mat<N, M, T>) -> mat<N, M, T>
-@must_use @const("Multiply") op * <T: fa_f32_f16, N: num, M: num> (mat<N, M, T>, T) -> mat<N, M, T>
-@must_use @const("MultiplyMatVec") op * <T: fa_f32_f16, C: num, R: num> (mat<C, R, T>, vec<C, T>) -> vec<R, T>
-@must_use @const("MultiplyVecMat") op * <T: fa_f32_f16, C: num, R: num> (vec<R, T>, mat<C, R, T>) -> vec<C, T>
-@must_use @const("MultiplyMatMat") op * <T: fa_f32_f16, K: num, C: num, R: num> (mat<K, R, T>, mat<C, K, T>) -> mat<C, R, T>
+@must_use @const("Multiply") op * <T: fiu32_f16>(T, T) -> T
+@must_use @const("Multiply") op * <T: fiu32_f16, N: num> (vec<N, T>, vec<N, T>) -> vec<N, T>
+@must_use @const("Multiply") op * <T: fiu32_f16, N: num> (vec<N, T>, T) -> vec<N, T>
+@must_use @const("Multiply") op * <T: fiu32_f16, N: num> (T, vec<N, T>) -> vec<N, T>
+@must_use @const("Multiply") op * <T: f32_f16, N: num, M: num> (T, mat<N, M, T>) -> mat<N, M, T>
+@must_use @const("Multiply") op * <T: f32_f16, N: num, M: num> (mat<N, M, T>, T) -> mat<N, M, T>
+@must_use @const("MultiplyMatVec") op * <T: f32_f16, C: num, R: num> (mat<C, R, T>, vec<C, T>) -> vec<R, T>
+@must_use @const("MultiplyVecMat") op * <T: f32_f16, C: num, R: num> (vec<R, T>, mat<C, R, T>) -> vec<C, T>
+@must_use @const("MultiplyMatMat") op * <T: f32_f16, K: num, C: num, R: num> (mat<K, R, T>, mat<C, K, T>) -> mat<C, R, T>
-@must_use @const op / <T: fia_fiu32_f16>(T, T) -> T
-@must_use @const op / <T: fia_fiu32_f16, N: num> (vec<N, T>, vec<N, T>) -> vec<N, T>
-@must_use @const op / <T: fia_fiu32_f16, N: num> (vec<N, T>, T) -> vec<N, T>
-@must_use @const op / <T: fia_fiu32_f16, N: num> (T, vec<N, T>) -> vec<N, T>
+@must_use @const op / <T: fiu32_f16>(T, T) -> T
+@must_use @const op / <T: fiu32_f16, N: num> (vec<N, T>, vec<N, T>) -> vec<N, T>
+@must_use @const op / <T: fiu32_f16, N: num> (vec<N, T>, T) -> vec<N, T>
+@must_use @const op / <T: fiu32_f16, N: num> (T, vec<N, T>) -> vec<N, T>
-@must_use @const op % <T: fia_fiu32_f16>(T, T) -> T
-@must_use @const op % <T: fia_fiu32_f16, N: num> (vec<N, T>, vec<N, T>) -> vec<N, T>
-@must_use @const op % <T: fia_fiu32_f16, N: num> (vec<N, T>, T) -> vec<N, T>
-@must_use @const op % <T: fia_fiu32_f16, N: num> (T, vec<N, T>) -> vec<N, T>
+@must_use @const op % <T: fiu32_f16>(T, T) -> T
+@must_use @const op % <T: fiu32_f16, N: num> (vec<N, T>, vec<N, T>) -> vec<N, T>
+@must_use @const op % <T: fiu32_f16, N: num> (vec<N, T>, T) -> vec<N, T>
+@must_use @const op % <T: fiu32_f16, N: num> (T, vec<N, T>) -> vec<N, T>
-@must_use @const op ^ <T: ia_iu32>(T, T) -> T
-@must_use @const op ^ <T: ia_iu32, N: num> (vec<N, T>, vec<N, T>) -> vec<N, T>
+@must_use @const op ^ <T: iu32>(T, T) -> T
+@must_use @const op ^ <T: iu32, N: num> (vec<N, T>, vec<N, T>) -> vec<N, T>
@must_use @const op & (bool, bool) -> bool
@must_use @const op & <N: num> (vec<N, bool>, vec<N, bool>) -> vec<N, bool>
-@must_use @const op & <T: ia_iu32>(T, T) -> T
-@must_use @const op & <T: ia_iu32, N: num> (vec<N, T>, vec<N, T>) -> vec<N, T>
+@must_use @const op & <T: iu32>(T, T) -> T
+@must_use @const op & <T: iu32, N: num> (vec<N, T>, vec<N, T>) -> vec<N, T>
@must_use @const op | (bool, bool) -> bool
@must_use @const op | <N: num> (vec<N, bool>, vec<N, bool>) -> vec<N, bool>
-@must_use @const op | <T: ia_iu32>(T, T) -> T
-@must_use @const op | <T: ia_iu32, N: num> (vec<N, T>, vec<N, T>) -> vec<N, T>
+@must_use @const op | <T: iu32>(T, T) -> T
+@must_use @const op | <T: iu32, N: num> (vec<N, T>, vec<N, T>) -> vec<N, T>
@must_use @const op && (bool, bool) -> bool
@must_use @const op || (bool, bool) -> bool
@@ -1099,20 +1082,20 @@
@must_use @const op != <T: scalar>(T, T) -> bool
@must_use @const op != <T: scalar, N: num> (vec<N, T>, vec<N, T>) -> vec<N, bool>
-@must_use @const op < <T: fia_fiu32_f16>(T, T) -> bool
-@must_use @const op < <T: fia_fiu32_f16, N: num> (vec<N, T>, vec<N, T>) -> vec<N, bool>
+@must_use @const op < <T: fiu32_f16>(T, T) -> bool
+@must_use @const op < <T: fiu32_f16, N: num> (vec<N, T>, vec<N, T>) -> vec<N, bool>
-@must_use @const op > <T: fia_fiu32_f16>(T, T) -> bool
-@must_use @const op > <T: fia_fiu32_f16, N: num> (vec<N, T>, vec<N, T>) -> vec<N, bool>
+@must_use @const op > <T: fiu32_f16>(T, T) -> bool
+@must_use @const op > <T: fiu32_f16, N: num> (vec<N, T>, vec<N, T>) -> vec<N, bool>
-@must_use @const op <= <T: fia_fiu32_f16>(T, T) -> bool
-@must_use @const op <= <T: fia_fiu32_f16, N: num> (vec<N, T>, vec<N, T>) -> vec<N, bool>
+@must_use @const op <= <T: fiu32_f16>(T, T) -> bool
+@must_use @const op <= <T: fiu32_f16, N: num> (vec<N, T>, vec<N, T>) -> vec<N, bool>
-@must_use @const op >= <T: fia_fiu32_f16>(T, T) -> bool
-@must_use @const op >= <T: fia_fiu32_f16, N: num> (vec<N, T>, vec<N, T>) -> vec<N, bool>
+@must_use @const op >= <T: fiu32_f16>(T, T) -> bool
+@must_use @const op >= <T: fiu32_f16, N: num> (vec<N, T>, vec<N, T>) -> vec<N, bool>
-@must_use @const op << <T: ia_iu32>(T, u32) -> T
-@must_use @const op << <T: ia_iu32, N: num> (vec<N, T>, vec<N, u32>) -> vec<N, T>
+@must_use @const op << <T: iu32>(T, u32) -> T
+@must_use @const op << <T: iu32, N: num> (vec<N, T>, vec<N, u32>) -> vec<N, T>
-@must_use @const op >> <T: ia_iu32>(T, u32) -> T
-@must_use @const op >> <T: ia_iu32, N: num> (vec<N, T>, vec<N, u32>) -> vec<N, T>
+@must_use @const op >> <T: iu32>(T, u32) -> T
+@must_use @const op >> <T: iu32, N: num> (vec<N, T>, vec<N, u32>) -> vec<N, T>
diff --git a/src/tint/lang/core/intrinsic/BUILD.bazel b/src/tint/lang/core/intrinsic/BUILD.bazel
index 141bff2..9ca5899 100644
--- a/src/tint/lang/core/intrinsic/BUILD.bazel
+++ b/src/tint/lang/core/intrinsic/BUILD.bazel
@@ -88,10 +88,8 @@
"//src/tint/lang/wgsl/ast",
"//src/tint/lang/wgsl/common",
"//src/tint/lang/wgsl/features",
- "//src/tint/lang/wgsl/intrinsic",
"//src/tint/lang/wgsl/program",
"//src/tint/lang/wgsl/resolver",
- "//src/tint/lang/wgsl/resolver:test",
"//src/tint/lang/wgsl/sem",
"//src/tint/utils/containers",
"//src/tint/utils/diagnostic",
diff --git a/src/tint/lang/core/intrinsic/BUILD.cmake b/src/tint/lang/core/intrinsic/BUILD.cmake
index 6af46bb..e7ae1e6 100644
--- a/src/tint/lang/core/intrinsic/BUILD.cmake
+++ b/src/tint/lang/core/intrinsic/BUILD.cmake
@@ -87,10 +87,8 @@
tint_lang_wgsl_ast
tint_lang_wgsl_common
tint_lang_wgsl_features
- tint_lang_wgsl_intrinsic
tint_lang_wgsl_program
tint_lang_wgsl_resolver
- tint_lang_wgsl_resolver_test
tint_lang_wgsl_sem
tint_utils_containers
tint_utils_diagnostic
diff --git a/src/tint/lang/core/intrinsic/BUILD.gn b/src/tint/lang/core/intrinsic/BUILD.gn
index fbfb8ce..8544d8e 100644
--- a/src/tint/lang/core/intrinsic/BUILD.gn
+++ b/src/tint/lang/core/intrinsic/BUILD.gn
@@ -87,10 +87,8 @@
"${tint_src_dir}/lang/wgsl/ast",
"${tint_src_dir}/lang/wgsl/common",
"${tint_src_dir}/lang/wgsl/features",
- "${tint_src_dir}/lang/wgsl/intrinsic",
"${tint_src_dir}/lang/wgsl/program",
"${tint_src_dir}/lang/wgsl/resolver",
- "${tint_src_dir}/lang/wgsl/resolver:unittests",
"${tint_src_dir}/lang/wgsl/sem",
"${tint_src_dir}/utils/containers",
"${tint_src_dir}/utils/diagnostic",
diff --git a/src/tint/lang/core/intrinsic/ctor_conv.cc b/src/tint/lang/core/intrinsic/ctor_conv.cc
index fefd1c1..3fa3905 100644
--- a/src/tint/lang/core/intrinsic/ctor_conv.cc
+++ b/src/tint/lang/core/intrinsic/ctor_conv.cc
@@ -76,8 +76,6 @@
return "mat4x3";
case CtorConv::kMat4x4:
return "mat4x4";
- case CtorConv::kPackedVec3:
- return "packedVec3";
}
return "<unknown>";
}
diff --git a/src/tint/lang/core/intrinsic/ctor_conv.h b/src/tint/lang/core/intrinsic/ctor_conv.h
index e2c1bfe..cc48d14 100644
--- a/src/tint/lang/core/intrinsic/ctor_conv.h
+++ b/src/tint/lang/core/intrinsic/ctor_conv.h
@@ -63,7 +63,6 @@
kMat4x2,
kMat4x3,
kMat4x4,
- kPackedVec3,
kNone,
};
diff --git a/src/tint/lang/core/intrinsic/data.cc b/src/tint/lang/core/intrinsic/data.cc
index 4d863cf..e30fab0 100644
--- a/src/tint/lang/core/intrinsic/data.cc
+++ b/src/tint/lang/core/intrinsic/data.cc
@@ -90,38 +90,6 @@
};
-/// TypeMatcher for 'type ia'
-constexpr TypeMatcher kIaMatcher {
-/* match */ [](MatchState& state, const Type* ty) -> const Type* {
- if (!MatchIa(state, ty)) {
- return nullptr;
- }
- return BuildIa(state, ty);
- },
-/* string */ [](MatchState*) -> std::string {
- StringStream ss;
- ss << "abstract-int";
- return ss.str();
- }
-};
-
-
-/// TypeMatcher for 'type fa'
-constexpr TypeMatcher kFaMatcher {
-/* match */ [](MatchState& state, const Type* ty) -> const Type* {
- if (!MatchFa(state, ty)) {
- return nullptr;
- }
- return BuildFa(state, ty);
- },
-/* string */ [](MatchState*) -> std::string {
- StringStream ss;
- ss << "abstract-float";
- return ss.str();
- }
-};
-
-
/// TypeMatcher for 'type i32'
constexpr TypeMatcher kI32Matcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
@@ -908,26 +876,6 @@
};
-/// TypeMatcher for 'type packedVec3'
-constexpr TypeMatcher kPackedVec3Matcher {
-/* match */ [](MatchState& state, const Type* ty) -> const Type* {
- const Type* T = nullptr;
- if (!MatchPackedVec3(state, ty, T)) {
- return nullptr;
- }
- T = state.Type(T);
- if (T == nullptr) {
- return nullptr;
- }
- return BuildPackedVec3(state, ty, T);
- },
-/* string */ [](MatchState* state) -> std::string {
- const std::string T = state->TypeName();
- return "packedVec3<" + T + ">";
- }
-};
-
-
/// TypeMatcher for 'type __modf_result'
constexpr TypeMatcher kModfResultMatcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
@@ -1051,41 +999,6 @@
/// TypeMatcher for 'match scalar'
constexpr TypeMatcher kScalarMatcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
- if (MatchIa(state, ty)) {
- return BuildIa(state, ty);
- }
- if (MatchFa(state, ty)) {
- return BuildFa(state, ty);
- }
- if (MatchI32(state, ty)) {
- return BuildI32(state, ty);
- }
- if (MatchU32(state, ty)) {
- return BuildU32(state, ty);
- }
- if (MatchF32(state, ty)) {
- return BuildF32(state, ty);
- }
- if (MatchF16(state, ty)) {
- return BuildF16(state, ty);
- }
- if (MatchBool(state, ty)) {
- return BuildBool(state, ty);
- }
- return nullptr;
- },
-/* string */ [](MatchState*) -> std::string {
- StringStream ss;
- // Note: We pass nullptr to the TypeMatcher::String() functions, as 'matcher's do not support
- // template arguments, nor can they match sub-types. As such, they have no use for the MatchState.
- ss << kIaMatcher.string(nullptr) << ", " << kFaMatcher.string(nullptr) << ", " << kF32Matcher.string(nullptr) << ", " << kF16Matcher.string(nullptr) << ", " << kI32Matcher.string(nullptr) << ", " << kU32Matcher.string(nullptr) << " or " << kBoolMatcher.string(nullptr);
- return ss.str();
- }
-};
-
-/// TypeMatcher for 'match concrete_scalar'
-constexpr TypeMatcher kConcreteScalarMatcher {
-/* match */ [](MatchState& state, const Type* ty) -> const Type* {
if (MatchI32(state, ty)) {
return BuildI32(state, ty);
}
@@ -1115,12 +1028,6 @@
/// TypeMatcher for 'match scalar_no_f32'
constexpr TypeMatcher kScalarNoF32Matcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
- if (MatchIa(state, ty)) {
- return BuildIa(state, ty);
- }
- if (MatchFa(state, ty)) {
- return BuildFa(state, ty);
- }
if (MatchI32(state, ty)) {
return BuildI32(state, ty);
}
@@ -1139,7 +1046,7 @@
StringStream ss;
// Note: We pass nullptr to the TypeMatcher::String() functions, as 'matcher's do not support
// template arguments, nor can they match sub-types. As such, they have no use for the MatchState.
- ss << kIaMatcher.string(nullptr) << ", " << kFaMatcher.string(nullptr) << ", " << kI32Matcher.string(nullptr) << ", " << kF16Matcher.string(nullptr) << ", " << kU32Matcher.string(nullptr) << " or " << kBoolMatcher.string(nullptr);
+ ss << kI32Matcher.string(nullptr) << ", " << kF16Matcher.string(nullptr) << ", " << kU32Matcher.string(nullptr) << " or " << kBoolMatcher.string(nullptr);
return ss.str();
}
};
@@ -1147,12 +1054,6 @@
/// TypeMatcher for 'match scalar_no_f16'
constexpr TypeMatcher kScalarNoF16Matcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
- if (MatchIa(state, ty)) {
- return BuildIa(state, ty);
- }
- if (MatchFa(state, ty)) {
- return BuildFa(state, ty);
- }
if (MatchI32(state, ty)) {
return BuildI32(state, ty);
}
@@ -1171,7 +1072,7 @@
StringStream ss;
// Note: We pass nullptr to the TypeMatcher::String() functions, as 'matcher's do not support
// template arguments, nor can they match sub-types. As such, they have no use for the MatchState.
- ss << kIaMatcher.string(nullptr) << ", " << kFaMatcher.string(nullptr) << ", " << kF32Matcher.string(nullptr) << ", " << kI32Matcher.string(nullptr) << ", " << kU32Matcher.string(nullptr) << " or " << kBoolMatcher.string(nullptr);
+ ss << kF32Matcher.string(nullptr) << ", " << kI32Matcher.string(nullptr) << ", " << kU32Matcher.string(nullptr) << " or " << kBoolMatcher.string(nullptr);
return ss.str();
}
};
@@ -1179,12 +1080,6 @@
/// TypeMatcher for 'match scalar_no_i32'
constexpr TypeMatcher kScalarNoI32Matcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
- if (MatchIa(state, ty)) {
- return BuildIa(state, ty);
- }
- if (MatchFa(state, ty)) {
- return BuildFa(state, ty);
- }
if (MatchU32(state, ty)) {
return BuildU32(state, ty);
}
@@ -1203,7 +1098,7 @@
StringStream ss;
// Note: We pass nullptr to the TypeMatcher::String() functions, as 'matcher's do not support
// template arguments, nor can they match sub-types. As such, they have no use for the MatchState.
- ss << kIaMatcher.string(nullptr) << ", " << kFaMatcher.string(nullptr) << ", " << kF32Matcher.string(nullptr) << ", " << kF16Matcher.string(nullptr) << ", " << kU32Matcher.string(nullptr) << " or " << kBoolMatcher.string(nullptr);
+ ss << kF32Matcher.string(nullptr) << ", " << kF16Matcher.string(nullptr) << ", " << kU32Matcher.string(nullptr) << " or " << kBoolMatcher.string(nullptr);
return ss.str();
}
};
@@ -1211,12 +1106,6 @@
/// TypeMatcher for 'match scalar_no_u32'
constexpr TypeMatcher kScalarNoU32Matcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
- if (MatchIa(state, ty)) {
- return BuildIa(state, ty);
- }
- if (MatchFa(state, ty)) {
- return BuildFa(state, ty);
- }
if (MatchI32(state, ty)) {
return BuildI32(state, ty);
}
@@ -1235,7 +1124,7 @@
StringStream ss;
// Note: We pass nullptr to the TypeMatcher::String() functions, as 'matcher's do not support
// template arguments, nor can they match sub-types. As such, they have no use for the MatchState.
- ss << kIaMatcher.string(nullptr) << ", " << kFaMatcher.string(nullptr) << ", " << kF32Matcher.string(nullptr) << ", " << kF16Matcher.string(nullptr) << ", " << kI32Matcher.string(nullptr) << " or " << kBoolMatcher.string(nullptr);
+ ss << kF32Matcher.string(nullptr) << ", " << kF16Matcher.string(nullptr) << ", " << kI32Matcher.string(nullptr) << " or " << kBoolMatcher.string(nullptr);
return ss.str();
}
};
@@ -1243,12 +1132,6 @@
/// TypeMatcher for 'match scalar_no_bool'
constexpr TypeMatcher kScalarNoBoolMatcher {
/* match */ [](MatchState& state, const Type* ty) -> const Type* {
- if (MatchIa(state, ty)) {
- return BuildIa(state, ty);
- }
- if (MatchFa(state, ty)) {
- return BuildFa(state, ty);
- }
if (MatchI32(state, ty)) {
return BuildI32(state, ty);
}
@@ -1267,183 +1150,7 @@
StringStream ss;
// Note: We pass nullptr to the TypeMatcher::String() functions, as 'matcher's do not support
// template arguments, nor can they match sub-types. As such, they have no use for the MatchState.
- ss << kIaMatcher.string(nullptr) << ", " << kFaMatcher.string(nullptr) << ", " << kF32Matcher.string(nullptr) << ", " << kF16Matcher.string(nullptr) << ", " << kI32Matcher.string(nullptr) << " or " << kU32Matcher.string(nullptr);
- return ss.str();
- }
-};
-
-/// TypeMatcher for 'match fia_fiu32_f16'
-constexpr TypeMatcher kFiaFiu32F16Matcher {
-/* match */ [](MatchState& state, const Type* ty) -> const Type* {
- if (MatchIa(state, ty)) {
- return BuildIa(state, ty);
- }
- if (MatchFa(state, ty)) {
- return BuildFa(state, ty);
- }
- if (MatchI32(state, ty)) {
- return BuildI32(state, ty);
- }
- if (MatchU32(state, ty)) {
- return BuildU32(state, ty);
- }
- if (MatchF32(state, ty)) {
- return BuildF32(state, ty);
- }
- if (MatchF16(state, ty)) {
- return BuildF16(state, ty);
- }
- return nullptr;
- },
-/* string */ [](MatchState*) -> std::string {
- StringStream ss;
- // Note: We pass nullptr to the TypeMatcher::String() functions, as 'matcher's do not support
- // template arguments, nor can they match sub-types. As such, they have no use for the MatchState.
- ss << kFaMatcher.string(nullptr) << ", " << kIaMatcher.string(nullptr) << ", " << kF32Matcher.string(nullptr) << ", " << kI32Matcher.string(nullptr) << ", " << kU32Matcher.string(nullptr) << " or " << kF16Matcher.string(nullptr);
- return ss.str();
- }
-};
-
-/// TypeMatcher for 'match fia_fi32_f16'
-constexpr TypeMatcher kFiaFi32F16Matcher {
-/* match */ [](MatchState& state, const Type* ty) -> const Type* {
- if (MatchIa(state, ty)) {
- return BuildIa(state, ty);
- }
- if (MatchFa(state, ty)) {
- return BuildFa(state, ty);
- }
- if (MatchI32(state, ty)) {
- return BuildI32(state, ty);
- }
- if (MatchF32(state, ty)) {
- return BuildF32(state, ty);
- }
- if (MatchF16(state, ty)) {
- return BuildF16(state, ty);
- }
- return nullptr;
- },
-/* string */ [](MatchState*) -> std::string {
- StringStream ss;
- // Note: We pass nullptr to the TypeMatcher::String() functions, as 'matcher's do not support
- // template arguments, nor can they match sub-types. As such, they have no use for the MatchState.
- ss << kFaMatcher.string(nullptr) << ", " << kIaMatcher.string(nullptr) << ", " << kF32Matcher.string(nullptr) << ", " << kI32Matcher.string(nullptr) << " or " << kF16Matcher.string(nullptr);
- return ss.str();
- }
-};
-
-/// TypeMatcher for 'match fia_fiu32'
-constexpr TypeMatcher kFiaFiu32Matcher {
-/* match */ [](MatchState& state, const Type* ty) -> const Type* {
- if (MatchIa(state, ty)) {
- return BuildIa(state, ty);
- }
- if (MatchFa(state, ty)) {
- return BuildFa(state, ty);
- }
- if (MatchI32(state, ty)) {
- return BuildI32(state, ty);
- }
- if (MatchU32(state, ty)) {
- return BuildU32(state, ty);
- }
- if (MatchF32(state, ty)) {
- return BuildF32(state, ty);
- }
- return nullptr;
- },
-/* string */ [](MatchState*) -> std::string {
- StringStream ss;
- // Note: We pass nullptr to the TypeMatcher::String() functions, as 'matcher's do not support
- // template arguments, nor can they match sub-types. As such, they have no use for the MatchState.
- ss << kFaMatcher.string(nullptr) << ", " << kIaMatcher.string(nullptr) << ", " << kF32Matcher.string(nullptr) << ", " << kI32Matcher.string(nullptr) << " or " << kU32Matcher.string(nullptr);
- return ss.str();
- }
-};
-
-/// TypeMatcher for 'match fa_f32'
-constexpr TypeMatcher kFaF32Matcher {
-/* match */ [](MatchState& state, const Type* ty) -> const Type* {
- if (MatchFa(state, ty)) {
- return BuildFa(state, ty);
- }
- if (MatchF32(state, ty)) {
- return BuildF32(state, ty);
- }
- return nullptr;
- },
-/* string */ [](MatchState*) -> std::string {
- StringStream ss;
- // Note: We pass nullptr to the TypeMatcher::String() functions, as 'matcher's do not support
- // template arguments, nor can they match sub-types. As such, they have no use for the MatchState.
- ss << kFaMatcher.string(nullptr) << " or " << kF32Matcher.string(nullptr);
- return ss.str();
- }
-};
-
-/// TypeMatcher for 'match fa_f32_f16'
-constexpr TypeMatcher kFaF32F16Matcher {
-/* match */ [](MatchState& state, const Type* ty) -> const Type* {
- if (MatchFa(state, ty)) {
- return BuildFa(state, ty);
- }
- if (MatchF32(state, ty)) {
- return BuildF32(state, ty);
- }
- if (MatchF16(state, ty)) {
- return BuildF16(state, ty);
- }
- return nullptr;
- },
-/* string */ [](MatchState*) -> std::string {
- StringStream ss;
- // Note: We pass nullptr to the TypeMatcher::String() functions, as 'matcher's do not support
- // template arguments, nor can they match sub-types. As such, they have no use for the MatchState.
- ss << kFaMatcher.string(nullptr) << ", " << kF32Matcher.string(nullptr) << " or " << kF16Matcher.string(nullptr);
- return ss.str();
- }
-};
-
-/// TypeMatcher for 'match ia_iu32'
-constexpr TypeMatcher kIaIu32Matcher {
-/* match */ [](MatchState& state, const Type* ty) -> const Type* {
- if (MatchIa(state, ty)) {
- return BuildIa(state, ty);
- }
- if (MatchI32(state, ty)) {
- return BuildI32(state, ty);
- }
- if (MatchU32(state, ty)) {
- return BuildU32(state, ty);
- }
- return nullptr;
- },
-/* string */ [](MatchState*) -> std::string {
- StringStream ss;
- // Note: We pass nullptr to the TypeMatcher::String() functions, as 'matcher's do not support
- // template arguments, nor can they match sub-types. As such, they have no use for the MatchState.
- ss << kIaMatcher.string(nullptr) << ", " << kI32Matcher.string(nullptr) << " or " << kU32Matcher.string(nullptr);
- return ss.str();
- }
-};
-
-/// TypeMatcher for 'match ia_i32'
-constexpr TypeMatcher kIaI32Matcher {
-/* match */ [](MatchState& state, const Type* ty) -> const Type* {
- if (MatchIa(state, ty)) {
- return BuildIa(state, ty);
- }
- if (MatchI32(state, ty)) {
- return BuildI32(state, ty);
- }
- return nullptr;
- },
-/* string */ [](MatchState*) -> std::string {
- StringStream ss;
- // Note: We pass nullptr to the TypeMatcher::String() functions, as 'matcher's do not support
- // template arguments, nor can they match sub-types. As such, they have no use for the MatchState.
- ss << kIaMatcher.string(nullptr) << " or " << kI32Matcher.string(nullptr);
+ ss << kF32Matcher.string(nullptr) << ", " << kF16Matcher.string(nullptr) << ", " << kI32Matcher.string(nullptr) << " or " << kU32Matcher.string(nullptr);
return ss.str();
}
};
@@ -1765,74 +1472,63 @@
/* [2] */ TemplateTypeMatcher<2>::matcher,
/* [3] */ TemplateTypeMatcher<3>::matcher,
/* [4] */ kBoolMatcher,
- /* [5] */ kIaMatcher,
- /* [6] */ kFaMatcher,
- /* [7] */ kI32Matcher,
- /* [8] */ kU32Matcher,
- /* [9] */ kF32Matcher,
- /* [10] */ kF16Matcher,
- /* [11] */ kVec2Matcher,
- /* [12] */ kVec3Matcher,
- /* [13] */ kVec4Matcher,
- /* [14] */ kMat2X2Matcher,
- /* [15] */ kMat2X3Matcher,
- /* [16] */ kMat2X4Matcher,
- /* [17] */ kMat3X2Matcher,
- /* [18] */ kMat3X3Matcher,
- /* [19] */ kMat3X4Matcher,
- /* [20] */ kMat4X2Matcher,
- /* [21] */ kMat4X3Matcher,
- /* [22] */ kMat4X4Matcher,
- /* [23] */ kVecMatcher,
- /* [24] */ kMatMatcher,
- /* [25] */ kPtrMatcher,
- /* [26] */ kAtomicMatcher,
- /* [27] */ kArrayMatcher,
- /* [28] */ kSamplerMatcher,
- /* [29] */ kSamplerComparisonMatcher,
- /* [30] */ kTexture1DMatcher,
- /* [31] */ kTexture2DMatcher,
- /* [32] */ kTexture2DArrayMatcher,
- /* [33] */ kTexture3DMatcher,
- /* [34] */ kTextureCubeMatcher,
- /* [35] */ kTextureCubeArrayMatcher,
- /* [36] */ kTextureMultisampled2DMatcher,
- /* [37] */ kTextureDepth2DMatcher,
- /* [38] */ kTextureDepth2DArrayMatcher,
- /* [39] */ kTextureDepthCubeMatcher,
- /* [40] */ kTextureDepthCubeArrayMatcher,
- /* [41] */ kTextureDepthMultisampled2DMatcher,
- /* [42] */ kTextureStorage1DMatcher,
- /* [43] */ kTextureStorage2DMatcher,
- /* [44] */ kTextureStorage2DArrayMatcher,
- /* [45] */ kTextureStorage3DMatcher,
- /* [46] */ kTextureExternalMatcher,
- /* [47] */ kPackedVec3Matcher,
- /* [48] */ kModfResultMatcher,
- /* [49] */ kModfResultVecMatcher,
- /* [50] */ kFrexpResultMatcher,
- /* [51] */ kFrexpResultVecMatcher,
- /* [52] */ kAtomicCompareExchangeResultMatcher,
- /* [53] */ kScalarMatcher,
- /* [54] */ kConcreteScalarMatcher,
- /* [55] */ kScalarNoF32Matcher,
- /* [56] */ kScalarNoF16Matcher,
- /* [57] */ kScalarNoI32Matcher,
- /* [58] */ kScalarNoU32Matcher,
- /* [59] */ kScalarNoBoolMatcher,
- /* [60] */ kFiaFiu32F16Matcher,
- /* [61] */ kFiaFi32F16Matcher,
- /* [62] */ kFiaFiu32Matcher,
- /* [63] */ kFaF32Matcher,
- /* [64] */ kFaF32F16Matcher,
- /* [65] */ kIaIu32Matcher,
- /* [66] */ kIaI32Matcher,
- /* [67] */ kFiu32F16Matcher,
- /* [68] */ kFiu32Matcher,
- /* [69] */ kFi32F16Matcher,
- /* [70] */ kFi32Matcher,
- /* [71] */ kF32F16Matcher,
- /* [72] */ kIu32Matcher,
+ /* [5] */ kI32Matcher,
+ /* [6] */ kU32Matcher,
+ /* [7] */ kF32Matcher,
+ /* [8] */ kF16Matcher,
+ /* [9] */ kVec2Matcher,
+ /* [10] */ kVec3Matcher,
+ /* [11] */ kVec4Matcher,
+ /* [12] */ kMat2X2Matcher,
+ /* [13] */ kMat2X3Matcher,
+ /* [14] */ kMat2X4Matcher,
+ /* [15] */ kMat3X2Matcher,
+ /* [16] */ kMat3X3Matcher,
+ /* [17] */ kMat3X4Matcher,
+ /* [18] */ kMat4X2Matcher,
+ /* [19] */ kMat4X3Matcher,
+ /* [20] */ kMat4X4Matcher,
+ /* [21] */ kVecMatcher,
+ /* [22] */ kMatMatcher,
+ /* [23] */ kPtrMatcher,
+ /* [24] */ kAtomicMatcher,
+ /* [25] */ kArrayMatcher,
+ /* [26] */ kSamplerMatcher,
+ /* [27] */ kSamplerComparisonMatcher,
+ /* [28] */ kTexture1DMatcher,
+ /* [29] */ kTexture2DMatcher,
+ /* [30] */ kTexture2DArrayMatcher,
+ /* [31] */ kTexture3DMatcher,
+ /* [32] */ kTextureCubeMatcher,
+ /* [33] */ kTextureCubeArrayMatcher,
+ /* [34] */ kTextureMultisampled2DMatcher,
+ /* [35] */ kTextureDepth2DMatcher,
+ /* [36] */ kTextureDepth2DArrayMatcher,
+ /* [37] */ kTextureDepthCubeMatcher,
+ /* [38] */ kTextureDepthCubeArrayMatcher,
+ /* [39] */ kTextureDepthMultisampled2DMatcher,
+ /* [40] */ kTextureStorage1DMatcher,
+ /* [41] */ kTextureStorage2DMatcher,
+ /* [42] */ kTextureStorage2DArrayMatcher,
+ /* [43] */ kTextureStorage3DMatcher,
+ /* [44] */ kTextureExternalMatcher,
+ /* [45] */ kModfResultMatcher,
+ /* [46] */ kModfResultVecMatcher,
+ /* [47] */ kFrexpResultMatcher,
+ /* [48] */ kFrexpResultVecMatcher,
+ /* [49] */ kAtomicCompareExchangeResultMatcher,
+ /* [50] */ kScalarMatcher,
+ /* [51] */ kScalarNoF32Matcher,
+ /* [52] */ kScalarNoF16Matcher,
+ /* [53] */ kScalarNoI32Matcher,
+ /* [54] */ kScalarNoU32Matcher,
+ /* [55] */ kScalarNoBoolMatcher,
+ /* [56] */ kFiu32F16Matcher,
+ /* [57] */ kFiu32Matcher,
+ /* [58] */ kFi32F16Matcher,
+ /* [59] */ kFi32Matcher,
+ /* [60] */ kF32F16Matcher,
+ /* [61] */ kIu32Matcher,
};
/// The template numbers, and number matchers
@@ -1854,178 +1550,170 @@
};
constexpr TypeMatcherIndex kTypeMatcherIndices[] = {
- /* [0] */ TypeMatcherIndex(25),
- /* [1] */ TypeMatcherIndex(27),
+ /* [0] */ TypeMatcherIndex(23),
+ /* [1] */ TypeMatcherIndex(25),
/* [2] */ TypeMatcherIndex(0),
- /* [3] */ TypeMatcherIndex(25),
- /* [4] */ TypeMatcherIndex(26),
+ /* [3] */ TypeMatcherIndex(23),
+ /* [4] */ TypeMatcherIndex(24),
/* [5] */ TypeMatcherIndex(0),
- /* [6] */ TypeMatcherIndex(23),
+ /* [6] */ TypeMatcherIndex(21),
/* [7] */ TypeMatcherIndex(0),
- /* [8] */ TypeMatcherIndex(23),
+ /* [8] */ TypeMatcherIndex(21),
/* [9] */ TypeMatcherIndex(4),
- /* [10] */ TypeMatcherIndex(12),
+ /* [10] */ TypeMatcherIndex(10),
/* [11] */ TypeMatcherIndex(0),
- /* [12] */ TypeMatcherIndex(24),
+ /* [12] */ TypeMatcherIndex(22),
/* [13] */ TypeMatcherIndex(0),
- /* [14] */ TypeMatcherIndex(23),
- /* [15] */ TypeMatcherIndex(9),
- /* [16] */ TypeMatcherIndex(50),
+ /* [14] */ TypeMatcherIndex(21),
+ /* [15] */ TypeMatcherIndex(7),
+ /* [16] */ TypeMatcherIndex(47),
/* [17] */ TypeMatcherIndex(0),
- /* [18] */ TypeMatcherIndex(51),
+ /* [18] */ TypeMatcherIndex(48),
/* [19] */ TypeMatcherIndex(0),
- /* [20] */ TypeMatcherIndex(23),
+ /* [20] */ TypeMatcherIndex(21),
/* [21] */ TypeMatcherIndex(1),
- /* [22] */ TypeMatcherIndex(48),
+ /* [22] */ TypeMatcherIndex(45),
/* [23] */ TypeMatcherIndex(0),
- /* [24] */ TypeMatcherIndex(49),
+ /* [24] */ TypeMatcherIndex(46),
/* [25] */ TypeMatcherIndex(0),
- /* [26] */ TypeMatcherIndex(11),
- /* [27] */ TypeMatcherIndex(9),
- /* [28] */ TypeMatcherIndex(13),
- /* [29] */ TypeMatcherIndex(9),
- /* [30] */ TypeMatcherIndex(13),
- /* [31] */ TypeMatcherIndex(7),
- /* [32] */ TypeMatcherIndex(13),
- /* [33] */ TypeMatcherIndex(8),
- /* [34] */ TypeMatcherIndex(30),
+ /* [26] */ TypeMatcherIndex(9),
+ /* [27] */ TypeMatcherIndex(7),
+ /* [28] */ TypeMatcherIndex(11),
+ /* [29] */ TypeMatcherIndex(7),
+ /* [30] */ TypeMatcherIndex(11),
+ /* [31] */ TypeMatcherIndex(5),
+ /* [32] */ TypeMatcherIndex(11),
+ /* [33] */ TypeMatcherIndex(6),
+ /* [34] */ TypeMatcherIndex(28),
/* [35] */ TypeMatcherIndex(0),
- /* [36] */ TypeMatcherIndex(11),
- /* [37] */ TypeMatcherIndex(8),
- /* [38] */ TypeMatcherIndex(31),
+ /* [36] */ TypeMatcherIndex(9),
+ /* [37] */ TypeMatcherIndex(6),
+ /* [38] */ TypeMatcherIndex(29),
/* [39] */ TypeMatcherIndex(0),
- /* [40] */ TypeMatcherIndex(32),
+ /* [40] */ TypeMatcherIndex(30),
/* [41] */ TypeMatcherIndex(0),
- /* [42] */ TypeMatcherIndex(12),
- /* [43] */ TypeMatcherIndex(8),
- /* [44] */ TypeMatcherIndex(33),
+ /* [42] */ TypeMatcherIndex(10),
+ /* [43] */ TypeMatcherIndex(6),
+ /* [44] */ TypeMatcherIndex(31),
/* [45] */ TypeMatcherIndex(0),
- /* [46] */ TypeMatcherIndex(34),
+ /* [46] */ TypeMatcherIndex(32),
/* [47] */ TypeMatcherIndex(0),
- /* [48] */ TypeMatcherIndex(35),
+ /* [48] */ TypeMatcherIndex(33),
/* [49] */ TypeMatcherIndex(0),
- /* [50] */ TypeMatcherIndex(36),
+ /* [50] */ TypeMatcherIndex(34),
/* [51] */ TypeMatcherIndex(0),
- /* [52] */ TypeMatcherIndex(13),
+ /* [52] */ TypeMatcherIndex(11),
/* [53] */ TypeMatcherIndex(0),
- /* [54] */ TypeMatcherIndex(11),
- /* [55] */ TypeMatcherIndex(7),
- /* [56] */ TypeMatcherIndex(12),
- /* [57] */ TypeMatcherIndex(9),
- /* [58] */ TypeMatcherIndex(30),
- /* [59] */ TypeMatcherIndex(9),
- /* [60] */ TypeMatcherIndex(31),
- /* [61] */ TypeMatcherIndex(9),
- /* [62] */ TypeMatcherIndex(32),
- /* [63] */ TypeMatcherIndex(9),
- /* [64] */ TypeMatcherIndex(33),
- /* [65] */ TypeMatcherIndex(9),
- /* [66] */ TypeMatcherIndex(12),
- /* [67] */ TypeMatcherIndex(7),
- /* [68] */ TypeMatcherIndex(34),
- /* [69] */ TypeMatcherIndex(9),
- /* [70] */ TypeMatcherIndex(35),
- /* [71] */ TypeMatcherIndex(9),
- /* [72] */ TypeMatcherIndex(11),
+ /* [54] */ TypeMatcherIndex(9),
+ /* [55] */ TypeMatcherIndex(5),
+ /* [56] */ TypeMatcherIndex(10),
+ /* [57] */ TypeMatcherIndex(7),
+ /* [58] */ TypeMatcherIndex(28),
+ /* [59] */ TypeMatcherIndex(7),
+ /* [60] */ TypeMatcherIndex(29),
+ /* [61] */ TypeMatcherIndex(7),
+ /* [62] */ TypeMatcherIndex(30),
+ /* [63] */ TypeMatcherIndex(7),
+ /* [64] */ TypeMatcherIndex(31),
+ /* [65] */ TypeMatcherIndex(7),
+ /* [66] */ TypeMatcherIndex(10),
+ /* [67] */ TypeMatcherIndex(5),
+ /* [68] */ TypeMatcherIndex(32),
+ /* [69] */ TypeMatcherIndex(7),
+ /* [70] */ TypeMatcherIndex(33),
+ /* [71] */ TypeMatcherIndex(7),
+ /* [72] */ TypeMatcherIndex(9),
/* [73] */ TypeMatcherIndex(0),
- /* [74] */ TypeMatcherIndex(11),
+ /* [74] */ TypeMatcherIndex(9),
/* [75] */ TypeMatcherIndex(1),
- /* [76] */ TypeMatcherIndex(12),
+ /* [76] */ TypeMatcherIndex(10),
/* [77] */ TypeMatcherIndex(1),
- /* [78] */ TypeMatcherIndex(52),
+ /* [78] */ TypeMatcherIndex(49),
/* [79] */ TypeMatcherIndex(0),
- /* [80] */ TypeMatcherIndex(23),
- /* [81] */ TypeMatcherIndex(8),
- /* [82] */ TypeMatcherIndex(11),
- /* [83] */ TypeMatcherIndex(5),
- /* [84] */ TypeMatcherIndex(11),
- /* [85] */ TypeMatcherIndex(10),
- /* [86] */ TypeMatcherIndex(11),
- /* [87] */ TypeMatcherIndex(4),
- /* [88] */ TypeMatcherIndex(12),
- /* [89] */ TypeMatcherIndex(5),
- /* [90] */ TypeMatcherIndex(12),
- /* [91] */ TypeMatcherIndex(10),
- /* [92] */ TypeMatcherIndex(12),
- /* [93] */ TypeMatcherIndex(4),
- /* [94] */ TypeMatcherIndex(13),
- /* [95] */ TypeMatcherIndex(5),
- /* [96] */ TypeMatcherIndex(13),
- /* [97] */ TypeMatcherIndex(1),
- /* [98] */ TypeMatcherIndex(13),
- /* [99] */ TypeMatcherIndex(10),
- /* [100] */ TypeMatcherIndex(13),
- /* [101] */ TypeMatcherIndex(4),
- /* [102] */ TypeMatcherIndex(14),
+ /* [80] */ TypeMatcherIndex(21),
+ /* [81] */ TypeMatcherIndex(6),
+ /* [82] */ TypeMatcherIndex(9),
+ /* [83] */ TypeMatcherIndex(8),
+ /* [84] */ TypeMatcherIndex(9),
+ /* [85] */ TypeMatcherIndex(4),
+ /* [86] */ TypeMatcherIndex(10),
+ /* [87] */ TypeMatcherIndex(8),
+ /* [88] */ TypeMatcherIndex(10),
+ /* [89] */ TypeMatcherIndex(4),
+ /* [90] */ TypeMatcherIndex(11),
+ /* [91] */ TypeMatcherIndex(1),
+ /* [92] */ TypeMatcherIndex(11),
+ /* [93] */ TypeMatcherIndex(8),
+ /* [94] */ TypeMatcherIndex(11),
+ /* [95] */ TypeMatcherIndex(4),
+ /* [96] */ TypeMatcherIndex(12),
+ /* [97] */ TypeMatcherIndex(0),
+ /* [98] */ TypeMatcherIndex(12),
+ /* [99] */ TypeMatcherIndex(8),
+ /* [100] */ TypeMatcherIndex(12),
+ /* [101] */ TypeMatcherIndex(7),
+ /* [102] */ TypeMatcherIndex(13),
/* [103] */ TypeMatcherIndex(0),
- /* [104] */ TypeMatcherIndex(14),
- /* [105] */ TypeMatcherIndex(10),
- /* [106] */ TypeMatcherIndex(14),
- /* [107] */ TypeMatcherIndex(9),
- /* [108] */ TypeMatcherIndex(15),
+ /* [104] */ TypeMatcherIndex(13),
+ /* [105] */ TypeMatcherIndex(8),
+ /* [106] */ TypeMatcherIndex(13),
+ /* [107] */ TypeMatcherIndex(7),
+ /* [108] */ TypeMatcherIndex(14),
/* [109] */ TypeMatcherIndex(0),
- /* [110] */ TypeMatcherIndex(15),
- /* [111] */ TypeMatcherIndex(10),
- /* [112] */ TypeMatcherIndex(15),
- /* [113] */ TypeMatcherIndex(9),
- /* [114] */ TypeMatcherIndex(16),
+ /* [110] */ TypeMatcherIndex(14),
+ /* [111] */ TypeMatcherIndex(8),
+ /* [112] */ TypeMatcherIndex(14),
+ /* [113] */ TypeMatcherIndex(7),
+ /* [114] */ TypeMatcherIndex(15),
/* [115] */ TypeMatcherIndex(0),
- /* [116] */ TypeMatcherIndex(16),
- /* [117] */ TypeMatcherIndex(10),
- /* [118] */ TypeMatcherIndex(16),
- /* [119] */ TypeMatcherIndex(9),
- /* [120] */ TypeMatcherIndex(17),
+ /* [116] */ TypeMatcherIndex(15),
+ /* [117] */ TypeMatcherIndex(8),
+ /* [118] */ TypeMatcherIndex(15),
+ /* [119] */ TypeMatcherIndex(7),
+ /* [120] */ TypeMatcherIndex(16),
/* [121] */ TypeMatcherIndex(0),
- /* [122] */ TypeMatcherIndex(17),
- /* [123] */ TypeMatcherIndex(10),
- /* [124] */ TypeMatcherIndex(17),
- /* [125] */ TypeMatcherIndex(9),
- /* [126] */ TypeMatcherIndex(18),
+ /* [122] */ TypeMatcherIndex(16),
+ /* [123] */ TypeMatcherIndex(8),
+ /* [124] */ TypeMatcherIndex(16),
+ /* [125] */ TypeMatcherIndex(7),
+ /* [126] */ TypeMatcherIndex(17),
/* [127] */ TypeMatcherIndex(0),
- /* [128] */ TypeMatcherIndex(18),
- /* [129] */ TypeMatcherIndex(10),
- /* [130] */ TypeMatcherIndex(18),
- /* [131] */ TypeMatcherIndex(9),
- /* [132] */ TypeMatcherIndex(19),
+ /* [128] */ TypeMatcherIndex(17),
+ /* [129] */ TypeMatcherIndex(8),
+ /* [130] */ TypeMatcherIndex(17),
+ /* [131] */ TypeMatcherIndex(7),
+ /* [132] */ TypeMatcherIndex(18),
/* [133] */ TypeMatcherIndex(0),
- /* [134] */ TypeMatcherIndex(19),
- /* [135] */ TypeMatcherIndex(10),
- /* [136] */ TypeMatcherIndex(19),
- /* [137] */ TypeMatcherIndex(9),
- /* [138] */ TypeMatcherIndex(20),
+ /* [134] */ TypeMatcherIndex(18),
+ /* [135] */ TypeMatcherIndex(8),
+ /* [136] */ TypeMatcherIndex(18),
+ /* [137] */ TypeMatcherIndex(7),
+ /* [138] */ TypeMatcherIndex(19),
/* [139] */ TypeMatcherIndex(0),
- /* [140] */ TypeMatcherIndex(20),
- /* [141] */ TypeMatcherIndex(10),
- /* [142] */ TypeMatcherIndex(20),
- /* [143] */ TypeMatcherIndex(9),
- /* [144] */ TypeMatcherIndex(21),
+ /* [140] */ TypeMatcherIndex(19),
+ /* [141] */ TypeMatcherIndex(8),
+ /* [142] */ TypeMatcherIndex(19),
+ /* [143] */ TypeMatcherIndex(7),
+ /* [144] */ TypeMatcherIndex(20),
/* [145] */ TypeMatcherIndex(0),
- /* [146] */ TypeMatcherIndex(21),
- /* [147] */ TypeMatcherIndex(10),
- /* [148] */ TypeMatcherIndex(21),
- /* [149] */ TypeMatcherIndex(9),
- /* [150] */ TypeMatcherIndex(22),
- /* [151] */ TypeMatcherIndex(0),
- /* [152] */ TypeMatcherIndex(22),
- /* [153] */ TypeMatcherIndex(10),
- /* [154] */ TypeMatcherIndex(22),
- /* [155] */ TypeMatcherIndex(9),
- /* [156] */ TypeMatcherIndex(47),
- /* [157] */ TypeMatcherIndex(0),
- /* [158] */ TypeMatcherIndex(37),
- /* [159] */ TypeMatcherIndex(38),
- /* [160] */ TypeMatcherIndex(39),
- /* [161] */ TypeMatcherIndex(40),
- /* [162] */ TypeMatcherIndex(41),
- /* [163] */ TypeMatcherIndex(42),
- /* [164] */ TypeMatcherIndex(43),
- /* [165] */ TypeMatcherIndex(44),
- /* [166] */ TypeMatcherIndex(45),
- /* [167] */ TypeMatcherIndex(46),
- /* [168] */ TypeMatcherIndex(28),
- /* [169] */ TypeMatcherIndex(2),
- /* [170] */ TypeMatcherIndex(29),
- /* [171] */ TypeMatcherIndex(3),
+ /* [146] */ TypeMatcherIndex(20),
+ /* [147] */ TypeMatcherIndex(8),
+ /* [148] */ TypeMatcherIndex(20),
+ /* [149] */ TypeMatcherIndex(7),
+ /* [150] */ TypeMatcherIndex(35),
+ /* [151] */ TypeMatcherIndex(36),
+ /* [152] */ TypeMatcherIndex(37),
+ /* [153] */ TypeMatcherIndex(38),
+ /* [154] */ TypeMatcherIndex(39),
+ /* [155] */ TypeMatcherIndex(40),
+ /* [156] */ TypeMatcherIndex(41),
+ /* [157] */ TypeMatcherIndex(42),
+ /* [158] */ TypeMatcherIndex(43),
+ /* [159] */ TypeMatcherIndex(44),
+ /* [160] */ TypeMatcherIndex(26),
+ /* [161] */ TypeMatcherIndex(2),
+ /* [162] */ TypeMatcherIndex(27),
+ /* [163] */ TypeMatcherIndex(3),
};
static_assert(TypeMatcherIndex::CanIndex(kTypeMatcherIndices),
@@ -2183,7 +1871,7 @@
{
/* [20] */
/* usage */ core::ParameterUsage::kSampler,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(168),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(160),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2231,7 +1919,7 @@
{
/* [28] */
/* usage */ core::ParameterUsage::kSampler,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(168),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(160),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2243,7 +1931,7 @@
{
/* [30] */
/* usage */ core::ParameterUsage::kArrayIndex,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(169),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(161),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2255,13 +1943,13 @@
{
/* [32] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(159),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(151),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [33] */
/* usage */ core::ParameterUsage::kSampler,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(170),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(162),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2297,7 +1985,7 @@
{
/* [39] */
/* usage */ core::ParameterUsage::kSampler,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(168),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(160),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2333,7 +2021,7 @@
{
/* [45] */
/* usage */ core::ParameterUsage::kSampler,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(168),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(160),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2369,7 +2057,7 @@
{
/* [51] */
/* usage */ core::ParameterUsage::kSampler,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(168),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(160),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2405,7 +2093,7 @@
{
/* [57] */
/* usage */ core::ParameterUsage::kSampler,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(168),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(160),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2441,7 +2129,7 @@
{
/* [63] */
/* usage */ core::ParameterUsage::kSampler,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(168),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(160),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2471,13 +2159,13 @@
{
/* [68] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(159),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(151),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [69] */
/* usage */ core::ParameterUsage::kSampler,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(168),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(160),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2519,7 +2207,7 @@
{
/* [76] */
/* usage */ core::ParameterUsage::kSampler,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(168),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(160),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2549,7 +2237,7 @@
{
/* [81] */
/* usage */ core::ParameterUsage::kSampler,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(168),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(160),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2561,19 +2249,19 @@
{
/* [83] */
/* usage */ core::ParameterUsage::kArrayIndex,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(169),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(161),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [84] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(159),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(151),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [85] */
/* usage */ core::ParameterUsage::kSampler,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(168),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(160),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2597,13 +2285,13 @@
{
/* [89] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(158),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(150),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [90] */
/* usage */ core::ParameterUsage::kSampler,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(170),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(162),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2627,13 +2315,13 @@
{
/* [94] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(161),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(153),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [95] */
/* usage */ core::ParameterUsage::kSampler,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(170),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(162),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2663,7 +2351,7 @@
{
/* [100] */
/* usage */ core::ParameterUsage::kSampler,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(168),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(160),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2693,7 +2381,7 @@
{
/* [105] */
/* usage */ core::ParameterUsage::kSampler,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(168),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(160),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2723,7 +2411,7 @@
{
/* [110] */
/* usage */ core::ParameterUsage::kSampler,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(168),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(160),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2753,7 +2441,7 @@
{
/* [115] */
/* usage */ core::ParameterUsage::kSampler,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(168),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(160),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2783,7 +2471,7 @@
{
/* [120] */
/* usage */ core::ParameterUsage::kSampler,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(168),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(160),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2813,7 +2501,7 @@
{
/* [125] */
/* usage */ core::ParameterUsage::kSampler,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(168),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(160),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2843,7 +2531,7 @@
{
/* [130] */
/* usage */ core::ParameterUsage::kSampler,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(168),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(160),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2873,7 +2561,7 @@
{
/* [135] */
/* usage */ core::ParameterUsage::kSampler,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(168),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(160),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2897,13 +2585,13 @@
{
/* [139] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(158),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(150),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [140] */
/* usage */ core::ParameterUsage::kSampler,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(168),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(160),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2927,13 +2615,13 @@
{
/* [144] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(161),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(153),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [145] */
/* usage */ core::ParameterUsage::kSampler,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(168),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(160),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -2993,7 +2681,7 @@
{
/* [155] */
/* usage */ core::ParameterUsage::kSampler,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(168),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(160),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3005,13 +2693,13 @@
{
/* [157] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(158),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(150),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [158] */
/* usage */ core::ParameterUsage::kSampler,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(168),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(160),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3029,13 +2717,13 @@
{
/* [161] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(160),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(152),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [162] */
/* usage */ core::ParameterUsage::kSampler,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(170),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(162),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3059,7 +2747,7 @@
{
/* [166] */
/* usage */ core::ParameterUsage::kSampler,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(168),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(160),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3083,7 +2771,7 @@
{
/* [170] */
/* usage */ core::ParameterUsage::kSampler,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(168),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(160),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3107,7 +2795,7 @@
{
/* [174] */
/* usage */ core::ParameterUsage::kSampler,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(168),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(160),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3131,7 +2819,7 @@
{
/* [178] */
/* usage */ core::ParameterUsage::kSampler,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(168),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(160),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3149,13 +2837,13 @@
{
/* [181] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(160),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(152),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [182] */
/* usage */ core::ParameterUsage::kSampler,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(168),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(160),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3173,7 +2861,7 @@
{
/* [185] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(165),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(157),
/* number_matcher_indices */ NumberMatcherIndicesIndex(6),
},
{
@@ -3197,7 +2885,7 @@
{
/* [189] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(165),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(157),
/* number_matcher_indices */ NumberMatcherIndicesIndex(8),
},
{
@@ -3221,7 +2909,7 @@
{
/* [193] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(165),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(157),
/* number_matcher_indices */ NumberMatcherIndicesIndex(10),
},
{
@@ -3257,19 +2945,19 @@
{
/* [199] */
/* usage */ core::ParameterUsage::kArrayIndex,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(169),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(161),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [200] */
/* usage */ core::ParameterUsage::kLevel,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(171),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(163),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [201] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(159),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(151),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3287,7 +2975,7 @@
{
/* [204] */
/* usage */ core::ParameterUsage::kLevel,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(169),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(161),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3479,7 +3167,7 @@
{
/* [236] */
/* usage */ core::ParameterUsage::kSampler,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(168),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(160),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3491,13 +3179,13 @@
{
/* [238] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(167),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(159),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [239] */
/* usage */ core::ParameterUsage::kSampler,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(168),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(160),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3509,7 +3197,7 @@
{
/* [241] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(163),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(155),
/* number_matcher_indices */ NumberMatcherIndicesIndex(6),
},
{
@@ -3527,7 +3215,7 @@
{
/* [244] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(164),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(156),
/* number_matcher_indices */ NumberMatcherIndicesIndex(6),
},
{
@@ -3545,7 +3233,7 @@
{
/* [247] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(166),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(158),
/* number_matcher_indices */ NumberMatcherIndicesIndex(6),
},
{
@@ -3563,7 +3251,7 @@
{
/* [250] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(163),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(155),
/* number_matcher_indices */ NumberMatcherIndicesIndex(8),
},
{
@@ -3581,7 +3269,7 @@
{
/* [253] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(164),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(156),
/* number_matcher_indices */ NumberMatcherIndicesIndex(8),
},
{
@@ -3599,7 +3287,7 @@
{
/* [256] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(166),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(158),
/* number_matcher_indices */ NumberMatcherIndicesIndex(8),
},
{
@@ -3617,7 +3305,7 @@
{
/* [259] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(163),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(155),
/* number_matcher_indices */ NumberMatcherIndicesIndex(10),
},
{
@@ -3635,7 +3323,7 @@
{
/* [262] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(164),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(156),
/* number_matcher_indices */ NumberMatcherIndicesIndex(10),
},
{
@@ -3653,7 +3341,7 @@
{
/* [265] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(166),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(158),
/* number_matcher_indices */ NumberMatcherIndicesIndex(10),
},
{
@@ -3683,7 +3371,7 @@
{
/* [270] */
/* usage */ core::ParameterUsage::kLevel,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(169),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(161),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3701,7 +3389,7 @@
{
/* [273] */
/* usage */ core::ParameterUsage::kLevel,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(169),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(161),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3719,7 +3407,7 @@
{
/* [276] */
/* usage */ core::ParameterUsage::kLevel,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(169),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(161),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3737,13 +3425,13 @@
{
/* [279] */
/* usage */ core::ParameterUsage::kSampleIndex,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(169),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(161),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [280] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(158),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(150),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3761,7 +3449,7 @@
{
/* [283] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(162),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(154),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3779,7 +3467,7 @@
{
/* [286] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(165),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(157),
/* number_matcher_indices */ NumberMatcherIndicesIndex(12),
},
{
@@ -3797,7 +3485,7 @@
{
/* [289] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(165),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(157),
/* number_matcher_indices */ NumberMatcherIndicesIndex(14),
},
{
@@ -3815,7 +3503,7 @@
{
/* [292] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(165),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(157),
/* number_matcher_indices */ NumberMatcherIndicesIndex(16),
},
{
@@ -3983,7 +3671,7 @@
{
/* [320] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(158),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(150),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -3995,7 +3683,7 @@
{
/* [322] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(159),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(151),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -4007,7 +3695,7 @@
{
/* [324] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(160),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(152),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -4019,7 +3707,7 @@
{
/* [326] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(161),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(153),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -4031,7 +3719,7 @@
{
/* [328] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(167),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(159),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -4043,7 +3731,7 @@
{
/* [330] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(163),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(155),
/* number_matcher_indices */ NumberMatcherIndicesIndex(12),
},
{
@@ -4055,7 +3743,7 @@
{
/* [332] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(163),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(155),
/* number_matcher_indices */ NumberMatcherIndicesIndex(14),
},
{
@@ -4067,7 +3755,7 @@
{
/* [334] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(163),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(155),
/* number_matcher_indices */ NumberMatcherIndicesIndex(16),
},
{
@@ -4079,7 +3767,7 @@
{
/* [336] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(164),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(156),
/* number_matcher_indices */ NumberMatcherIndicesIndex(12),
},
{
@@ -4091,7 +3779,7 @@
{
/* [338] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(164),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(156),
/* number_matcher_indices */ NumberMatcherIndicesIndex(14),
},
{
@@ -4103,7 +3791,7 @@
{
/* [340] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(164),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(156),
/* number_matcher_indices */ NumberMatcherIndicesIndex(16),
},
{
@@ -4115,7 +3803,7 @@
{
/* [342] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(166),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(158),
/* number_matcher_indices */ NumberMatcherIndicesIndex(12),
},
{
@@ -4127,7 +3815,7 @@
{
/* [344] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(166),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(158),
/* number_matcher_indices */ NumberMatcherIndicesIndex(14),
},
{
@@ -4139,7 +3827,7 @@
{
/* [346] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(166),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(158),
/* number_matcher_indices */ NumberMatcherIndicesIndex(16),
},
{
@@ -4331,25 +4019,25 @@
{
/* [378] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(163),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(155),
/* number_matcher_indices */ NumberMatcherIndicesIndex(2),
},
{
/* [379] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(164),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(156),
/* number_matcher_indices */ NumberMatcherIndicesIndex(2),
},
{
/* [380] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(165),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(157),
/* number_matcher_indices */ NumberMatcherIndicesIndex(2),
},
{
/* [381] */
/* usage */ core::ParameterUsage::kTexture,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(166),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(158),
/* number_matcher_indices */ NumberMatcherIndicesIndex(2),
},
{
@@ -4361,7 +4049,7 @@
{
/* [383] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(85),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(83),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
@@ -4379,169 +4067,169 @@
{
/* [386] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(96),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(90),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [387] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(102),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(96),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [388] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(106),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(100),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [389] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(104),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(98),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [390] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(108),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(102),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [391] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(112),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(106),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [392] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(110),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(104),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [393] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(114),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(108),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [394] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(118),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(112),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [395] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(116),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(110),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [396] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(120),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(114),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [397] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(124),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(118),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [398] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(122),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(116),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [399] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(126),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(120),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [400] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(130),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(124),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [401] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(128),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(122),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [402] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(132),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(126),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [403] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(136),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(130),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [404] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(134),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(128),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [405] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(138),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(132),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [406] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(142),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(136),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [407] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(140),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(134),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [408] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(144),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(138),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [409] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(148),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(142),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [410] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(146),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(140),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [411] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(150),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(144),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [412] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(154),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(148),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [413] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(152),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(146),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
};
@@ -4553,112 +4241,112 @@
{
/* [0] */
/* name */ "T",
- /* matcher_index */ TypeMatcherIndex(68),
+ /* matcher_index */ TypeMatcherIndex(57),
},
{
/* [1] */
/* name */ "C",
- /* matcher_index */ TypeMatcherIndex(72),
+ /* matcher_index */ TypeMatcherIndex(61),
},
{
/* [2] */
/* name */ "A",
- /* matcher_index */ TypeMatcherIndex(72),
+ /* matcher_index */ TypeMatcherIndex(61),
},
{
/* [3] */
/* name */ "L",
- /* matcher_index */ TypeMatcherIndex(72),
+ /* matcher_index */ TypeMatcherIndex(61),
},
{
/* [4] */
/* name */ "T",
- /* matcher_index */ TypeMatcherIndex(68),
+ /* matcher_index */ TypeMatcherIndex(57),
},
{
/* [5] */
/* name */ "C",
- /* matcher_index */ TypeMatcherIndex(72),
+ /* matcher_index */ TypeMatcherIndex(61),
},
{
/* [6] */
/* name */ "L",
- /* matcher_index */ TypeMatcherIndex(72),
+ /* matcher_index */ TypeMatcherIndex(61),
},
{
/* [7] */
/* name */ "T",
- /* matcher_index */ TypeMatcherIndex(68),
+ /* matcher_index */ TypeMatcherIndex(57),
},
{
/* [8] */
/* name */ "C",
- /* matcher_index */ TypeMatcherIndex(72),
+ /* matcher_index */ TypeMatcherIndex(61),
},
{
/* [9] */
/* name */ "S",
- /* matcher_index */ TypeMatcherIndex(72),
+ /* matcher_index */ TypeMatcherIndex(61),
},
{
/* [10] */
/* name */ "T",
- /* matcher_index */ TypeMatcherIndex(64),
+ /* matcher_index */ TypeMatcherIndex(60),
},
{
/* [11] */
/* name */ "U",
- /* matcher_index */ TypeMatcherIndex(66),
+ /* matcher_index */ TypeMatcherIndex(5),
},
{
/* [12] */
/* name */ "T",
- /* matcher_index */ TypeMatcherIndex(68),
+ /* matcher_index */ TypeMatcherIndex(57),
},
{
/* [13] */
/* name */ "L",
- /* matcher_index */ TypeMatcherIndex(72),
+ /* matcher_index */ TypeMatcherIndex(61),
},
{
/* [14] */
/* name */ "T",
- /* matcher_index */ TypeMatcherIndex(9),
+ /* matcher_index */ TypeMatcherIndex(7),
},
{
/* [15] */
/* name */ "U",
- /* matcher_index */ TypeMatcherIndex(55),
+ /* matcher_index */ TypeMatcherIndex(51),
},
{
/* [16] */
/* name */ "T",
- /* matcher_index */ TypeMatcherIndex(10),
+ /* matcher_index */ TypeMatcherIndex(8),
},
{
/* [17] */
/* name */ "U",
- /* matcher_index */ TypeMatcherIndex(56),
+ /* matcher_index */ TypeMatcherIndex(52),
},
{
/* [18] */
/* name */ "T",
- /* matcher_index */ TypeMatcherIndex(7),
+ /* matcher_index */ TypeMatcherIndex(5),
},
{
/* [19] */
/* name */ "U",
- /* matcher_index */ TypeMatcherIndex(57),
+ /* matcher_index */ TypeMatcherIndex(53),
},
{
/* [20] */
/* name */ "T",
- /* matcher_index */ TypeMatcherIndex(8),
+ /* matcher_index */ TypeMatcherIndex(6),
},
{
/* [21] */
/* name */ "U",
- /* matcher_index */ TypeMatcherIndex(58),
+ /* matcher_index */ TypeMatcherIndex(54),
},
{
/* [22] */
@@ -4668,12 +4356,12 @@
{
/* [23] */
/* name */ "U",
- /* matcher_index */ TypeMatcherIndex(59),
+ /* matcher_index */ TypeMatcherIndex(55),
},
{
/* [24] */
/* name */ "T",
- /* matcher_index */ TypeMatcherIndex(60),
+ /* matcher_index */ TypeMatcherIndex(56),
},
{
/* [25] */
@@ -4683,63 +4371,43 @@
{
/* [26] */
/* name */ "T",
- /* matcher_index */ TypeMatcherIndex(72),
+ /* matcher_index */ TypeMatcherIndex(61),
},
{
/* [27] */
/* name */ "T",
- /* matcher_index */ TypeMatcherIndex(53),
+ /* matcher_index */ TypeMatcherIndex(50),
},
{
/* [28] */
/* name */ "T",
- /* matcher_index */ TypeMatcherIndex(61),
+ /* matcher_index */ TypeMatcherIndex(58),
},
{
/* [29] */
/* name */ "T",
- /* matcher_index */ TypeMatcherIndex(67),
+ /* matcher_index */ TypeMatcherIndex(53),
},
{
/* [30] */
/* name */ "T",
- /* matcher_index */ TypeMatcherIndex(65),
+ /* matcher_index */ TypeMatcherIndex(54),
},
{
/* [31] */
/* name */ "T",
- /* matcher_index */ TypeMatcherIndex(57),
+ /* matcher_index */ TypeMatcherIndex(51),
},
{
/* [32] */
/* name */ "T",
- /* matcher_index */ TypeMatcherIndex(58),
+ /* matcher_index */ TypeMatcherIndex(52),
},
{
/* [33] */
/* name */ "T",
/* matcher_index */ TypeMatcherIndex(55),
},
- {
- /* [34] */
- /* name */ "T",
- /* matcher_index */ TypeMatcherIndex(56),
- },
- {
- /* [35] */
- /* name */ "T",
- /* matcher_index */ TypeMatcherIndex(59),
- },
- {
- /* [36] */
- /* name */ "T",
- /* matcher_index */ TypeMatcherIndex(54),
- },
- {
- /* [37] */
- /* name */ "T",
- /* matcher_index */ TypeMatcherIndex(71),
- },
};
static_assert(TemplateTypeIndex::CanIndex(kTemplateTypes),
@@ -5540,214 +5208,6 @@
},
{
/* [48] */
- /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 0,
- /* num_template_types */ 0,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(/* invalid */),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(/* invalid */),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(94),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(103),
- },
- {
- /* [49] */
- /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 0,
- /* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(36),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(/* invalid */),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(103),
- },
- {
- /* [50] */
- /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 1,
- /* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(27),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(217),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(104),
- },
- {
- /* [51] */
- /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 1,
- /* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(27),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(106),
- },
- {
- /* [52] */
- /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 4,
- /* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(27),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(205),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(107),
- },
- {
- /* [53] */
- /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 3,
- /* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(27),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(295),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(108),
- },
- {
- /* [54] */
- /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 3,
- /* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(27),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(298),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(108),
- },
- {
- /* [55] */
- /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 3,
- /* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(27),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(301),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(108),
- },
- {
- /* [56] */
- /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 2,
- /* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(27),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(364),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(108),
- },
- {
- /* [57] */
- /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 2,
- /* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(27),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(366),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(108),
- },
- {
- /* [58] */
- /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 2,
- /* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(27),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(368),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(108),
- },
- {
- /* [59] */
- /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 1,
- /* num_template_types */ 2,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(14),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(386),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(28),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(105),
- },
- {
- /* [60] */
- /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 1,
- /* num_template_types */ 2,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(16),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(386),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(98),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(105),
- },
- {
- /* [61] */
- /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 1,
- /* num_template_types */ 2,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(18),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(386),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(30),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(105),
- },
- {
- /* [62] */
- /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 1,
- /* num_template_types */ 2,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(20),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(386),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(32),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(105),
- },
- {
- /* [63] */
- /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 1,
- /* num_template_types */ 2,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(22),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(386),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(100),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(105),
- },
- {
- /* [64] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMustUse),
/* num_parameters */ 3,
/* num_template_types */ 0,
@@ -5760,7 +5220,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [65] */
+ /* [49] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMustUse),
/* num_parameters */ 3,
/* num_template_types */ 0,
@@ -5773,7 +5233,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [66] */
+ /* [50] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMustUse),
/* num_parameters */ 4,
/* num_template_types */ 0,
@@ -5786,7 +5246,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [67] */
+ /* [51] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMustUse),
/* num_parameters */ 4,
/* num_template_types */ 1,
@@ -5799,7 +5259,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [68] */
+ /* [52] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMustUse),
/* num_parameters */ 5,
/* num_template_types */ 1,
@@ -5812,7 +5272,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [69] */
+ /* [53] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMustUse),
/* num_parameters */ 3,
/* num_template_types */ 0,
@@ -5825,7 +5285,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [70] */
+ /* [54] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMustUse),
/* num_parameters */ 4,
/* num_template_types */ 0,
@@ -5838,7 +5298,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [71] */
+ /* [55] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMustUse),
/* num_parameters */ 3,
/* num_template_types */ 0,
@@ -5851,7 +5311,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [72] */
+ /* [56] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMustUse),
/* num_parameters */ 4,
/* num_template_types */ 1,
@@ -5864,7 +5324,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [73] */
+ /* [57] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMustUse),
/* num_parameters */ 3,
/* num_template_types */ 0,
@@ -5877,7 +5337,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [74] */
+ /* [58] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMustUse),
/* num_parameters */ 4,
/* num_template_types */ 0,
@@ -5890,7 +5350,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [75] */
+ /* [59] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMustUse),
/* num_parameters */ 4,
/* num_template_types */ 1,
@@ -5903,7 +5363,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [76] */
+ /* [60] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMustUse),
/* num_parameters */ 5,
/* num_template_types */ 1,
@@ -5916,7 +5376,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [77] */
+ /* [61] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMustUse),
/* num_parameters */ 3,
/* num_template_types */ 0,
@@ -5929,7 +5389,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [78] */
+ /* [62] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMustUse),
/* num_parameters */ 4,
/* num_template_types */ 1,
@@ -5942,7 +5402,202 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [79] */
+ /* [63] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 0,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(27),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(/* invalid */),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
+ },
+ {
+ /* [64] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 1,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(27),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(217),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(104),
+ },
+ {
+ /* [65] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 1,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(27),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(1),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(106),
+ },
+ {
+ /* [66] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 4,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(27),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(205),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(107),
+ },
+ {
+ /* [67] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 3,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(27),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(295),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(108),
+ },
+ {
+ /* [68] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 3,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(27),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(298),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(108),
+ },
+ {
+ /* [69] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 3,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(27),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(301),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(108),
+ },
+ {
+ /* [70] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 2,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(27),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(364),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(108),
+ },
+ {
+ /* [71] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 2,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(27),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(366),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(108),
+ },
+ {
+ /* [72] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 2,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(27),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(368),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(108),
+ },
+ {
+ /* [73] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 1,
+ /* num_template_types */ 2,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(14),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(386),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(28),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(105),
+ },
+ {
+ /* [74] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 1,
+ /* num_template_types */ 2,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(16),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(386),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(92),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(105),
+ },
+ {
+ /* [75] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 1,
+ /* num_template_types */ 2,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(18),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(386),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(30),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(105),
+ },
+ {
+ /* [76] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 1,
+ /* num_template_types */ 2,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(20),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(386),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(32),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(105),
+ },
+ {
+ /* [77] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 1,
+ /* num_template_types */ 2,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(22),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(386),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(94),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(105),
+ },
+ {
+ /* [78] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 4,
/* num_template_types */ 0,
@@ -5955,22 +5610,22 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
+ /* [79] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 5,
+ /* num_template_types */ 0,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(/* invalid */),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(124),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(28),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
/* [80] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 5,
- /* num_template_types */ 0,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(/* invalid */),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(124),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(28),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
- /* [81] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 5,
/* num_template_types */ 1,
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(2),
@@ -5981,7 +5636,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [82] */
+ /* [81] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 6,
/* num_template_types */ 1,
@@ -5994,7 +5649,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [83] */
+ /* [82] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 4,
/* num_template_types */ 0,
@@ -6007,21 +5662,21 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
+ /* [83] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 5,
+ /* num_template_types */ 0,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(/* invalid */),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(129),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(28),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
/* [84] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 5,
- /* num_template_types */ 0,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(/* invalid */),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(129),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(28),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
- /* [85] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 4,
/* num_template_types */ 0,
/* num_template_numbers */ 0,
@@ -6033,7 +5688,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [86] */
+ /* [85] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 5,
/* num_template_types */ 1,
@@ -6046,7 +5701,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [87] */
+ /* [86] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 4,
/* num_template_types */ 1,
@@ -6059,22 +5714,22 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
+ /* [87] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 5,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(3),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(139),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(15),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
/* [88] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 5,
- /* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(3),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(139),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(15),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
- /* [89] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 5,
/* num_template_types */ 2,
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(2),
@@ -6085,7 +5740,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [90] */
+ /* [89] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 6,
/* num_template_types */ 2,
@@ -6098,7 +5753,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [91] */
+ /* [90] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 4,
/* num_template_types */ 1,
@@ -6111,7 +5766,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [92] */
+ /* [91] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 5,
/* num_template_types */ 2,
@@ -6124,7 +5779,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [93] */
+ /* [92] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 4,
/* num_template_types */ 2,
@@ -6137,14 +5792,27 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
+ /* [93] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 5,
+ /* num_template_types */ 2,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(0),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(74),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
/* [94] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 5,
- /* num_template_types */ 2,
+ /* num_template_types */ 3,
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(0),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(74),
+ /* parameters */ ParameterIndex(26),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
@@ -6152,7 +5820,7 @@
{
/* [95] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 5,
+ /* num_parameters */ 6,
/* num_template_types */ 3,
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(0),
@@ -6165,19 +5833,6 @@
{
/* [96] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 6,
- /* num_template_types */ 3,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(0),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(26),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
- /* [97] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 4,
/* num_template_types */ 2,
/* num_template_numbers */ 0,
@@ -6189,7 +5844,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [98] */
+ /* [97] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 5,
/* num_template_types */ 3,
@@ -6202,7 +5857,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [99] */
+ /* [98] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 3,
/* num_template_types */ 0,
@@ -6215,7 +5870,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [100] */
+ /* [99] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 4,
/* num_template_types */ 0,
@@ -6228,7 +5883,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [101] */
+ /* [100] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 4,
/* num_template_types */ 1,
@@ -6241,7 +5896,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [102] */
+ /* [101] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 5,
/* num_template_types */ 1,
@@ -6254,7 +5909,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [103] */
+ /* [102] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 3,
/* num_template_types */ 0,
@@ -6267,7 +5922,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [104] */
+ /* [103] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 4,
/* num_template_types */ 1,
@@ -6280,7 +5935,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [105] */
+ /* [104] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 3,
/* num_template_types */ 1,
@@ -6293,7 +5948,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [106] */
+ /* [105] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 3,
/* num_template_types */ 1,
@@ -6306,7 +5961,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [107] */
+ /* [106] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 4,
/* num_template_types */ 2,
@@ -6319,7 +5974,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [108] */
+ /* [107] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 3,
/* num_template_types */ 1,
@@ -6332,7 +5987,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [109] */
+ /* [108] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 3,
/* num_template_types */ 1,
@@ -6345,7 +6000,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [110] */
+ /* [109] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 3,
/* num_template_types */ 1,
@@ -6358,7 +6013,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [111] */
+ /* [110] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 4,
/* num_template_types */ 2,
@@ -6371,7 +6026,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [112] */
+ /* [111] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 3,
/* num_template_types */ 1,
@@ -6384,7 +6039,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [113] */
+ /* [112] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 3,
/* num_template_types */ 1,
@@ -6397,7 +6052,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [114] */
+ /* [113] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 3,
/* num_template_types */ 1,
@@ -6410,7 +6065,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [115] */
+ /* [114] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 4,
/* num_template_types */ 2,
@@ -6423,7 +6078,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [116] */
+ /* [115] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 3,
/* num_template_types */ 1,
@@ -6436,25 +6091,12 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [117] */
- /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 0,
- /* num_template_types */ 0,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(/* invalid */),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(/* invalid */),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(88),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(103),
- },
- {
- /* [118] */
+ /* [116] */
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 0,
/* num_template_types */ 1,
/* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(36),
+ /* template_types */ TemplateTypeIndex(27),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(/* invalid */),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(10),
@@ -6462,7 +6104,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
- /* [119] */
+ /* [117] */
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -6475,7 +6117,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(104),
},
{
- /* [120] */
+ /* [118] */
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -6488,7 +6130,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(106),
},
{
- /* [121] */
+ /* [119] */
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 3,
/* num_template_types */ 1,
@@ -6501,7 +6143,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
- /* [122] */
+ /* [120] */
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
@@ -6514,7 +6156,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(108),
},
{
- /* [123] */
+ /* [121] */
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
@@ -6527,7 +6169,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(108),
},
{
- /* [124] */
+ /* [122] */
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 2,
@@ -6540,7 +6182,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
- /* [125] */
+ /* [123] */
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 2,
@@ -6548,12 +6190,12 @@
/* template_types */ TemplateTypeIndex(16),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(385),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(90),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(86),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
- /* [126] */
+ /* [124] */
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 2,
@@ -6566,7 +6208,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
- /* [127] */
+ /* [125] */
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 2,
@@ -6579,7 +6221,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
- /* [128] */
+ /* [126] */
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 2,
@@ -6587,12 +6229,12 @@
/* template_types */ TemplateTypeIndex(22),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(385),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(92),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(88),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
- /* [129] */
+ /* [127] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -6605,7 +6247,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [130] */
+ /* [128] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -6618,7 +6260,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [131] */
+ /* [129] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -6631,7 +6273,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [132] */
+ /* [130] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -6644,7 +6286,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [133] */
+ /* [131] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -6657,7 +6299,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [134] */
+ /* [132] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -6670,6 +6312,32 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
+ /* [133] */
+ /* 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(89),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [134] */
+ /* 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(32),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
/* [135] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
@@ -6677,7 +6345,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(89),
+ /* parameters */ ParameterIndex(161),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
@@ -6690,169 +6358,13 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(32),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
- /* [137] */
- /* 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(161),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
- /* [138] */
- /* 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(94),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [139] */
- /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 0,
- /* num_template_types */ 0,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(/* invalid */),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(/* invalid */),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(82),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(103),
- },
- {
- /* [140] */
- /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 0,
- /* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(36),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(/* invalid */),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(72),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(103),
- },
- {
- /* [141] */
- /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 1,
- /* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(27),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(209),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(72),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(104),
- },
- {
- /* [142] */
- /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 1,
- /* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(27),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(72),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(106),
- },
- {
- /* [143] */
- /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 2,
- /* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(27),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(205),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(72),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(107),
- },
- {
- /* [144] */
- /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 1,
- /* num_template_types */ 2,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(14),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(384),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(26),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(105),
- },
- {
- /* [145] */
- /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 1,
- /* num_template_types */ 2,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(16),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(384),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(84),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(105),
- },
- {
- /* [146] */
- /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 1,
- /* num_template_types */ 2,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(18),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(384),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(54),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(105),
- },
- {
- /* [147] */
- /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 1,
- /* num_template_types */ 2,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(20),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(384),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(36),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(105),
- },
- {
- /* [148] */
- /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 1,
- /* num_template_types */ 2,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(22),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(384),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(86),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(105),
- },
- {
- /* [149] */
+ /* [137] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
@@ -6865,7 +6377,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(84),
},
{
- /* [150] */
+ /* [138] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
@@ -6878,7 +6390,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(84),
},
{
- /* [151] */
+ /* [139] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
@@ -6891,7 +6403,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(84),
},
{
- /* [152] */
+ /* [140] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
@@ -6904,7 +6416,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(84),
},
{
- /* [153] */
+ /* [141] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
@@ -6917,7 +6429,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(84),
},
{
- /* [154] */
+ /* [142] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
@@ -6930,7 +6442,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(84),
},
{
- /* [155] */
+ /* [143] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
@@ -6943,7 +6455,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(85),
},
{
- /* [156] */
+ /* [144] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
@@ -6956,7 +6468,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(86),
},
{
- /* [157] */
+ /* [145] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
@@ -6969,7 +6481,124 @@
/* const_eval_fn */ ConstEvalFunctionIndex(87),
},
{
- /* [158] */
+ /* [146] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 0,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(27),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(/* invalid */),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(72),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
+ },
+ {
+ /* [147] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 1,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(27),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(209),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(72),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(104),
+ },
+ {
+ /* [148] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 1,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(27),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(1),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(72),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(106),
+ },
+ {
+ /* [149] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 2,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(27),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(205),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(72),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(107),
+ },
+ {
+ /* [150] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 1,
+ /* num_template_types */ 2,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(14),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(384),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(26),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(105),
+ },
+ {
+ /* [151] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 1,
+ /* num_template_types */ 2,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(16),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(384),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(82),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(105),
+ },
+ {
+ /* [152] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 1,
+ /* num_template_types */ 2,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(18),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(384),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(54),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(105),
+ },
+ {
+ /* [153] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 1,
+ /* num_template_types */ 2,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(20),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(384),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(36),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(105),
+ },
+ {
+ /* [154] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 1,
+ /* num_template_types */ 2,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(22),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(384),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(84),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(105),
+ },
+ {
+ /* [155] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMustUse),
/* num_parameters */ 4,
/* num_template_types */ 0,
@@ -6982,7 +6611,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [159] */
+ /* [156] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMustUse),
/* num_parameters */ 5,
/* num_template_types */ 0,
@@ -6995,7 +6624,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [160] */
+ /* [157] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMustUse),
/* num_parameters */ 5,
/* num_template_types */ 1,
@@ -7008,7 +6637,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [161] */
+ /* [158] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMustUse),
/* num_parameters */ 6,
/* num_template_types */ 1,
@@ -7021,7 +6650,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [162] */
+ /* [159] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMustUse),
/* num_parameters */ 4,
/* num_template_types */ 0,
@@ -7034,7 +6663,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [163] */
+ /* [160] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMustUse),
/* num_parameters */ 5,
/* num_template_types */ 0,
@@ -7047,7 +6676,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [164] */
+ /* [161] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMustUse),
/* num_parameters */ 4,
/* num_template_types */ 0,
@@ -7060,7 +6689,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [165] */
+ /* [162] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMustUse),
/* num_parameters */ 5,
/* num_template_types */ 1,
@@ -7073,7 +6702,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [166] */
+ /* [163] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 5,
/* num_template_types */ 0,
@@ -7086,7 +6715,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [167] */
+ /* [164] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 6,
/* num_template_types */ 0,
@@ -7099,7 +6728,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [168] */
+ /* [165] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 6,
/* num_template_types */ 1,
@@ -7112,7 +6741,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [169] */
+ /* [166] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 7,
/* num_template_types */ 1,
@@ -7125,7 +6754,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [170] */
+ /* [167] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 5,
/* num_template_types */ 0,
@@ -7138,7 +6767,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [171] */
+ /* [168] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 6,
/* num_template_types */ 0,
@@ -7151,7 +6780,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [172] */
+ /* [169] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 5,
/* num_template_types */ 0,
@@ -7164,7 +6793,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [173] */
+ /* [170] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 6,
/* num_template_types */ 1,
@@ -7177,7 +6806,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [174] */
+ /* [171] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 4,
/* num_template_types */ 0,
@@ -7190,7 +6819,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [175] */
+ /* [172] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 5,
/* num_template_types */ 0,
@@ -7203,6 +6832,45 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
+ /* [173] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 5,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(2),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(32),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(28),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [174] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 6,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(2),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(32),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(28),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [175] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 4,
+ /* num_template_types */ 0,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(/* invalid */),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(161),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(28),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
/* [176] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 5,
@@ -7210,52 +6878,13 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(2),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(32),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(28),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
- /* [177] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 6,
- /* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(2),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(32),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(28),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
- /* [178] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 4,
- /* num_template_types */ 0,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(/* invalid */),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(161),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(28),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
- /* [179] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 5,
- /* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(2),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(94),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(28),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [180] */
+ /* [177] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMustUse),
/* num_parameters */ 4,
/* num_template_types */ 0,
@@ -7268,7 +6897,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [181] */
+ /* [178] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMustUse),
/* num_parameters */ 5,
/* num_template_types */ 0,
@@ -7281,6 +6910,45 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
+ /* [179] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 5,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(2),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(32),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(15),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [180] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 6,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(2),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(32),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(15),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [181] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 4,
+ /* num_template_types */ 0,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(/* invalid */),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(161),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(15),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
/* [182] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMustUse),
/* num_parameters */ 5,
@@ -7288,14 +6956,53 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(2),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(32),
+ /* parameters */ ParameterIndex(94),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(15),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
/* [183] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMustUse),
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 4,
+ /* num_template_types */ 0,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(/* invalid */),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(89),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(15),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [184] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 5,
+ /* num_template_types */ 0,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(/* invalid */),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(89),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(15),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [185] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 5,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(2),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(32),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(15),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [186] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 6,
/* num_template_types */ 1,
/* num_template_numbers */ 0,
@@ -7307,8 +7014,8 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [184] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMustUse),
+ /* [187] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 4,
/* num_template_types */ 0,
/* num_template_numbers */ 0,
@@ -7320,45 +7027,6 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [185] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 5,
- /* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(2),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(94),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(15),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
- /* [186] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 4,
- /* num_template_types */ 0,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(/* invalid */),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(89),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(15),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
- /* [187] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 5,
- /* num_template_types */ 0,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(/* invalid */),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(89),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(15),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
/* [188] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 5,
@@ -7366,78 +7034,39 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(2),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(32),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(15),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
- /* [189] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 6,
- /* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(2),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(32),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(15),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
- /* [190] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 4,
- /* num_template_types */ 0,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(/* invalid */),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(161),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(15),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
- /* [191] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 5,
- /* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(2),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(94),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(15),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [192] */
+ /* [189] */
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 0,
/* num_template_types */ 1,
/* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(37),
+ /* template_types */ TemplateTypeIndex(10),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(102),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(96),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
- /* [193] */
+ /* [190] */
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
/* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(37),
+ /* template_types */ TemplateTypeIndex(10),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(387),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(102),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(96),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(104),
},
{
- /* [194] */
+ /* [191] */
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 4,
/* num_template_types */ 1,
@@ -7445,12 +7074,12 @@
/* template_types */ TemplateTypeIndex(10),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(102),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(96),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(109),
},
{
- /* [195] */
+ /* [192] */
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
@@ -7458,12 +7087,12 @@
/* template_types */ TemplateTypeIndex(10),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(209),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(102),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(96),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(110),
},
{
- /* [196] */
+ /* [193] */
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -7471,12 +7100,12 @@
/* template_types */ TemplateTypeIndex(16),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(388),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(104),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(98),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
- /* [197] */
+ /* [194] */
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -7484,38 +7113,38 @@
/* template_types */ TemplateTypeIndex(14),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(389),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(106),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(100),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
- /* [198] */
+ /* [195] */
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 0,
/* num_template_types */ 1,
/* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(37),
+ /* template_types */ TemplateTypeIndex(10),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(108),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(102),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
- /* [199] */
+ /* [196] */
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
/* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(37),
+ /* template_types */ TemplateTypeIndex(10),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(390),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(108),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(102),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(104),
},
{
- /* [200] */
+ /* [197] */
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 6,
/* num_template_types */ 1,
@@ -7523,12 +7152,12 @@
/* template_types */ TemplateTypeIndex(10),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(108),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(102),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(109),
},
{
- /* [201] */
+ /* [198] */
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
@@ -7536,12 +7165,12 @@
/* template_types */ TemplateTypeIndex(10),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(213),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(108),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(102),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(110),
},
{
- /* [202] */
+ /* [199] */
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -7549,12 +7178,12 @@
/* template_types */ TemplateTypeIndex(16),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(391),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(110),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(104),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
- /* [203] */
+ /* [200] */
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -7562,38 +7191,38 @@
/* template_types */ TemplateTypeIndex(14),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(392),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(112),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(106),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
- /* [204] */
+ /* [201] */
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 0,
/* num_template_types */ 1,
/* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(37),
+ /* template_types */ TemplateTypeIndex(10),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(114),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(108),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
- /* [205] */
+ /* [202] */
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
/* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(37),
+ /* template_types */ TemplateTypeIndex(10),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(393),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(114),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(108),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(104),
},
{
- /* [206] */
+ /* [203] */
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 8,
/* num_template_types */ 1,
@@ -7601,12 +7230,12 @@
/* template_types */ TemplateTypeIndex(10),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(114),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(108),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(109),
},
{
- /* [207] */
+ /* [204] */
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
@@ -7614,12 +7243,12 @@
/* template_types */ TemplateTypeIndex(10),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(217),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(114),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(108),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(110),
},
{
- /* [208] */
+ /* [205] */
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -7627,12 +7256,12 @@
/* template_types */ TemplateTypeIndex(16),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(394),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(116),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(110),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
- /* [209] */
+ /* [206] */
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -7640,38 +7269,38 @@
/* template_types */ TemplateTypeIndex(14),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(395),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(118),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(112),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
- /* [210] */
+ /* [207] */
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 0,
/* num_template_types */ 1,
/* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(37),
+ /* template_types */ TemplateTypeIndex(10),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(120),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(114),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
- /* [211] */
+ /* [208] */
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
/* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(37),
+ /* template_types */ TemplateTypeIndex(10),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(396),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(120),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(114),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(104),
},
{
- /* [212] */
+ /* [209] */
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 6,
/* num_template_types */ 1,
@@ -7679,12 +7308,12 @@
/* template_types */ TemplateTypeIndex(10),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(120),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(114),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(109),
},
{
- /* [213] */
+ /* [210] */
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 3,
/* num_template_types */ 1,
@@ -7692,12 +7321,12 @@
/* template_types */ TemplateTypeIndex(10),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(209),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(120),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(114),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(110),
},
{
- /* [214] */
+ /* [211] */
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -7705,12 +7334,12 @@
/* template_types */ TemplateTypeIndex(16),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(397),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(122),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(116),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
- /* [215] */
+ /* [212] */
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -7718,38 +7347,38 @@
/* template_types */ TemplateTypeIndex(14),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(398),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(124),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(118),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
- /* [216] */
+ /* [213] */
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 0,
/* num_template_types */ 1,
/* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(37),
+ /* template_types */ TemplateTypeIndex(10),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(126),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(120),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
- /* [217] */
+ /* [214] */
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
/* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(37),
+ /* template_types */ TemplateTypeIndex(10),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(399),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(126),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(120),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(104),
},
{
- /* [218] */
+ /* [215] */
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 9,
/* num_template_types */ 1,
@@ -7757,12 +7386,12 @@
/* template_types */ TemplateTypeIndex(10),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(126),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(120),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(109),
},
{
- /* [219] */
+ /* [216] */
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 3,
/* num_template_types */ 1,
@@ -7770,12 +7399,12 @@
/* template_types */ TemplateTypeIndex(10),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(213),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(126),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(120),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(110),
},
{
- /* [220] */
+ /* [217] */
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -7783,12 +7412,12 @@
/* template_types */ TemplateTypeIndex(16),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(400),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(128),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(122),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
- /* [221] */
+ /* [218] */
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -7796,38 +7425,38 @@
/* template_types */ TemplateTypeIndex(14),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(401),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(130),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(124),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
- /* [222] */
+ /* [219] */
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 0,
/* num_template_types */ 1,
/* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(37),
+ /* template_types */ TemplateTypeIndex(10),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(132),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(126),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
- /* [223] */
+ /* [220] */
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
/* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(37),
+ /* template_types */ TemplateTypeIndex(10),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(402),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(132),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(126),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(104),
},
{
- /* [224] */
+ /* [221] */
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 12,
/* num_template_types */ 1,
@@ -7835,12 +7464,12 @@
/* template_types */ TemplateTypeIndex(10),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(132),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(126),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(109),
},
{
- /* [225] */
+ /* [222] */
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 3,
/* num_template_types */ 1,
@@ -7848,12 +7477,12 @@
/* template_types */ TemplateTypeIndex(10),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(217),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(132),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(126),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(110),
},
{
- /* [226] */
+ /* [223] */
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -7861,12 +7490,12 @@
/* template_types */ TemplateTypeIndex(16),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(403),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(134),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(128),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
- /* [227] */
+ /* [224] */
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -7874,38 +7503,38 @@
/* template_types */ TemplateTypeIndex(14),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(404),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(136),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(130),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
- /* [228] */
+ /* [225] */
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 0,
/* num_template_types */ 1,
/* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(37),
+ /* template_types */ TemplateTypeIndex(10),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(138),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(132),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
- /* [229] */
+ /* [226] */
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
/* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(37),
+ /* template_types */ TemplateTypeIndex(10),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(405),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(138),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(132),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(104),
},
{
- /* [230] */
+ /* [227] */
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 8,
/* num_template_types */ 1,
@@ -7913,12 +7542,12 @@
/* template_types */ TemplateTypeIndex(10),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(138),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(132),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(109),
},
{
- /* [231] */
+ /* [228] */
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 4,
/* num_template_types */ 1,
@@ -7926,12 +7555,12 @@
/* template_types */ TemplateTypeIndex(10),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(209),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(138),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(132),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(110),
},
{
- /* [232] */
+ /* [229] */
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -7939,12 +7568,12 @@
/* template_types */ TemplateTypeIndex(16),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(406),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(140),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(134),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
- /* [233] */
+ /* [230] */
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -7952,38 +7581,38 @@
/* template_types */ TemplateTypeIndex(14),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(407),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(142),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(136),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
- /* [234] */
+ /* [231] */
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 0,
/* num_template_types */ 1,
/* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(37),
+ /* template_types */ TemplateTypeIndex(10),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(144),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(138),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
- /* [235] */
+ /* [232] */
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
/* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(37),
+ /* template_types */ TemplateTypeIndex(10),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(408),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(144),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(138),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(104),
},
{
- /* [236] */
+ /* [233] */
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 12,
/* num_template_types */ 1,
@@ -7991,12 +7620,12 @@
/* template_types */ TemplateTypeIndex(10),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(144),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(138),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(109),
},
{
- /* [237] */
+ /* [234] */
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 4,
/* num_template_types */ 1,
@@ -8004,12 +7633,12 @@
/* template_types */ TemplateTypeIndex(10),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(213),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(144),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(138),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(110),
},
{
- /* [238] */
+ /* [235] */
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -8017,12 +7646,12 @@
/* template_types */ TemplateTypeIndex(16),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(409),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(146),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(140),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
- /* [239] */
+ /* [236] */
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -8030,38 +7659,38 @@
/* template_types */ TemplateTypeIndex(14),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(410),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(148),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(142),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
- /* [240] */
+ /* [237] */
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 0,
/* num_template_types */ 1,
/* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(37),
+ /* template_types */ TemplateTypeIndex(10),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(150),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(144),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
- /* [241] */
+ /* [238] */
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
/* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(37),
+ /* template_types */ TemplateTypeIndex(10),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(411),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(150),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(144),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(104),
},
{
- /* [242] */
+ /* [239] */
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 16,
/* num_template_types */ 1,
@@ -8069,12 +7698,12 @@
/* template_types */ TemplateTypeIndex(10),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(150),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(144),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(109),
},
{
- /* [243] */
+ /* [240] */
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 4,
/* num_template_types */ 1,
@@ -8082,12 +7711,12 @@
/* template_types */ TemplateTypeIndex(10),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(217),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(150),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(144),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(110),
},
{
- /* [244] */
+ /* [241] */
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -8095,12 +7724,12 @@
/* template_types */ TemplateTypeIndex(16),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(412),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(152),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(146),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
- /* [245] */
+ /* [242] */
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -8108,12 +7737,12 @@
/* template_types */ TemplateTypeIndex(14),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(413),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(154),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(148),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
- /* [246] */
+ /* [243] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -8126,7 +7755,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [247] */
+ /* [244] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -8139,7 +7768,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [248] */
+ /* [245] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 0,
@@ -8152,7 +7781,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [249] */
+ /* [246] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 0,
@@ -8165,7 +7794,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [250] */
+ /* [247] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 0,
@@ -8178,7 +7807,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [251] */
+ /* [248] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
@@ -8191,7 +7820,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(82),
},
{
- /* [252] */
+ /* [249] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
@@ -8204,7 +7833,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(82),
},
{
- /* [253] */
+ /* [250] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
@@ -8217,6 +7846,45 @@
/* const_eval_fn */ ConstEvalFunctionIndex(82),
},
{
+ /* [251] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 2,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 1,
+ /* template_types */ TemplateTypeIndex(24),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(352),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(82),
+ },
+ {
+ /* [252] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 2,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 2,
+ /* template_types */ TemplateTypeIndex(10),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(355),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(12),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(2),
+ /* const_eval_fn */ ConstEvalFunctionIndex(82),
+ },
+ {
+ /* [253] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 2,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(24),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(1),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(83),
+ },
+ {
/* [254] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
@@ -8224,52 +7892,13 @@
/* num_template_numbers */ 1,
/* template_types */ TemplateTypeIndex(24),
/* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(352),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(82),
- },
- {
- /* [255] */
- /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 2,
- /* num_template_types */ 1,
- /* num_template_numbers */ 2,
- /* template_types */ TemplateTypeIndex(10),
- /* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(355),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(12),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(2),
- /* const_eval_fn */ ConstEvalFunctionIndex(82),
- },
- {
- /* [256] */
- /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 2,
- /* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(24),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(83),
- },
- {
- /* [257] */
- /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 2,
- /* num_template_types */ 1,
- /* num_template_numbers */ 1,
- /* template_types */ TemplateTypeIndex(24),
- /* template_numbers */ TemplateNumberIndex(4),
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
/* const_eval_fn */ ConstEvalFunctionIndex(83),
},
{
- /* [258] */
+ /* [255] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
@@ -8282,6 +7911,45 @@
/* const_eval_fn */ ConstEvalFunctionIndex(83),
},
{
+ /* [256] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 2,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 1,
+ /* template_types */ TemplateTypeIndex(24),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(352),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(83),
+ },
+ {
+ /* [257] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 2,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 2,
+ /* template_types */ TemplateTypeIndex(10),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(355),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(12),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(2),
+ /* const_eval_fn */ ConstEvalFunctionIndex(83),
+ },
+ {
+ /* [258] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 2,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(24),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(1),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(88),
+ },
+ {
/* [259] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
@@ -8289,49 +7957,49 @@
/* num_template_numbers */ 1,
/* template_types */ TemplateTypeIndex(24),
/* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(352),
+ /* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(83),
+ /* const_eval_fn */ ConstEvalFunctionIndex(88),
},
{
/* [260] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
- /* num_template_numbers */ 2,
- /* template_types */ TemplateTypeIndex(10),
+ /* num_template_numbers */ 1,
+ /* template_types */ TemplateTypeIndex(24),
/* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(355),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(12),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(2),
- /* const_eval_fn */ ConstEvalFunctionIndex(83),
+ /* parameters */ ParameterIndex(223),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(88),
},
{
/* [261] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
+ /* num_template_numbers */ 1,
+ /* template_types */ TemplateTypeIndex(24),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(352),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(88),
+ },
+ {
+ /* [262] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 2,
+ /* num_template_types */ 1,
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(24),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(88),
- },
- {
- /* [262] */
- /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 2,
- /* num_template_types */ 1,
- /* num_template_numbers */ 1,
- /* template_types */ TemplateTypeIndex(24),
- /* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(149),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(88),
+ /* const_eval_fn */ ConstEvalFunctionIndex(89),
},
{
/* [263] */
@@ -8341,10 +8009,10 @@
/* num_template_numbers */ 1,
/* template_types */ TemplateTypeIndex(24),
/* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(223),
+ /* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(88),
+ /* const_eval_fn */ ConstEvalFunctionIndex(89),
},
{
/* [264] */
@@ -8354,52 +8022,13 @@
/* num_template_numbers */ 1,
/* template_types */ TemplateTypeIndex(24),
/* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(352),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(88),
- },
- {
- /* [265] */
- /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 2,
- /* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(24),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(89),
- },
- {
- /* [266] */
- /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 2,
- /* num_template_types */ 1,
- /* num_template_numbers */ 1,
- /* template_types */ TemplateTypeIndex(24),
- /* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(149),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(89),
- },
- {
- /* [267] */
- /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 2,
- /* num_template_types */ 1,
- /* num_template_numbers */ 1,
- /* template_types */ TemplateTypeIndex(24),
- /* template_numbers */ TemplateNumberIndex(4),
/* parameters */ ParameterIndex(223),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
/* const_eval_fn */ ConstEvalFunctionIndex(89),
},
{
- /* [268] */
+ /* [265] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
@@ -8412,7 +8041,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(89),
},
{
- /* [269] */
+ /* [266] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 0,
@@ -8425,49 +8054,49 @@
/* const_eval_fn */ ConstEvalFunctionIndex(91),
},
{
+ /* [267] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 2,
+ /* num_template_types */ 0,
+ /* num_template_numbers */ 1,
+ /* template_types */ TemplateTypeIndex(/* invalid */),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(233),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(8),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(91),
+ },
+ {
+ /* [268] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 2,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(26),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(1),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(91),
+ },
+ {
+ /* [269] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 2,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 1,
+ /* template_types */ TemplateTypeIndex(26),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(149),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(91),
+ },
+ {
/* [270] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 0,
- /* num_template_numbers */ 1,
- /* template_types */ TemplateTypeIndex(/* invalid */),
- /* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(233),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(8),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(91),
- },
- {
- /* [271] */
- /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 2,
- /* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(30),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(91),
- },
- {
- /* [272] */
- /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 2,
- /* num_template_types */ 1,
- /* num_template_numbers */ 1,
- /* template_types */ TemplateTypeIndex(30),
- /* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(149),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(91),
- },
- {
- /* [273] */
- /* 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 */),
@@ -8477,7 +8106,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(92),
},
{
- /* [274] */
+ /* [271] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 0,
@@ -8490,12 +8119,12 @@
/* const_eval_fn */ ConstEvalFunctionIndex(92),
},
{
- /* [275] */
+ /* [272] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
/* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(30),
+ /* template_types */ TemplateTypeIndex(26),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
@@ -8503,12 +8132,12 @@
/* const_eval_fn */ ConstEvalFunctionIndex(92),
},
{
- /* [276] */
+ /* [273] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
/* num_template_numbers */ 1,
- /* template_types */ TemplateTypeIndex(30),
+ /* template_types */ TemplateTypeIndex(26),
/* template_numbers */ TemplateNumberIndex(4),
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
@@ -8516,7 +8145,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(92),
},
{
- /* [277] */
+ /* [274] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 3,
/* num_template_types */ 1,
@@ -8529,7 +8158,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(40),
},
{
- /* [278] */
+ /* [275] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 3,
/* num_template_types */ 1,
@@ -8542,7 +8171,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(40),
},
{
- /* [279] */
+ /* [276] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 3,
/* num_template_types */ 1,
@@ -8555,7 +8184,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(40),
},
{
- /* [280] */
+ /* [277] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 3,
/* num_template_types */ 1,
@@ -8568,7 +8197,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(60),
},
{
- /* [281] */
+ /* [278] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 3,
/* num_template_types */ 1,
@@ -8581,7 +8210,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(60),
},
{
- /* [282] */
+ /* [279] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 3,
/* num_template_types */ 1,
@@ -8594,7 +8223,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(61),
},
{
- /* [283] */
+ /* [280] */
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 0,
/* num_template_types */ 0,
@@ -8607,7 +8236,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
- /* [284] */
+ /* [281] */
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 0,
@@ -8620,15 +8249,54 @@
/* const_eval_fn */ ConstEvalFunctionIndex(104),
},
{
+ /* [282] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 1,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(29),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(1),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(31),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(105),
+ },
+ {
+ /* [283] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 0,
+ /* num_template_types */ 0,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(/* invalid */),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(/* invalid */),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
+ },
+ {
+ /* [284] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, 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(33),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(104),
+ },
+ {
/* [285] */
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
/* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(31),
+ /* template_types */ TemplateTypeIndex(30),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(31),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(105),
},
@@ -8641,7 +8309,7 @@
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(15),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(103),
},
@@ -8653,8 +8321,8 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(17),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
+ /* parameters */ ParameterIndex(372),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(15),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(104),
},
@@ -8664,10 +8332,10 @@
/* num_parameters */ 1,
/* num_template_types */ 1,
/* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(32),
+ /* template_types */ TemplateTypeIndex(31),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(33),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(15),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(105),
},
@@ -8680,7 +8348,7 @@
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(15),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(83),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(103),
},
@@ -8692,8 +8360,8 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(372),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(15),
+ /* parameters */ ParameterIndex(383),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(83),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(104),
},
@@ -8703,10 +8371,10 @@
/* num_parameters */ 1,
/* num_template_types */ 1,
/* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(33),
+ /* template_types */ TemplateTypeIndex(32),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(15),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(83),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(105),
},
@@ -8719,7 +8387,7 @@
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(85),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(103),
},
@@ -8731,8 +8399,8 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(383),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(85),
+ /* parameters */ ParameterIndex(226),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(104),
},
@@ -8742,225 +8410,238 @@
/* num_parameters */ 1,
/* num_template_types */ 1,
/* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(34),
+ /* template_types */ TemplateTypeIndex(33),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(85),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
/* [295] */
- /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 0,
- /* num_template_types */ 0,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(/* invalid */),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(/* invalid */),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(103),
- },
- {
- /* [296] */
- /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, 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(226),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(104),
- },
- {
- /* [297] */
- /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
/* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(35),
+ /* template_types */ TemplateTypeIndex(24),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(105),
+ /* const_eval_fn */ ConstEvalFunctionIndex(0),
+ },
+ {
+ /* [296] */
+ /* 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(24),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(149),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(0),
+ },
+ {
+ /* [297] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 1,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(10),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(1),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(1),
},
{
/* [298] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(24),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(0),
+ /* num_template_numbers */ 1,
+ /* template_types */ TemplateTypeIndex(10),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(149),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(1),
},
{
/* [299] */
/* 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(24),
- /* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(149),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(0),
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(10),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(1),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(2),
},
{
/* [300] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
- /* num_template_numbers */ 0,
+ /* num_template_numbers */ 1,
/* template_types */ TemplateTypeIndex(10),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(1),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(149),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(2),
},
{
/* [301] */
/* 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(10),
- /* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(149),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(1),
+ /* 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(3),
},
{
/* [302] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
- /* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(10),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* num_template_types */ 0,
+ /* num_template_numbers */ 1,
+ /* template_types */ TemplateTypeIndex(/* invalid */),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(233),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(2),
+ /* const_eval_fn */ ConstEvalFunctionIndex(3),
},
{
/* [303] */
/* 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(10),
- /* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(149),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(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(4),
},
{
/* [304] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 0,
- /* num_template_numbers */ 0,
+ /* num_template_numbers */ 1,
/* template_types */ TemplateTypeIndex(/* invalid */),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(226),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(233),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(3),
+ /* const_eval_fn */ ConstEvalFunctionIndex(4),
},
{
/* [305] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
- /* num_template_types */ 0,
- /* num_template_numbers */ 1,
- /* template_types */ TemplateTypeIndex(/* invalid */),
- /* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(233),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(10),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(1),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(3),
+ /* const_eval_fn */ ConstEvalFunctionIndex(5),
},
{
/* [306] */
/* 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(226),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(4),
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 1,
+ /* template_types */ TemplateTypeIndex(10),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(149),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(5),
},
{
/* [307] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
- /* num_template_types */ 0,
- /* num_template_numbers */ 1,
- /* template_types */ TemplateTypeIndex(/* invalid */),
- /* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(233),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(10),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(1),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(4),
+ /* const_eval_fn */ ConstEvalFunctionIndex(6),
},
{
/* [308] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
- /* num_template_numbers */ 0,
+ /* num_template_numbers */ 1,
/* template_types */ TemplateTypeIndex(10),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(5),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(149),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(6),
},
{
/* [309] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
- /* num_template_numbers */ 1,
+ /* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(10),
- /* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(149),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(5),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(1),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(7),
},
{
/* [310] */
/* 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(10),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(149),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(7),
+ },
+ {
+ /* [311] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 2,
+ /* num_template_types */ 1,
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(10),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(6),
+ /* const_eval_fn */ ConstEvalFunctionIndex(8),
},
{
- /* [311] */
+ /* [312] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 1,
+ /* num_parameters */ 2,
/* num_template_types */ 1,
/* num_template_numbers */ 1,
/* template_types */ TemplateTypeIndex(10),
@@ -8968,38 +8649,38 @@
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(6),
- },
- {
- /* [312] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 1,
- /* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(10),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(7),
+ /* const_eval_fn */ ConstEvalFunctionIndex(8),
},
{
/* [313] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(10),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(1),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(9),
+ },
+ {
+ /* [314] */
+ /* 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(10),
/* template_numbers */ TemplateNumberIndex(4),
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(7),
+ /* const_eval_fn */ ConstEvalFunctionIndex(9),
},
{
- /* [314] */
+ /* [315] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 2,
+ /* num_parameters */ 1,
/* num_template_types */ 1,
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(10),
@@ -9007,76 +8688,24 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(8),
- },
- {
- /* [315] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 2,
- /* num_template_types */ 1,
- /* num_template_numbers */ 1,
- /* template_types */ TemplateTypeIndex(10),
- /* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(149),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(8),
+ /* const_eval_fn */ ConstEvalFunctionIndex(10),
},
{
/* [316] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
- /* num_template_numbers */ 0,
+ /* num_template_numbers */ 1,
/* template_types */ TemplateTypeIndex(10),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(9),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(149),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(10),
},
{
/* [317] */
/* 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(10),
- /* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(149),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(9),
- },
- {
- /* [318] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 1,
- /* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(10),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(10),
- },
- {
- /* [319] */
- /* 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(10),
- /* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(149),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(10),
- },
- {
- /* [320] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 3,
/* num_template_types */ 1,
/* num_template_numbers */ 0,
@@ -9088,7 +8717,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(11),
},
{
- /* [321] */
+ /* [318] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 3,
/* num_template_types */ 1,
@@ -9101,7 +8730,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(11),
},
{
- /* [322] */
+ /* [319] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -9114,176 +8743,176 @@
/* const_eval_fn */ ConstEvalFunctionIndex(12),
},
{
+ /* [320] */
+ /* 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(10),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(149),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(12),
+ },
+ {
+ /* [321] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 1,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(10),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(1),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(13),
+ },
+ {
+ /* [322] */
+ /* 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(10),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(149),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(13),
+ },
+ {
/* [323] */
/* 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(10),
- /* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(149),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(12),
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(26),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(1),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(14),
},
{
/* [324] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(10),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(13),
+ /* num_template_numbers */ 1,
+ /* template_types */ TemplateTypeIndex(26),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(149),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(14),
},
{
/* [325] */
/* 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(10),
- /* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(149),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(13),
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(26),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(1),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(15),
},
{
/* [326] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
- /* num_template_numbers */ 0,
+ /* num_template_numbers */ 1,
/* template_types */ TemplateTypeIndex(26),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(14),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(149),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(15),
},
{
/* [327] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
- /* num_template_numbers */ 1,
+ /* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(26),
- /* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(149),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(14),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(1),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(16),
},
{
/* [328] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
- /* num_template_numbers */ 0,
+ /* num_template_numbers */ 1,
/* template_types */ TemplateTypeIndex(26),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(15),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(149),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(16),
},
{
/* [329] */
/* 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(4),
- /* parameters */ ParameterIndex(149),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(15),
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(10),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(1),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(18),
},
{
/* [330] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(26),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(16),
+ /* num_template_numbers */ 1,
+ /* template_types */ TemplateTypeIndex(10),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(149),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(18),
},
{
/* [331] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 1,
+ /* num_parameters */ 2,
/* num_template_types */ 1,
- /* num_template_numbers */ 1,
- /* template_types */ TemplateTypeIndex(26),
- /* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(149),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(16),
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(10),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(1),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(20),
},
{
/* [332] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 1,
+ /* num_parameters */ 2,
/* num_template_types */ 1,
- /* num_template_numbers */ 0,
+ /* num_template_numbers */ 1,
/* template_types */ TemplateTypeIndex(10),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(1),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(18),
+ /* const_eval_fn */ ConstEvalFunctionIndex(20),
},
{
/* [333] */
- /* 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(10),
- /* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(149),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(18),
- },
- {
- /* [334] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 2,
- /* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(10),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(20),
- },
- {
- /* [335] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 2,
- /* num_template_types */ 1,
- /* num_template_numbers */ 1,
- /* template_types */ TemplateTypeIndex(10),
- /* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(149),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(20),
- },
- {
- /* [336] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 0,
@@ -9296,7 +8925,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [337] */
+ /* [334] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 0,
@@ -9309,60 +8938,60 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
+ /* [335] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 1,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(10),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(1),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(22),
+ },
+ {
+ /* [336] */
+ /* 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(10),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(149),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(22),
+ },
+ {
+ /* [337] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 1,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(10),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(1),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(23),
+ },
+ {
/* [338] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
- /* num_template_numbers */ 0,
+ /* num_template_numbers */ 1,
/* template_types */ TemplateTypeIndex(10),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(22),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(149),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(23),
},
{
/* [339] */
/* 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(10),
- /* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(149),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(22),
- },
- {
- /* [340] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 1,
- /* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(10),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(23),
- },
- {
- /* [341] */
- /* 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(10),
- /* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(149),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(23),
- },
- {
- /* [342] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 3,
/* num_template_types */ 1,
/* num_template_numbers */ 0,
@@ -9374,7 +9003,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(24),
},
{
- /* [343] */
+ /* [340] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 3,
/* num_template_types */ 1,
@@ -9387,7 +9016,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(24),
},
{
- /* [344] */
+ /* [341] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -9400,73 +9029,73 @@
/* const_eval_fn */ ConstEvalFunctionIndex(26),
},
{
+ /* [342] */
+ /* 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(4),
+ /* parameters */ ParameterIndex(149),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(26),
+ },
+ {
+ /* [343] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 1,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(26),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(1),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(27),
+ },
+ {
+ /* [344] */
+ /* 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(4),
+ /* parameters */ ParameterIndex(149),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(27),
+ },
+ {
/* [345] */
/* 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(4),
- /* parameters */ ParameterIndex(149),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(26),
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(10),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(1),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(28),
},
{
/* [346] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(26),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(27),
+ /* num_template_numbers */ 1,
+ /* template_types */ TemplateTypeIndex(10),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(149),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(28),
},
{
/* [347] */
/* 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(4),
- /* parameters */ ParameterIndex(149),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(27),
- },
- {
- /* [348] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 1,
- /* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(10),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(28),
- },
- {
- /* [349] */
- /* 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(10),
- /* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(149),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(28),
- },
- {
- /* [350] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 3,
/* num_template_types */ 1,
/* num_template_numbers */ 0,
@@ -9478,7 +9107,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(29),
},
{
- /* [351] */
+ /* [348] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 3,
/* num_template_types */ 1,
@@ -9491,7 +9120,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(29),
},
{
- /* [352] */
+ /* [349] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -9504,7 +9133,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(30),
},
{
- /* [353] */
+ /* [350] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -9517,7 +9146,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(30),
},
{
- /* [354] */
+ /* [351] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -9530,7 +9159,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(31),
},
{
- /* [355] */
+ /* [352] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -9543,7 +9172,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(31),
},
{
- /* [356] */
+ /* [353] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 4,
/* num_template_types */ 1,
@@ -9556,7 +9185,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(32),
},
{
- /* [357] */
+ /* [354] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 4,
/* num_template_types */ 1,
@@ -9569,7 +9198,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(32),
},
{
- /* [358] */
+ /* [355] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -9582,7 +9211,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(33),
},
{
- /* [359] */
+ /* [356] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -9595,7 +9224,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(33),
},
{
- /* [360] */
+ /* [357] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 2,
@@ -9608,7 +9237,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(34),
},
{
- /* [361] */
+ /* [358] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 2,
@@ -9621,7 +9250,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(34),
},
{
- /* [362] */
+ /* [359] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -9634,125 +9263,125 @@
/* const_eval_fn */ ConstEvalFunctionIndex(35),
},
{
+ /* [360] */
+ /* 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(10),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(149),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(35),
+ },
+ {
+ /* [361] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 1,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(10),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(1),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(36),
+ },
+ {
+ /* [362] */
+ /* 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(10),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(149),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(36),
+ },
+ {
/* [363] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
- /* num_template_numbers */ 1,
+ /* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(10),
- /* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(149),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(35),
+ /* const_eval_fn */ ConstEvalFunctionIndex(37),
},
{
/* [364] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
- /* num_template_numbers */ 0,
+ /* num_template_numbers */ 1,
/* template_types */ TemplateTypeIndex(10),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(36),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(149),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(37),
},
{
/* [365] */
/* 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(10),
- /* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(149),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(36),
- },
- {
- /* [366] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 1,
+ /* num_parameters */ 2,
/* num_template_types */ 1,
/* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(10),
+ /* template_types */ TemplateTypeIndex(24),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(37),
+ /* const_eval_fn */ ConstEvalFunctionIndex(38),
},
{
- /* [367] */
+ /* [366] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 1,
+ /* num_parameters */ 2,
/* num_template_types */ 1,
/* num_template_numbers */ 1,
- /* template_types */ TemplateTypeIndex(10),
+ /* template_types */ TemplateTypeIndex(24),
/* template_numbers */ TemplateNumberIndex(4),
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(37),
+ /* const_eval_fn */ ConstEvalFunctionIndex(38),
+ },
+ {
+ /* [367] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 2,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(24),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(1),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(39),
},
{
/* [368] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
- /* num_template_numbers */ 0,
+ /* num_template_numbers */ 1,
/* template_types */ TemplateTypeIndex(24),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(38),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(149),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(39),
},
{
/* [369] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 2,
- /* num_template_types */ 1,
- /* num_template_numbers */ 1,
- /* template_types */ TemplateTypeIndex(24),
- /* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(149),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(38),
- },
- {
- /* [370] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 2,
- /* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(24),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(39),
- },
- {
- /* [371] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 2,
- /* num_template_types */ 1,
- /* num_template_numbers */ 1,
- /* template_types */ TemplateTypeIndex(24),
- /* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(149),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(39),
- },
- {
- /* [372] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
/* num_template_numbers */ 0,
@@ -9764,7 +9393,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(41),
},
{
- /* [373] */
+ /* [370] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -9777,7 +9406,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(41),
},
{
- /* [374] */
+ /* [371] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
@@ -9790,7 +9419,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(52),
},
{
- /* [375] */
+ /* [372] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
@@ -9803,7 +9432,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(52),
},
{
- /* [376] */
+ /* [373] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 0,
@@ -9816,7 +9445,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(53),
},
{
- /* [377] */
+ /* [374] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 0,
@@ -9829,7 +9458,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(53),
},
{
- /* [378] */
+ /* [375] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -9842,177 +9471,177 @@
/* const_eval_fn */ ConstEvalFunctionIndex(54),
},
{
+ /* [376] */
+ /* 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(10),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(149),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(54),
+ },
+ {
+ /* [377] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 1,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(26),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(1),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(57),
+ },
+ {
+ /* [378] */
+ /* 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(4),
+ /* parameters */ ParameterIndex(149),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(57),
+ },
+ {
/* [379] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
- /* num_template_numbers */ 1,
+ /* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(10),
- /* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(149),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(54),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(1),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(58),
},
{
/* [380] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(26),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(57),
+ /* num_template_numbers */ 1,
+ /* template_types */ TemplateTypeIndex(10),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(149),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(58),
},
{
/* [381] */
/* 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(4),
- /* parameters */ ParameterIndex(149),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(57),
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(10),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(1),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(59),
},
{
/* [382] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
- /* num_template_numbers */ 0,
+ /* num_template_numbers */ 1,
/* template_types */ TemplateTypeIndex(10),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(58),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(149),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(59),
},
{
/* [383] */
/* 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(10),
- /* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(149),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(58),
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(28),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(1),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(62),
},
{
/* [384] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(10),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(59),
+ /* num_template_numbers */ 1,
+ /* template_types */ TemplateTypeIndex(28),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(149),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(62),
},
{
/* [385] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
- /* num_template_numbers */ 1,
+ /* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(10),
- /* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(149),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(59),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(1),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(63),
},
{
/* [386] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(28),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(62),
+ /* num_template_numbers */ 1,
+ /* template_types */ TemplateTypeIndex(10),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(149),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(63),
},
{
/* [387] */
/* 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(28),
- /* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(149),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(62),
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(10),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(1),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(64),
},
{
/* [388] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
- /* num_template_numbers */ 0,
+ /* num_template_numbers */ 1,
/* template_types */ TemplateTypeIndex(10),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(63),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(149),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(64),
},
{
/* [389] */
/* 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(10),
- /* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(149),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(63),
- },
- {
- /* [390] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 1,
- /* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(10),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(64),
- },
- {
- /* [391] */
- /* 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(10),
- /* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(149),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(64),
- },
- {
- /* [392] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 3,
/* num_template_types */ 1,
/* num_template_numbers */ 0,
@@ -10024,7 +9653,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(65),
},
{
- /* [393] */
+ /* [390] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 3,
/* num_template_types */ 1,
@@ -10037,7 +9666,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(65),
},
{
- /* [394] */
+ /* [391] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -10050,22 +9679,74 @@
/* const_eval_fn */ ConstEvalFunctionIndex(66),
},
{
+ /* [392] */
+ /* 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(10),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(149),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(66),
+ },
+ {
+ /* [393] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 2,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(10),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(1),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(67),
+ },
+ {
+ /* [394] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 2,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 1,
+ /* template_types */ TemplateTypeIndex(10),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(149),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(67),
+ },
+ {
/* [395] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(10),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(1),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(68),
+ },
+ {
+ /* [396] */
+ /* 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(10),
/* template_numbers */ TemplateNumberIndex(4),
/* 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),
},
{
- /* [396] */
+ /* [397] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 2,
+ /* num_parameters */ 1,
/* num_template_types */ 1,
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(10),
@@ -10073,104 +9754,52 @@
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(67),
- },
- {
- /* [397] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 2,
- /* num_template_types */ 1,
- /* num_template_numbers */ 1,
- /* template_types */ TemplateTypeIndex(10),
- /* template_numbers */ TemplateNumberIndex(4),
- /* 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),
},
{
/* [398] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
- /* num_template_numbers */ 0,
+ /* num_template_numbers */ 1,
/* template_types */ TemplateTypeIndex(10),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(68),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(149),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(69),
},
{
/* [399] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
- /* num_template_numbers */ 1,
+ /* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(10),
- /* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(149),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(68),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(1),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(71),
},
{
/* [400] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
- /* num_template_numbers */ 0,
+ /* num_template_numbers */ 1,
/* template_types */ TemplateTypeIndex(10),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(69),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(149),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(71),
},
{
/* [401] */
/* 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(10),
- /* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(149),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(69),
- },
- {
- /* [402] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 1,
- /* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(10),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(71),
- },
- {
- /* [403] */
- /* 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(10),
- /* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(149),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(71),
- },
- {
- /* [404] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 1,
- /* num_template_types */ 1,
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(0),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
@@ -10180,7 +9809,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [405] */
+ /* [402] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 0,
@@ -10193,7 +9822,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [406] */
+ /* [403] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 3,
/* num_template_types */ 0,
@@ -10206,7 +9835,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [407] */
+ /* [404] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 3,
/* num_template_types */ 0,
@@ -10219,12 +9848,12 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [408] */
+ /* [405] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
/* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(29),
+ /* template_types */ TemplateTypeIndex(24),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(348),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
@@ -10232,12 +9861,12 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [409] */
+ /* [406] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
/* num_template_numbers */ 1,
- /* template_types */ TemplateTypeIndex(29),
+ /* template_types */ TemplateTypeIndex(24),
/* template_numbers */ TemplateNumberIndex(4),
/* parameters */ ParameterIndex(350),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
@@ -10245,7 +9874,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [410] */
+ /* [407] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 0,
@@ -10258,7 +9887,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(79),
},
{
- /* [411] */
+ /* [408] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 0,
@@ -10271,293 +9900,293 @@
/* const_eval_fn */ ConstEvalFunctionIndex(79),
},
{
+ /* [409] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 1,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(26),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(1),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(80),
+ },
+ {
+ /* [410] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsOperator, 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(4),
+ /* parameters */ ParameterIndex(149),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(80),
+ },
+ {
+ /* [411] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 1,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(28),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(1),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(81),
+ },
+ {
/* [412] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(30),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(80),
+ /* num_template_numbers */ 1,
+ /* template_types */ TemplateTypeIndex(28),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(149),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(81),
},
{
/* [413] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 1,
- /* num_template_types */ 1,
- /* num_template_numbers */ 1,
- /* template_types */ TemplateTypeIndex(30),
- /* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(149),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(80),
- },
- {
- /* [414] */
- /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 1,
+ /* num_parameters */ 2,
/* num_template_types */ 1,
/* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(28),
+ /* template_types */ TemplateTypeIndex(26),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
/* parameters */ ParameterIndex(1),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(81),
+ /* const_eval_fn */ ConstEvalFunctionIndex(90),
},
{
- /* [415] */
+ /* [414] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 1,
+ /* num_parameters */ 2,
/* num_template_types */ 1,
/* num_template_numbers */ 1,
- /* template_types */ TemplateTypeIndex(28),
+ /* template_types */ TemplateTypeIndex(26),
/* template_numbers */ TemplateNumberIndex(4),
/* parameters */ ParameterIndex(149),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(81),
+ /* const_eval_fn */ ConstEvalFunctionIndex(90),
+ },
+ {
+ /* [415] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 2,
+ /* num_template_types */ 1,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(27),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(1),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(95),
},
{
/* [416] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(30),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(90),
+ /* num_template_numbers */ 1,
+ /* template_types */ TemplateTypeIndex(27),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(149),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(8),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(95),
},
{
/* [417] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
- /* num_template_numbers */ 1,
- /* template_types */ TemplateTypeIndex(30),
- /* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(149),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(90),
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(27),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(1),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(96),
},
{
/* [418] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
- /* num_template_numbers */ 0,
+ /* num_template_numbers */ 1,
/* template_types */ TemplateTypeIndex(27),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(95),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(149),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(8),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(96),
},
{
/* [419] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
- /* num_template_numbers */ 1,
- /* template_types */ TemplateTypeIndex(27),
- /* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(149),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(8),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(95),
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(24),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(1),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(97),
},
{
/* [420] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(27),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(96),
+ /* num_template_numbers */ 1,
+ /* template_types */ TemplateTypeIndex(24),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(149),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(8),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(97),
},
{
/* [421] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
- /* num_template_numbers */ 1,
- /* template_types */ TemplateTypeIndex(27),
- /* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(149),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(8),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(96),
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(24),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(1),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(98),
},
{
/* [422] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
- /* num_template_numbers */ 0,
+ /* num_template_numbers */ 1,
/* template_types */ TemplateTypeIndex(24),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(97),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(149),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(8),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(98),
},
{
/* [423] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
- /* num_template_numbers */ 1,
+ /* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(24),
- /* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(149),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(8),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(97),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(1),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(99),
},
{
/* [424] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
- /* num_template_numbers */ 0,
+ /* num_template_numbers */ 1,
/* template_types */ TemplateTypeIndex(24),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(98),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(149),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(8),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(99),
},
{
/* [425] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
- /* num_template_numbers */ 1,
+ /* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(24),
- /* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(149),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(8),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(98),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(1),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(100),
},
{
/* [426] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
- /* num_template_numbers */ 0,
+ /* num_template_numbers */ 1,
/* template_types */ TemplateTypeIndex(24),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(149),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(8),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(100),
},
{
/* [427] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
- /* num_template_numbers */ 1,
- /* template_types */ TemplateTypeIndex(24),
- /* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(149),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(8),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(26),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(16),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
{
/* [428] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(24),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(1),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(9),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(100),
+ /* num_template_numbers */ 1,
+ /* template_types */ TemplateTypeIndex(26),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(353),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
{
/* [429] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
- /* num_template_numbers */ 1,
- /* template_types */ TemplateTypeIndex(24),
- /* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(149),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(8),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(100),
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(26),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(16),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(102),
},
{
/* [430] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(30),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(16),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* num_template_numbers */ 1,
+ /* template_types */ TemplateTypeIndex(26),
+ /* template_numbers */ TemplateNumberIndex(4),
+ /* parameters */ ParameterIndex(353),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* const_eval_fn */ ConstEvalFunctionIndex(102),
},
{
/* [431] */
- /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 2,
- /* num_template_types */ 1,
- /* num_template_numbers */ 1,
- /* template_types */ TemplateTypeIndex(30),
- /* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(353),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
- },
- {
- /* [432] */
- /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 2,
- /* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(30),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(16),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(102),
- },
- {
- /* [433] */
- /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 2,
- /* num_template_types */ 1,
- /* num_template_numbers */ 1,
- /* template_types */ TemplateTypeIndex(30),
- /* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(353),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
- /* const_eval_fn */ ConstEvalFunctionIndex(102),
- },
- {
- /* [434] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -10570,7 +10199,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [435] */
+ /* [432] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
@@ -10583,7 +10212,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(17),
},
{
- /* [436] */
+ /* [433] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -10596,7 +10225,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(19),
},
{
- /* [437] */
+ /* [434] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
@@ -10609,7 +10238,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(21),
},
{
- /* [438] */
+ /* [435] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 0,
@@ -10622,7 +10251,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [439] */
+ /* [436] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 0,
@@ -10635,7 +10264,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [440] */
+ /* [437] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 3,
/* num_template_types */ 1,
@@ -10648,7 +10277,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(25),
},
{
- /* [441] */
+ /* [438] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -10661,7 +10290,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(42),
},
{
- /* [442] */
+ /* [439] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 0,
@@ -10674,7 +10303,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(43),
},
{
- /* [443] */
+ /* [440] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 0,
@@ -10687,7 +10316,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(44),
},
{
- /* [444] */
+ /* [441] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 0,
@@ -10700,7 +10329,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(45),
},
{
- /* [445] */
+ /* [442] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 0,
@@ -10713,7 +10342,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(46),
},
{
- /* [446] */
+ /* [443] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 0,
@@ -10726,7 +10355,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(47),
},
{
- /* [447] */
+ /* [444] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 0,
@@ -10739,7 +10368,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(48),
},
{
- /* [448] */
+ /* [445] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 0,
@@ -10752,7 +10381,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(49),
},
{
- /* [449] */
+ /* [446] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 0,
@@ -10765,7 +10394,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(50),
},
{
- /* [450] */
+ /* [447] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 0,
@@ -10778,7 +10407,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(51),
},
{
- /* [451] */
+ /* [448] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 1,
@@ -10791,7 +10420,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(55),
},
{
- /* [452] */
+ /* [449] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 3,
/* num_template_types */ 1,
@@ -10804,7 +10433,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(56),
},
{
- /* [453] */
+ /* [450] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 0,
/* num_template_types */ 0,
@@ -10817,7 +10446,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [454] */
+ /* [451] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -10830,7 +10459,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(70),
},
{
- /* [455] */
+ /* [452] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 0,
@@ -10843,7 +10472,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(72),
},
{
- /* [456] */
+ /* [453] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 0,
@@ -10856,7 +10485,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(73),
},
{
- /* [457] */
+ /* [454] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 0,
@@ -10869,7 +10498,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(74),
},
{
- /* [458] */
+ /* [455] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 0,
@@ -10882,7 +10511,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(75),
},
{
- /* [459] */
+ /* [456] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 0,
@@ -10895,7 +10524,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(76),
},
{
- /* [460] */
+ /* [457] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 0,
@@ -10908,7 +10537,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(77),
},
{
- /* [461] */
+ /* [458] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 0,
@@ -10921,7 +10550,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(78),
},
{
- /* [462] */
+ /* [459] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -10934,7 +10563,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [463] */
+ /* [460] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 2,
/* num_template_types */ 1,
@@ -10947,7 +10576,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [464] */
+ /* [461] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 2,
/* num_template_types */ 1,
@@ -10960,7 +10589,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [465] */
+ /* [462] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 3,
/* num_template_types */ 1,
@@ -10973,7 +10602,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [466] */
+ /* [463] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 0,
/* num_template_types */ 0,
@@ -10986,7 +10615,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [467] */
+ /* [464] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 0,
@@ -10999,7 +10628,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(93),
},
{
- /* [468] */
+ /* [465] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 0,
@@ -11011,19 +10640,6 @@
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(94),
},
- {
- /* [469] */
- /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 1,
- /* num_template_types */ 1,
- /* num_template_numbers */ 0,
- /* template_types */ TemplateTypeIndex(36),
- /* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(213),
- /* return_type_matcher_indices */ TypeMatcherIndicesIndex(156),
- /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(105),
- },
};
static_assert(OverloadIndex::CanIndex(kOverloads),
@@ -11032,489 +10648,489 @@
constexpr IntrinsicInfo kBuiltins[] = {
{
/* [0] */
- /* fn abs<T : fia_fiu32_f16>(T) -> T */
- /* fn abs<N : num, T : fia_fiu32_f16>(vec<N, T>) -> vec<N, T> */
+ /* fn abs<T : fiu32_f16>(T) -> T */
+ /* fn abs<N : num, T : fiu32_f16>(vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(298),
+ /* overloads */ OverloadIndex(295),
},
{
/* [1] */
- /* fn acos<T : fa_f32_f16>(@test_value(0.96891242171) T) -> T */
- /* fn acos<N : num, T : fa_f32_f16>(@test_value(0.96891242171) vec<N, T>) -> vec<N, T> */
+ /* fn acos<T : f32_f16>(@test_value(0.96891242171) T) -> T */
+ /* fn acos<N : num, T : f32_f16>(@test_value(0.96891242171) vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(300),
+ /* overloads */ OverloadIndex(297),
},
{
/* [2] */
- /* fn acosh<T : fa_f32_f16>(@test_value(1.5430806348) T) -> T */
- /* fn acosh<N : num, T : fa_f32_f16>(@test_value(1.5430806348) vec<N, T>) -> vec<N, T> */
+ /* fn acosh<T : f32_f16>(@test_value(1.5430806348) T) -> T */
+ /* fn acosh<N : num, T : f32_f16>(@test_value(1.5430806348) vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(302),
+ /* overloads */ OverloadIndex(299),
},
{
/* [3] */
/* fn all(bool) -> bool */
/* fn all<N : num>(vec<N, bool>) -> bool */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(304),
+ /* overloads */ OverloadIndex(301),
},
{
/* [4] */
/* fn any(bool) -> bool */
/* fn any<N : num>(vec<N, bool>) -> bool */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(306),
+ /* overloads */ OverloadIndex(303),
},
{
/* [5] */
/* fn arrayLength<T, A : access>(ptr<storage, array<T>, A>) -> u32 */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(434),
+ /* overloads */ OverloadIndex(431),
},
{
/* [6] */
- /* fn asin<T : fa_f32_f16>(@test_value(0.479425538604) T) -> T */
- /* fn asin<N : num, T : fa_f32_f16>(@test_value(0.479425538604) vec<N, T>) -> vec<N, T> */
+ /* fn asin<T : f32_f16>(@test_value(0.479425538604) T) -> T */
+ /* fn asin<N : num, T : f32_f16>(@test_value(0.479425538604) vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(308),
+ /* overloads */ OverloadIndex(305),
},
{
/* [7] */
- /* fn asinh<T : fa_f32_f16>(T) -> T */
- /* fn asinh<N : num, T : fa_f32_f16>(vec<N, T>) -> vec<N, T> */
+ /* fn asinh<T : f32_f16>(T) -> T */
+ /* fn asinh<N : num, T : f32_f16>(vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(310),
+ /* overloads */ OverloadIndex(307),
},
{
/* [8] */
- /* fn atan<T : fa_f32_f16>(T) -> T */
- /* fn atan<N : num, T : fa_f32_f16>(vec<N, T>) -> vec<N, T> */
+ /* fn atan<T : f32_f16>(T) -> T */
+ /* fn atan<N : num, T : f32_f16>(vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(312),
+ /* overloads */ OverloadIndex(309),
},
{
/* [9] */
- /* fn atan2<T : fa_f32_f16>(T, T) -> T */
- /* fn atan2<T : fa_f32_f16, N : num>(vec<N, T>, vec<N, T>) -> vec<N, T> */
+ /* fn atan2<T : f32_f16>(T, T) -> T */
+ /* fn atan2<T : f32_f16, N : num>(vec<N, T>, vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(314),
+ /* overloads */ OverloadIndex(311),
},
{
/* [10] */
- /* fn atanh<T : fa_f32_f16>(@test_value(0.5) T) -> T */
- /* fn atanh<N : num, T : fa_f32_f16>(@test_value(0.5) vec<N, T>) -> vec<N, T> */
+ /* fn atanh<T : f32_f16>(@test_value(0.5) T) -> T */
+ /* fn atanh<N : num, T : f32_f16>(@test_value(0.5) vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(316),
+ /* overloads */ OverloadIndex(313),
},
{
/* [11] */
- /* fn ceil<T : fa_f32_f16>(@test_value(1.5) T) -> T */
- /* fn ceil<N : num, T : fa_f32_f16>(@test_value(1.5) vec<N, T>) -> vec<N, T> */
+ /* fn ceil<T : f32_f16>(@test_value(1.5) T) -> T */
+ /* fn ceil<N : num, T : f32_f16>(@test_value(1.5) vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(318),
+ /* overloads */ OverloadIndex(315),
},
{
/* [12] */
- /* fn clamp<T : fia_fiu32_f16>(T, T, T) -> T */
- /* fn clamp<T : fia_fiu32_f16, N : num>(vec<N, T>, vec<N, T>, vec<N, T>) -> vec<N, T> */
+ /* fn clamp<T : fiu32_f16>(T, T, T) -> T */
+ /* fn clamp<T : fiu32_f16, N : num>(vec<N, T>, vec<N, T>, vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(320),
+ /* overloads */ OverloadIndex(317),
},
{
/* [13] */
- /* fn cos<T : fa_f32_f16>(@test_value(0) T) -> T */
- /* fn cos<N : num, T : fa_f32_f16>(@test_value(0) vec<N, T>) -> vec<N, T> */
+ /* fn cos<T : f32_f16>(@test_value(0) T) -> T */
+ /* fn cos<N : num, T : f32_f16>(@test_value(0) vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(322),
+ /* overloads */ OverloadIndex(319),
},
{
/* [14] */
- /* fn cosh<T : fa_f32_f16>(@test_value(0) T) -> T */
- /* fn cosh<N : num, T : fa_f32_f16>(@test_value(0) vec<N, T>) -> vec<N, T> */
+ /* fn cosh<T : f32_f16>(@test_value(0) T) -> T */
+ /* fn cosh<N : num, T : f32_f16>(@test_value(0) vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(324),
+ /* overloads */ OverloadIndex(321),
},
{
/* [15] */
/* fn countLeadingZeros<T : iu32>(T) -> T */
/* fn countLeadingZeros<N : num, T : iu32>(vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(326),
+ /* overloads */ OverloadIndex(323),
},
{
/* [16] */
/* fn countOneBits<T : iu32>(T) -> T */
/* fn countOneBits<N : num, T : iu32>(vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(328),
+ /* overloads */ OverloadIndex(325),
},
{
/* [17] */
/* fn countTrailingZeros<T : iu32>(T) -> T */
/* fn countTrailingZeros<N : num, T : iu32>(vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(330),
+ /* overloads */ OverloadIndex(327),
},
{
/* [18] */
- /* fn cross<T : fa_f32_f16>(vec3<T>, vec3<T>) -> vec3<T> */
+ /* fn cross<T : f32_f16>(vec3<T>, vec3<T>) -> vec3<T> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(435),
+ /* overloads */ OverloadIndex(432),
},
{
/* [19] */
- /* fn degrees<T : fa_f32_f16>(T) -> T */
- /* fn degrees<N : num, T : fa_f32_f16>(vec<N, T>) -> vec<N, T> */
+ /* fn degrees<T : f32_f16>(T) -> T */
+ /* fn degrees<N : num, T : f32_f16>(vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(332),
+ /* overloads */ OverloadIndex(329),
},
{
/* [20] */
- /* fn determinant<N : num, T : fa_f32_f16>(mat<N, N, T>) -> T */
+ /* fn determinant<N : num, T : f32_f16>(mat<N, N, T>) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(436),
+ /* overloads */ OverloadIndex(433),
},
{
/* [21] */
- /* fn distance<T : fa_f32_f16>(T, T) -> T */
- /* fn distance<N : num, T : fa_f32_f16>(vec<N, T>, vec<N, T>) -> T */
+ /* fn distance<T : f32_f16>(T, T) -> T */
+ /* fn distance<N : num, T : f32_f16>(vec<N, T>, vec<N, T>) -> T */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(334),
+ /* overloads */ OverloadIndex(331),
},
{
/* [22] */
- /* fn dot<N : num, T : fia_fiu32_f16>(vec<N, T>, vec<N, T>) -> T */
+ /* fn dot<N : num, T : fiu32_f16>(vec<N, T>, vec<N, T>) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(437),
+ /* overloads */ OverloadIndex(434),
},
{
/* [23] */
/* fn dot4I8Packed(u32, u32) -> i32 */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(438),
+ /* overloads */ OverloadIndex(435),
},
{
/* [24] */
/* fn dot4U8Packed(u32, u32) -> u32 */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(439),
+ /* overloads */ OverloadIndex(436),
},
{
/* [25] */
/* fn dpdx(f32) -> f32 */
/* fn dpdx<N : num>(vec<N, f32>) -> vec<N, f32> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(336),
+ /* overloads */ OverloadIndex(333),
},
{
/* [26] */
/* fn dpdxCoarse(f32) -> f32 */
/* fn dpdxCoarse<N : num>(vec<N, f32>) -> vec<N, f32> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(336),
+ /* overloads */ OverloadIndex(333),
},
{
/* [27] */
/* fn dpdxFine(f32) -> f32 */
/* fn dpdxFine<N : num>(vec<N, f32>) -> vec<N, f32> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(336),
+ /* overloads */ OverloadIndex(333),
},
{
/* [28] */
/* fn dpdy(f32) -> f32 */
/* fn dpdy<N : num>(vec<N, f32>) -> vec<N, f32> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(336),
+ /* overloads */ OverloadIndex(333),
},
{
/* [29] */
/* fn dpdyCoarse(f32) -> f32 */
/* fn dpdyCoarse<N : num>(vec<N, f32>) -> vec<N, f32> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(336),
+ /* overloads */ OverloadIndex(333),
},
{
/* [30] */
/* fn dpdyFine(f32) -> f32 */
/* fn dpdyFine<N : num>(vec<N, f32>) -> vec<N, f32> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(336),
+ /* overloads */ OverloadIndex(333),
},
{
/* [31] */
- /* fn exp<T : fa_f32_f16>(T) -> T */
- /* fn exp<N : num, T : fa_f32_f16>(vec<N, T>) -> vec<N, T> */
+ /* fn exp<T : f32_f16>(T) -> T */
+ /* fn exp<N : num, T : f32_f16>(vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(338),
+ /* overloads */ OverloadIndex(335),
},
{
/* [32] */
- /* fn exp2<T : fa_f32_f16>(T) -> T */
- /* fn exp2<N : num, T : fa_f32_f16>(vec<N, T>) -> vec<N, T> */
+ /* fn exp2<T : f32_f16>(T) -> T */
+ /* fn exp2<N : num, T : f32_f16>(vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(340),
+ /* overloads */ OverloadIndex(337),
},
{
/* [33] */
/* fn extractBits<T : iu32>(T, u32, u32) -> T */
/* fn extractBits<N : num, T : iu32>(vec<N, T>, u32, u32) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(342),
+ /* overloads */ OverloadIndex(339),
},
{
/* [34] */
- /* fn faceForward<N : num, T : fa_f32_f16>(vec<N, T>, vec<N, T>, vec<N, T>) -> vec<N, T> */
+ /* fn faceForward<N : num, T : f32_f16>(vec<N, T>, vec<N, T>, vec<N, T>) -> vec<N, T> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(440),
+ /* overloads */ OverloadIndex(437),
},
{
/* [35] */
/* fn firstLeadingBit<T : iu32>(T) -> T */
/* fn firstLeadingBit<N : num, T : iu32>(vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(344),
+ /* overloads */ OverloadIndex(341),
},
{
/* [36] */
/* fn firstTrailingBit<T : iu32>(T) -> T */
/* fn firstTrailingBit<N : num, T : iu32>(vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(346),
+ /* overloads */ OverloadIndex(343),
},
{
/* [37] */
- /* fn floor<T : fa_f32_f16>(@test_value(1.5) T) -> T */
- /* fn floor<N : num, T : fa_f32_f16>(@test_value(1.5) vec<N, T>) -> vec<N, T> */
+ /* fn floor<T : f32_f16>(@test_value(1.5) T) -> T */
+ /* fn floor<N : num, T : f32_f16>(@test_value(1.5) vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(348),
+ /* overloads */ OverloadIndex(345),
},
{
/* [38] */
- /* fn fma<T : fa_f32_f16>(T, T, T) -> T */
- /* fn fma<N : num, T : fa_f32_f16>(vec<N, T>, vec<N, T>, vec<N, T>) -> vec<N, T> */
+ /* fn fma<T : f32_f16>(T, T, T) -> T */
+ /* fn fma<N : num, T : f32_f16>(vec<N, T>, vec<N, T>, vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(350),
+ /* overloads */ OverloadIndex(347),
},
{
/* [39] */
- /* fn fract<T : fa_f32_f16>(@test_value(1.25) T) -> T */
- /* fn fract<N : num, T : fa_f32_f16>(@test_value(1.25) vec<N, T>) -> vec<N, T> */
+ /* fn fract<T : f32_f16>(@test_value(1.25) T) -> T */
+ /* fn fract<N : num, T : f32_f16>(@test_value(1.25) vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(352),
+ /* overloads */ OverloadIndex(349),
},
{
/* [40] */
- /* fn frexp<T : fa_f32_f16>(T) -> __frexp_result<T> */
- /* fn frexp<N : num, T : fa_f32_f16>(vec<N, T>) -> __frexp_result_vec<N, T> */
+ /* fn frexp<T : f32_f16>(T) -> __frexp_result<T> */
+ /* fn frexp<N : num, T : f32_f16>(vec<N, T>) -> __frexp_result_vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(354),
+ /* overloads */ OverloadIndex(351),
},
{
/* [41] */
/* fn fwidth(f32) -> f32 */
/* fn fwidth<N : num>(vec<N, f32>) -> vec<N, f32> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(336),
+ /* overloads */ OverloadIndex(333),
},
{
/* [42] */
/* fn fwidthCoarse(f32) -> f32 */
/* fn fwidthCoarse<N : num>(vec<N, f32>) -> vec<N, f32> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(336),
+ /* overloads */ OverloadIndex(333),
},
{
/* [43] */
/* fn fwidthFine(f32) -> f32 */
/* fn fwidthFine<N : num>(vec<N, f32>) -> vec<N, f32> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(336),
+ /* overloads */ OverloadIndex(333),
},
{
/* [44] */
/* fn insertBits<T : iu32>(T, T, u32, u32) -> T */
/* fn insertBits<N : num, T : iu32>(vec<N, T>, vec<N, T>, u32, u32) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(356),
+ /* overloads */ OverloadIndex(353),
},
{
/* [45] */
- /* fn inverseSqrt<T : fa_f32_f16>(T) -> T */
- /* fn inverseSqrt<N : num, T : fa_f32_f16>(vec<N, T>) -> vec<N, T> */
+ /* fn inverseSqrt<T : f32_f16>(T) -> T */
+ /* fn inverseSqrt<N : num, T : f32_f16>(vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(358),
+ /* overloads */ OverloadIndex(355),
},
{
/* [46] */
- /* fn ldexp<T : fa_f32_f16, U : ia_i32>(T, U) -> T */
- /* fn ldexp<N : num, T : fa_f32_f16, U : ia_i32>(vec<N, T>, vec<N, U>) -> vec<N, T> */
+ /* fn ldexp<T : f32_f16, U : i32>(T, U) -> T */
+ /* fn ldexp<N : num, T : f32_f16, U : i32>(vec<N, T>, vec<N, U>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(360),
+ /* overloads */ OverloadIndex(357),
},
{
/* [47] */
- /* fn length<T : fa_f32_f16>(@test_value(0) T) -> T */
- /* fn length<N : num, T : fa_f32_f16>(@test_value(0) vec<N, T>) -> T */
+ /* fn length<T : f32_f16>(@test_value(0) T) -> T */
+ /* fn length<N : num, T : f32_f16>(@test_value(0) vec<N, T>) -> T */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(362),
+ /* overloads */ OverloadIndex(359),
},
{
/* [48] */
- /* fn log<T : fa_f32_f16>(T) -> T */
- /* fn log<N : num, T : fa_f32_f16>(vec<N, T>) -> vec<N, T> */
+ /* fn log<T : f32_f16>(T) -> T */
+ /* fn log<N : num, T : f32_f16>(vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(364),
+ /* overloads */ OverloadIndex(361),
},
{
/* [49] */
- /* fn log2<T : fa_f32_f16>(T) -> T */
- /* fn log2<N : num, T : fa_f32_f16>(vec<N, T>) -> vec<N, T> */
+ /* fn log2<T : f32_f16>(T) -> T */
+ /* fn log2<N : num, T : f32_f16>(vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(366),
+ /* overloads */ OverloadIndex(363),
},
{
/* [50] */
- /* fn max<T : fia_fiu32_f16>(T, T) -> T */
- /* fn max<N : num, T : fia_fiu32_f16>(vec<N, T>, vec<N, T>) -> vec<N, T> */
+ /* fn max<T : fiu32_f16>(T, T) -> T */
+ /* fn max<N : num, T : fiu32_f16>(vec<N, T>, vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(368),
+ /* overloads */ OverloadIndex(365),
},
{
/* [51] */
- /* fn min<T : fia_fiu32_f16>(T, T) -> T */
- /* fn min<N : num, T : fia_fiu32_f16>(vec<N, T>, vec<N, T>) -> vec<N, T> */
+ /* fn min<T : fiu32_f16>(T, T) -> T */
+ /* fn min<N : num, T : fiu32_f16>(vec<N, T>, vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(370),
+ /* overloads */ OverloadIndex(367),
},
{
/* [52] */
- /* fn mix<T : fa_f32_f16>(T, T, T) -> T */
- /* fn mix<N : num, T : fa_f32_f16>(vec<N, T>, vec<N, T>, vec<N, T>) -> vec<N, T> */
- /* fn mix<N : num, T : fa_f32_f16>(vec<N, T>, vec<N, T>, T) -> vec<N, T> */
+ /* fn mix<T : f32_f16>(T, T, T) -> T */
+ /* fn mix<N : num, T : f32_f16>(vec<N, T>, vec<N, T>, vec<N, T>) -> vec<N, T> */
+ /* fn mix<N : num, T : f32_f16>(vec<N, T>, vec<N, T>, T) -> vec<N, T> */
/* num overloads */ 3,
- /* overloads */ OverloadIndex(277),
+ /* overloads */ OverloadIndex(274),
},
{
/* [53] */
- /* fn modf<T : fa_f32_f16>(@test_value(-1.5) T) -> __modf_result<T> */
- /* fn modf<N : num, T : fa_f32_f16>(@test_value(-1.5) vec<N, T>) -> __modf_result_vec<N, T> */
+ /* fn modf<T : f32_f16>(@test_value(-1.5) T) -> __modf_result<T> */
+ /* fn modf<N : num, T : f32_f16>(@test_value(-1.5) vec<N, T>) -> __modf_result_vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(372),
+ /* overloads */ OverloadIndex(369),
},
{
/* [54] */
- /* fn normalize<N : num, T : fa_f32_f16>(vec<N, T>) -> vec<N, T> */
+ /* fn normalize<N : num, T : f32_f16>(vec<N, T>) -> vec<N, T> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(441),
+ /* overloads */ OverloadIndex(438),
},
{
/* [55] */
/* fn pack2x16float(vec2<f32>) -> u32 */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(442),
+ /* overloads */ OverloadIndex(439),
},
{
/* [56] */
/* fn pack2x16snorm(vec2<f32>) -> u32 */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(443),
+ /* overloads */ OverloadIndex(440),
},
{
/* [57] */
/* fn pack2x16unorm(vec2<f32>) -> u32 */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(444),
+ /* overloads */ OverloadIndex(441),
},
{
/* [58] */
/* fn pack4x8snorm(vec4<f32>) -> u32 */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(445),
+ /* overloads */ OverloadIndex(442),
},
{
/* [59] */
/* fn pack4x8unorm(vec4<f32>) -> u32 */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(446),
+ /* overloads */ OverloadIndex(443),
},
{
/* [60] */
/* fn pack4xI8(vec4<i32>) -> u32 */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(447),
+ /* overloads */ OverloadIndex(444),
},
{
/* [61] */
/* fn pack4xU8(vec4<u32>) -> u32 */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(448),
+ /* overloads */ OverloadIndex(445),
},
{
/* [62] */
/* fn pack4xI8Clamp(vec4<i32>) -> u32 */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(449),
+ /* overloads */ OverloadIndex(446),
},
{
/* [63] */
/* fn pack4xU8Clamp(vec4<u32>) -> u32 */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(450),
+ /* overloads */ OverloadIndex(447),
},
{
/* [64] */
- /* 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> */
+ /* fn pow<T : f32_f16>(T, T) -> T */
+ /* fn pow<N : num, T : f32_f16>(vec<N, T>, vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(374),
+ /* overloads */ OverloadIndex(371),
},
{
/* [65] */
/* fn quantizeToF16(f32) -> f32 */
/* fn quantizeToF16<N : num>(vec<N, f32>) -> vec<N, f32> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(376),
+ /* overloads */ OverloadIndex(373),
},
{
/* [66] */
- /* fn radians<T : fa_f32_f16>(T) -> T */
- /* fn radians<N : num, T : fa_f32_f16>(vec<N, T>) -> vec<N, T> */
+ /* fn radians<T : f32_f16>(T) -> T */
+ /* fn radians<N : num, T : f32_f16>(vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(378),
+ /* overloads */ OverloadIndex(375),
},
{
/* [67] */
- /* fn reflect<N : num, T : fa_f32_f16>(vec<N, T>, vec<N, T>) -> vec<N, T> */
+ /* fn reflect<N : num, T : f32_f16>(vec<N, T>, vec<N, T>) -> vec<N, T> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(451),
+ /* overloads */ OverloadIndex(448),
},
{
/* [68] */
- /* fn refract<N : num, T : fa_f32_f16>(vec<N, T>, vec<N, T>, T) -> vec<N, T> */
+ /* fn refract<N : num, T : f32_f16>(vec<N, T>, vec<N, T>, T) -> vec<N, T> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(452),
+ /* overloads */ OverloadIndex(449),
},
{
/* [69] */
/* fn reverseBits<T : iu32>(T) -> T */
/* fn reverseBits<N : num, T : iu32>(vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(380),
+ /* overloads */ OverloadIndex(377),
},
{
/* [70] */
- /* 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> */
+ /* fn round<T : f32_f16>(@test_value(3.5) T) -> T */
+ /* fn round<N : num, T : f32_f16>(@test_value(3.5) vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(382),
+ /* overloads */ OverloadIndex(379),
},
{
/* [71] */
- /* 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> */
+ /* fn saturate<T : f32_f16>(@test_value(2) T) -> T */
+ /* fn saturate<T : f32_f16, N : num>(@test_value(2) vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(384),
+ /* overloads */ OverloadIndex(381),
},
{
/* [72] */
@@ -11522,136 +11138,136 @@
/* 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> */
/* num overloads */ 3,
- /* overloads */ OverloadIndex(280),
+ /* overloads */ OverloadIndex(277),
},
{
/* [73] */
- /* fn sign<T : fia_fi32_f16>(T) -> T */
- /* fn sign<N : num, T : fia_fi32_f16>(vec<N, T>) -> vec<N, T> */
+ /* fn sign<T : fi32_f16>(T) -> T */
+ /* fn sign<N : num, T : fi32_f16>(vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(386),
+ /* overloads */ OverloadIndex(383),
},
{
/* [74] */
- /* 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> */
+ /* fn sin<T : f32_f16>(@test_value(1.57079632679) T) -> T */
+ /* fn sin<N : num, T : f32_f16>(@test_value(1.57079632679) vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(388),
+ /* overloads */ OverloadIndex(385),
},
{
/* [75] */
- /* fn sinh<T : fa_f32_f16>(T) -> T */
- /* fn sinh<N : num, T : fa_f32_f16>(vec<N, T>) -> vec<N, T> */
+ /* fn sinh<T : f32_f16>(T) -> T */
+ /* fn sinh<N : num, T : f32_f16>(vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(390),
+ /* overloads */ OverloadIndex(387),
},
{
/* [76] */
- /* 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> */
+ /* fn smoothstep<T : f32_f16>(@test_value(2) T, @test_value(4) T, @test_value(3) T) -> T */
+ /* fn smoothstep<N : num, T : 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),
+ /* overloads */ OverloadIndex(389),
},
{
/* [77] */
- /* fn sqrt<T : fa_f32_f16>(T) -> T */
- /* fn sqrt<N : num, T : fa_f32_f16>(vec<N, T>) -> vec<N, T> */
+ /* fn sqrt<T : f32_f16>(T) -> T */
+ /* fn sqrt<N : num, T : f32_f16>(vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(394),
+ /* overloads */ OverloadIndex(391),
},
{
/* [78] */
- /* 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> */
+ /* fn step<T : f32_f16>(T, T) -> T */
+ /* fn step<N : num, T : f32_f16>(vec<N, T>, vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(396),
+ /* overloads */ OverloadIndex(393),
},
{
/* [79] */
/* fn storageBarrier() */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(453),
+ /* overloads */ OverloadIndex(450),
},
{
/* [80] */
- /* fn tan<T : fa_f32_f16>(T) -> T */
- /* fn tan<N : num, T : fa_f32_f16>(vec<N, T>) -> vec<N, T> */
+ /* fn tan<T : f32_f16>(T) -> T */
+ /* fn tan<N : num, T : f32_f16>(vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(398),
+ /* overloads */ OverloadIndex(395),
},
{
/* [81] */
- /* fn tanh<T : fa_f32_f16>(T) -> T */
- /* fn tanh<N : num, T : fa_f32_f16>(vec<N, T>) -> vec<N, T> */
+ /* fn tanh<T : f32_f16>(T) -> T */
+ /* fn tanh<N : num, T : f32_f16>(vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(400),
+ /* overloads */ OverloadIndex(397),
},
{
/* [82] */
- /* fn transpose<M : num, N : num, T : fa_f32_f16>(mat<M, N, T>) -> mat<N, M, T> */
+ /* fn transpose<M : num, N : num, T : f32_f16>(mat<M, N, T>) -> mat<N, M, T> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(454),
+ /* overloads */ OverloadIndex(451),
},
{
/* [83] */
- /* 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> */
+ /* fn trunc<T : f32_f16>(@test_value(1.5) T) -> T */
+ /* fn trunc<N : num, T : f32_f16>(@test_value(1.5) vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(402),
+ /* overloads */ OverloadIndex(399),
},
{
/* [84] */
/* fn unpack2x16float(u32) -> vec2<f32> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(455),
+ /* overloads */ OverloadIndex(452),
},
{
/* [85] */
/* fn unpack2x16snorm(u32) -> vec2<f32> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(456),
+ /* overloads */ OverloadIndex(453),
},
{
/* [86] */
/* fn unpack2x16unorm(u32) -> vec2<f32> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(457),
+ /* overloads */ OverloadIndex(454),
},
{
/* [87] */
/* fn unpack4x8snorm(u32) -> vec4<f32> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(458),
+ /* overloads */ OverloadIndex(455),
},
{
/* [88] */
/* fn unpack4x8unorm(u32) -> vec4<f32> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(459),
+ /* overloads */ OverloadIndex(456),
},
{
/* [89] */
/* fn unpack4xI8(u32) -> vec4<i32> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(460),
+ /* overloads */ OverloadIndex(457),
},
{
/* [90] */
/* fn unpack4xU8(u32) -> vec4<u32> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(461),
+ /* overloads */ OverloadIndex(458),
},
{
/* [91] */
/* fn workgroupBarrier() */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(453),
+ /* overloads */ OverloadIndex(450),
},
{
/* [92] */
/* fn textureBarrier() */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(453),
+ /* overloads */ OverloadIndex(450),
},
{
/* [93] */
@@ -11700,7 +11316,7 @@
/* fn textureGather(texture: texture_depth_cube, sampler: sampler, coords: vec3<f32>) -> vec4<f32> */
/* fn textureGather<A : iu32>(texture: texture_depth_cube_array, sampler: sampler, coords: vec3<f32>, array_index: A) -> vec4<f32> */
/* num overloads */ 12,
- /* overloads */ OverloadIndex(93),
+ /* overloads */ OverloadIndex(92),
},
{
/* [95] */
@@ -11711,7 +11327,7 @@
/* fn textureGatherCompare(texture: texture_depth_cube, sampler: sampler_comparison, coords: vec3<f32>, depth_ref: f32) -> vec4<f32> */
/* fn textureGatherCompare<A : iu32>(texture: texture_depth_cube_array, sampler: sampler_comparison, coords: vec3<f32>, array_index: A, depth_ref: f32) -> vec4<f32> */
/* num overloads */ 6,
- /* overloads */ OverloadIndex(174),
+ /* overloads */ OverloadIndex(171),
},
{
/* [96] */
@@ -11721,7 +11337,7 @@
/* fn textureNumLayers(texture: texture_depth_cube_array) -> u32 */
/* fn textureNumLayers<F : texel_format, A : access>(texture: texture_storage_2d_array<F, A>) -> u32 */
/* num overloads */ 5,
- /* overloads */ OverloadIndex(246),
+ /* overloads */ OverloadIndex(243),
},
{
/* [97] */
@@ -11736,14 +11352,14 @@
/* fn textureNumLevels(texture: texture_depth_cube) -> u32 */
/* fn textureNumLevels(texture: texture_depth_cube_array) -> u32 */
/* num overloads */ 10,
- /* overloads */ OverloadIndex(129),
+ /* overloads */ OverloadIndex(127),
},
{
/* [98] */
/* fn textureNumSamples<T : fiu32>(texture: texture_multisampled_2d<T>) -> u32 */
/* fn textureNumSamples(texture: texture_depth_multisampled_2d) -> u32 */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(404),
+ /* overloads */ OverloadIndex(401),
},
{
/* [99] */
@@ -11763,7 +11379,7 @@
/* fn textureSample(texture: texture_depth_cube, sampler: sampler, coords: vec3<f32>) -> f32 */
/* fn textureSample<A : iu32>(texture: texture_depth_cube_array, sampler: sampler, coords: vec3<f32>, array_index: A) -> f32 */
/* num overloads */ 15,
- /* overloads */ OverloadIndex(64),
+ /* overloads */ OverloadIndex(48),
},
{
/* [100] */
@@ -11776,7 +11392,7 @@
/* fn textureSampleBias(texture: texture_cube<f32>, sampler: sampler, coords: vec3<f32>, bias: f32) -> vec4<f32> */
/* fn textureSampleBias<A : iu32>(texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: A, bias: f32) -> vec4<f32> */
/* num overloads */ 8,
- /* overloads */ OverloadIndex(158),
+ /* overloads */ OverloadIndex(155),
},
{
/* [101] */
@@ -11787,7 +11403,7 @@
/* fn textureSampleCompare(texture: texture_depth_cube, sampler: sampler_comparison, coords: vec3<f32>, depth_ref: f32) -> f32 */
/* fn textureSampleCompare<A : iu32>(texture: texture_depth_cube_array, sampler: sampler_comparison, coords: vec3<f32>, array_index: A, depth_ref: f32) -> f32 */
/* num overloads */ 6,
- /* overloads */ OverloadIndex(180),
+ /* overloads */ OverloadIndex(177),
},
{
/* [102] */
@@ -11798,7 +11414,7 @@
/* fn textureSampleCompareLevel(texture: texture_depth_cube, sampler: sampler_comparison, coords: vec3<f32>, depth_ref: f32) -> f32 */
/* fn textureSampleCompareLevel<A : iu32>(texture: texture_depth_cube_array, sampler: sampler_comparison, coords: vec3<f32>, array_index: A, depth_ref: f32) -> f32 */
/* num overloads */ 6,
- /* overloads */ OverloadIndex(186),
+ /* overloads */ OverloadIndex(183),
},
{
/* [103] */
@@ -11811,7 +11427,7 @@
/* fn textureSampleGrad(texture: texture_cube<f32>, sampler: sampler, coords: vec3<f32>, ddx: vec3<f32>, ddy: vec3<f32>) -> vec4<f32> */
/* fn textureSampleGrad<A : iu32>(texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: A, ddx: vec3<f32>, ddy: vec3<f32>) -> vec4<f32> */
/* num overloads */ 8,
- /* overloads */ OverloadIndex(166),
+ /* overloads */ OverloadIndex(163),
},
{
/* [104] */
@@ -11830,14 +11446,14 @@
/* fn textureSampleLevel<L : iu32>(texture: texture_depth_cube, sampler: sampler, coords: vec3<f32>, level: L) -> f32 */
/* fn textureSampleLevel<A : iu32, L : iu32>(texture: texture_depth_cube_array, sampler: sampler, coords: vec3<f32>, array_index: A, level: L) -> f32 */
/* num overloads */ 14,
- /* overloads */ OverloadIndex(79),
+ /* overloads */ OverloadIndex(78),
},
{
/* [105] */
/* 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),
+ /* overloads */ OverloadIndex(403),
},
{
/* [106] */
@@ -11854,7 +11470,7 @@
/* fn textureStore<C : iu32, A : iu32>(texture: texture_storage_2d_array<u32_texel_format, writable>, coords: vec2<C>, array_index: A, value: vec4<u32>) */
/* fn textureStore<C : iu32>(texture: texture_storage_3d<u32_texel_format, writable>, coords: vec3<C>, value: vec4<u32>) */
/* num overloads */ 12,
- /* overloads */ OverloadIndex(105),
+ /* overloads */ OverloadIndex(104),
},
{
/* [107] */
@@ -11886,80 +11502,80 @@
/* [108] */
/* fn atomicLoad<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(462),
+ /* overloads */ OverloadIndex(459),
},
{
/* [109] */
/* fn atomicStore<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(463),
+ /* overloads */ OverloadIndex(460),
},
{
/* [110] */
/* fn atomicAdd<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(464),
+ /* overloads */ OverloadIndex(461),
},
{
/* [111] */
/* fn atomicSub<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(464),
+ /* overloads */ OverloadIndex(461),
},
{
/* [112] */
/* fn atomicMax<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(464),
+ /* overloads */ OverloadIndex(461),
},
{
/* [113] */
/* fn atomicMin<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(464),
+ /* overloads */ OverloadIndex(461),
},
{
/* [114] */
/* fn atomicAnd<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(464),
+ /* overloads */ OverloadIndex(461),
},
{
/* [115] */
/* fn atomicOr<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(464),
+ /* overloads */ OverloadIndex(461),
},
{
/* [116] */
/* fn atomicXor<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(464),
+ /* overloads */ OverloadIndex(461),
},
{
/* [117] */
/* fn atomicExchange<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(464),
+ /* overloads */ OverloadIndex(461),
},
{
/* [118] */
/* 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(465),
+ /* overloads */ OverloadIndex(462),
},
{
/* [119] */
/* fn subgroupBallot() -> vec4<u32> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(466),
+ /* overloads */ OverloadIndex(463),
},
{
/* [120] */
/* fn subgroupBroadcast<T : fiu32_f16>(value: T, @const sourceLaneIndex: u32) -> T */
/* fn subgroupBroadcast<N : num, T : fiu32_f16>(value: vec<N, T>, @const sourceLaneIndex: u32) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(408),
+ /* overloads */ OverloadIndex(405),
},
};
@@ -11969,21 +11585,21 @@
/* op !(bool) -> bool */
/* op !<N : num>(vec<N, bool>) -> vec<N, bool> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(410),
+ /* overloads */ OverloadIndex(407),
},
{
/* [1] */
- /* op ~<T : ia_iu32>(T) -> T */
- /* op ~<T : ia_iu32, N : num>(vec<N, T>) -> vec<N, T> */
+ /* op ~<T : iu32>(T) -> T */
+ /* op ~<T : iu32, N : num>(vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(412),
+ /* overloads */ OverloadIndex(409),
},
{
/* [2] */
- /* op -<T : fia_fi32_f16>(T) -> T */
- /* op -<T : fia_fi32_f16, N : num>(vec<N, T>) -> vec<N, T> */
+ /* op -<T : fi32_f16>(T) -> T */
+ /* op -<T : fi32_f16, N : num>(vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(414),
+ /* overloads */ OverloadIndex(411),
},
};
constexpr uint8_t kUnaryOperatorNot = 0;
@@ -11993,148 +11609,148 @@
constexpr IntrinsicInfo kBinaryOperators[] = {
{
/* [0] */
- /* op +<T : fia_fiu32_f16>(T, T) -> T */
- /* op +<T : fia_fiu32_f16, N : num>(vec<N, T>, vec<N, T>) -> vec<N, T> */
- /* op +<T : fia_fiu32_f16, N : num>(vec<N, T>, T) -> vec<N, T> */
- /* op +<T : fia_fiu32_f16, N : num>(T, vec<N, T>) -> vec<N, T> */
- /* op +<T : fa_f32_f16, N : num, M : num>(mat<N, M, T>, mat<N, M, T>) -> mat<N, M, T> */
+ /* op +<T : fiu32_f16>(T, T) -> T */
+ /* op +<T : fiu32_f16, N : num>(vec<N, T>, vec<N, T>) -> vec<N, T> */
+ /* op +<T : fiu32_f16, N : num>(vec<N, T>, T) -> vec<N, T> */
+ /* op +<T : fiu32_f16, N : num>(T, vec<N, T>) -> vec<N, T> */
+ /* op +<T : f32_f16, N : num, M : num>(mat<N, M, T>, mat<N, M, T>) -> mat<N, M, T> */
/* num overloads */ 5,
- /* overloads */ OverloadIndex(251),
+ /* overloads */ OverloadIndex(248),
},
{
/* [1] */
- /* op -<T : fia_fiu32_f16>(T, T) -> T */
- /* op -<T : fia_fiu32_f16, N : num>(vec<N, T>, vec<N, T>) -> vec<N, T> */
- /* op -<T : fia_fiu32_f16, N : num>(vec<N, T>, T) -> vec<N, T> */
- /* op -<T : fia_fiu32_f16, N : num>(T, vec<N, T>) -> vec<N, T> */
- /* op -<T : fa_f32_f16, N : num, M : num>(mat<N, M, T>, mat<N, M, T>) -> mat<N, M, T> */
+ /* op -<T : fiu32_f16>(T, T) -> T */
+ /* op -<T : fiu32_f16, N : num>(vec<N, T>, vec<N, T>) -> vec<N, T> */
+ /* op -<T : fiu32_f16, N : num>(vec<N, T>, T) -> vec<N, T> */
+ /* op -<T : fiu32_f16, N : num>(T, vec<N, T>) -> vec<N, T> */
+ /* op -<T : f32_f16, N : num, M : num>(mat<N, M, T>, mat<N, M, T>) -> mat<N, M, T> */
/* num overloads */ 5,
- /* overloads */ OverloadIndex(256),
+ /* overloads */ OverloadIndex(253),
},
{
/* [2] */
- /* op *<T : fia_fiu32_f16>(T, T) -> T */
- /* op *<T : fia_fiu32_f16, N : num>(vec<N, T>, vec<N, T>) -> vec<N, T> */
- /* op *<T : fia_fiu32_f16, N : num>(vec<N, T>, T) -> vec<N, T> */
- /* op *<T : fia_fiu32_f16, N : num>(T, vec<N, T>) -> vec<N, T> */
- /* op *<T : fa_f32_f16, N : num, M : num>(T, mat<N, M, T>) -> mat<N, M, T> */
- /* op *<T : fa_f32_f16, N : num, M : num>(mat<N, M, T>, T) -> mat<N, M, T> */
- /* op *<T : fa_f32_f16, C : num, R : num>(mat<C, R, T>, vec<C, T>) -> vec<R, T> */
- /* op *<T : fa_f32_f16, C : num, R : num>(vec<R, T>, mat<C, R, T>) -> vec<C, T> */
- /* op *<T : fa_f32_f16, K : num, C : num, R : num>(mat<K, R, T>, mat<C, K, T>) -> mat<C, R, T> */
+ /* op *<T : fiu32_f16>(T, T) -> T */
+ /* op *<T : fiu32_f16, N : num>(vec<N, T>, vec<N, T>) -> vec<N, T> */
+ /* op *<T : fiu32_f16, N : num>(vec<N, T>, T) -> vec<N, T> */
+ /* op *<T : fiu32_f16, N : num>(T, vec<N, T>) -> vec<N, T> */
+ /* op *<T : f32_f16, N : num, M : num>(T, mat<N, M, T>) -> mat<N, M, T> */
+ /* op *<T : f32_f16, N : num, M : num>(mat<N, M, T>, T) -> mat<N, M, T> */
+ /* op *<T : f32_f16, C : num, R : num>(mat<C, R, T>, vec<C, T>) -> vec<R, T> */
+ /* op *<T : f32_f16, C : num, R : num>(vec<R, T>, mat<C, R, T>) -> vec<C, T> */
+ /* op *<T : f32_f16, K : num, C : num, R : num>(mat<K, R, T>, mat<C, K, T>) -> mat<C, R, T> */
/* num overloads */ 9,
- /* overloads */ OverloadIndex(149),
+ /* overloads */ OverloadIndex(137),
},
{
/* [3] */
- /* op /<T : fia_fiu32_f16>(T, T) -> T */
- /* op /<T : fia_fiu32_f16, N : num>(vec<N, T>, vec<N, T>) -> vec<N, T> */
- /* op /<T : fia_fiu32_f16, N : num>(vec<N, T>, T) -> vec<N, T> */
- /* op /<T : fia_fiu32_f16, N : num>(T, vec<N, T>) -> vec<N, T> */
+ /* op /<T : fiu32_f16>(T, T) -> T */
+ /* op /<T : fiu32_f16, N : num>(vec<N, T>, vec<N, T>) -> vec<N, T> */
+ /* op /<T : fiu32_f16, N : num>(vec<N, T>, T) -> vec<N, T> */
+ /* op /<T : fiu32_f16, N : num>(T, vec<N, T>) -> vec<N, T> */
/* num overloads */ 4,
- /* overloads */ OverloadIndex(261),
+ /* overloads */ OverloadIndex(258),
},
{
/* [4] */
- /* op %<T : fia_fiu32_f16>(T, T) -> T */
- /* op %<T : fia_fiu32_f16, N : num>(vec<N, T>, vec<N, T>) -> vec<N, T> */
- /* op %<T : fia_fiu32_f16, N : num>(vec<N, T>, T) -> vec<N, T> */
- /* op %<T : fia_fiu32_f16, N : num>(T, vec<N, T>) -> vec<N, T> */
+ /* op %<T : fiu32_f16>(T, T) -> T */
+ /* op %<T : fiu32_f16, N : num>(vec<N, T>, vec<N, T>) -> vec<N, T> */
+ /* op %<T : fiu32_f16, N : num>(vec<N, T>, T) -> vec<N, T> */
+ /* op %<T : fiu32_f16, N : num>(T, vec<N, T>) -> vec<N, T> */
/* num overloads */ 4,
- /* overloads */ OverloadIndex(265),
+ /* overloads */ OverloadIndex(262),
},
{
/* [5] */
- /* op ^<T : ia_iu32>(T, T) -> T */
- /* op ^<T : ia_iu32, N : num>(vec<N, T>, vec<N, T>) -> vec<N, T> */
+ /* op ^<T : iu32>(T, T) -> T */
+ /* op ^<T : iu32, N : num>(vec<N, T>, vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(416),
+ /* overloads */ OverloadIndex(413),
},
{
/* [6] */
/* op &(bool, bool) -> bool */
/* op &<N : num>(vec<N, bool>, vec<N, bool>) -> vec<N, bool> */
- /* op &<T : ia_iu32>(T, T) -> T */
- /* op &<T : ia_iu32, N : num>(vec<N, T>, vec<N, T>) -> vec<N, T> */
+ /* op &<T : iu32>(T, T) -> T */
+ /* op &<T : iu32, N : num>(vec<N, T>, vec<N, T>) -> vec<N, T> */
/* num overloads */ 4,
- /* overloads */ OverloadIndex(269),
+ /* overloads */ OverloadIndex(266),
},
{
/* [7] */
/* op |(bool, bool) -> bool */
/* op |<N : num>(vec<N, bool>, vec<N, bool>) -> vec<N, bool> */
- /* op |<T : ia_iu32>(T, T) -> T */
- /* op |<T : ia_iu32, N : num>(vec<N, T>, vec<N, T>) -> vec<N, T> */
+ /* op |<T : iu32>(T, T) -> T */
+ /* op |<T : iu32, N : num>(vec<N, T>, vec<N, T>) -> vec<N, T> */
/* num overloads */ 4,
- /* overloads */ OverloadIndex(273),
+ /* overloads */ OverloadIndex(270),
},
{
/* [8] */
/* op &&(bool, bool) -> bool */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(467),
+ /* overloads */ OverloadIndex(464),
},
{
/* [9] */
/* op ||(bool, bool) -> bool */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(468),
+ /* overloads */ OverloadIndex(465),
},
{
/* [10] */
/* op ==<T : scalar>(T, T) -> bool */
/* op ==<T : scalar, N : num>(vec<N, T>, vec<N, T>) -> vec<N, bool> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(418),
+ /* overloads */ OverloadIndex(415),
},
{
/* [11] */
/* op !=<T : scalar>(T, T) -> bool */
/* op !=<T : scalar, N : num>(vec<N, T>, vec<N, T>) -> vec<N, bool> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(420),
+ /* overloads */ OverloadIndex(417),
},
{
/* [12] */
- /* op <<T : fia_fiu32_f16>(T, T) -> bool */
- /* op <<T : fia_fiu32_f16, N : num>(vec<N, T>, vec<N, T>) -> vec<N, bool> */
+ /* op <<T : fiu32_f16>(T, T) -> bool */
+ /* op <<T : fiu32_f16, N : num>(vec<N, T>, vec<N, T>) -> vec<N, bool> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(422),
+ /* overloads */ OverloadIndex(419),
},
{
/* [13] */
- /* op ><T : fia_fiu32_f16>(T, T) -> bool */
- /* op ><T : fia_fiu32_f16, N : num>(vec<N, T>, vec<N, T>) -> vec<N, bool> */
+ /* op ><T : fiu32_f16>(T, T) -> bool */
+ /* op ><T : fiu32_f16, N : num>(vec<N, T>, vec<N, T>) -> vec<N, bool> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(424),
+ /* overloads */ OverloadIndex(421),
},
{
/* [14] */
- /* op <=<T : fia_fiu32_f16>(T, T) -> bool */
- /* op <=<T : fia_fiu32_f16, N : num>(vec<N, T>, vec<N, T>) -> vec<N, bool> */
+ /* op <=<T : fiu32_f16>(T, T) -> bool */
+ /* op <=<T : fiu32_f16, N : num>(vec<N, T>, vec<N, T>) -> vec<N, bool> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(426),
+ /* overloads */ OverloadIndex(423),
},
{
/* [15] */
- /* op >=<T : fia_fiu32_f16>(T, T) -> bool */
- /* op >=<T : fia_fiu32_f16, N : num>(vec<N, T>, vec<N, T>) -> vec<N, bool> */
+ /* op >=<T : fiu32_f16>(T, T) -> bool */
+ /* op >=<T : fiu32_f16, N : num>(vec<N, T>, vec<N, T>) -> vec<N, bool> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(428),
+ /* overloads */ OverloadIndex(425),
},
{
/* [16] */
- /* op <<<T : ia_iu32>(T, u32) -> T */
- /* op <<<T : ia_iu32, N : num>(vec<N, T>, vec<N, u32>) -> vec<N, T> */
+ /* op <<<T : iu32>(T, u32) -> T */
+ /* op <<<T : iu32, N : num>(vec<N, T>, vec<N, u32>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(430),
+ /* overloads */ OverloadIndex(427),
},
{
/* [17] */
- /* op >><T : ia_iu32>(T, u32) -> T */
- /* op >><T : ia_iu32, N : num>(vec<N, T>, vec<N, u32>) -> vec<N, T> */
+ /* op >><T : iu32>(T, u32) -> T */
+ /* op >><T : iu32, N : num>(vec<N, T>, vec<N, u32>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(432),
+ /* overloads */ OverloadIndex(429),
},
};
constexpr uint8_t kBinaryOperatorPlus = 0;
@@ -12163,7 +11779,7 @@
/* ctor i32(i32) -> i32 */
/* conv i32<T : scalar_no_i32>(T) -> i32 */
/* num overloads */ 3,
- /* overloads */ OverloadIndex(283),
+ /* overloads */ OverloadIndex(280),
},
{
/* [1] */
@@ -12171,7 +11787,7 @@
/* ctor u32(u32) -> u32 */
/* conv u32<T : scalar_no_u32>(T) -> u32 */
/* num overloads */ 3,
- /* overloads */ OverloadIndex(286),
+ /* overloads */ OverloadIndex(283),
},
{
/* [2] */
@@ -12179,7 +11795,7 @@
/* ctor f32(f32) -> f32 */
/* conv f32<T : scalar_no_f32>(T) -> f32 */
/* num overloads */ 3,
- /* overloads */ OverloadIndex(289),
+ /* overloads */ OverloadIndex(286),
},
{
/* [3] */
@@ -12187,7 +11803,7 @@
/* ctor f16(f16) -> f16 */
/* conv f16<T : scalar_no_f16>(T) -> f16 */
/* num overloads */ 3,
- /* overloads */ OverloadIndex(292),
+ /* overloads */ OverloadIndex(289),
},
{
/* [4] */
@@ -12195,12 +11811,11 @@
/* ctor bool(bool) -> bool */
/* conv bool<T : scalar_no_bool>(T) -> bool */
/* num overloads */ 3,
- /* overloads */ OverloadIndex(295),
+ /* overloads */ OverloadIndex(292),
},
{
/* [5] */
- /* ctor vec2() -> vec2<ia> */
- /* ctor vec2<T : concrete_scalar>() -> vec2<T> */
+ /* ctor vec2<T : scalar>() -> vec2<T> */
/* ctor vec2<T : scalar>(vec2<T>) -> vec2<T> */
/* ctor vec2<T : scalar>(T) -> vec2<T> */
/* ctor vec2<T : scalar>(x: T, y: T) -> vec2<T> */
@@ -12209,13 +11824,12 @@
/* conv vec2<T : i32, U : scalar_no_i32>(vec2<U>) -> vec2<i32> */
/* conv vec2<T : u32, U : scalar_no_u32>(vec2<U>) -> vec2<u32> */
/* conv vec2<T : bool, U : scalar_no_bool>(vec2<U>) -> vec2<bool> */
- /* num overloads */ 10,
- /* overloads */ OverloadIndex(139),
+ /* num overloads */ 9,
+ /* overloads */ OverloadIndex(146),
},
{
/* [6] */
- /* ctor vec3() -> vec3<ia> */
- /* ctor vec3<T : concrete_scalar>() -> vec3<T> */
+ /* ctor vec3<T : scalar>() -> vec3<T> */
/* ctor vec3<T : scalar>(vec3<T>) -> vec3<T> */
/* ctor vec3<T : scalar>(T) -> vec3<T> */
/* ctor vec3<T : scalar>(x: T, y: T, z: T) -> vec3<T> */
@@ -12226,13 +11840,12 @@
/* conv vec3<T : i32, U : scalar_no_i32>(vec3<U>) -> vec3<i32> */
/* conv vec3<T : u32, U : scalar_no_u32>(vec3<U>) -> vec3<u32> */
/* conv vec3<T : bool, U : scalar_no_bool>(vec3<U>) -> vec3<bool> */
- /* num overloads */ 12,
- /* overloads */ OverloadIndex(117),
+ /* num overloads */ 11,
+ /* overloads */ OverloadIndex(116),
},
{
/* [7] */
- /* ctor vec4() -> vec4<ia> */
- /* ctor vec4<T : concrete_scalar>() -> vec4<T> */
+ /* ctor vec4<T : scalar>() -> vec4<T> */
/* ctor vec4<T : scalar>(vec4<T>) -> vec4<T> */
/* ctor vec4<T : scalar>(T) -> vec4<T> */
/* ctor vec4<T : scalar>(x: T, y: T, z: T, w: T) -> vec4<T> */
@@ -12247,113 +11860,107 @@
/* conv vec4<T : i32, U : scalar_no_i32>(vec4<U>) -> vec4<i32> */
/* conv vec4<T : u32, U : scalar_no_u32>(vec4<U>) -> vec4<u32> */
/* conv vec4<T : bool, U : scalar_no_bool>(vec4<U>) -> vec4<bool> */
- /* num overloads */ 16,
- /* overloads */ OverloadIndex(48),
+ /* num overloads */ 15,
+ /* overloads */ OverloadIndex(63),
},
{
/* [8] */
/* ctor mat2x2<T : f32_f16>() -> mat2x2<T> */
/* ctor mat2x2<T : f32_f16>(mat2x2<T>) -> mat2x2<T> */
- /* ctor mat2x2<T : fa_f32_f16>(T, T, T, T) -> mat2x2<T> */
- /* ctor mat2x2<T : fa_f32_f16>(vec2<T>, vec2<T>) -> mat2x2<T> */
+ /* ctor mat2x2<T : f32_f16>(T, T, T, T) -> mat2x2<T> */
+ /* ctor mat2x2<T : f32_f16>(vec2<T>, vec2<T>) -> mat2x2<T> */
/* conv mat2x2<T : f16>(mat2x2<f32>) -> mat2x2<f16> */
/* conv mat2x2<T : f32>(mat2x2<f16>) -> mat2x2<f32> */
/* num overloads */ 6,
- /* overloads */ OverloadIndex(192),
+ /* overloads */ OverloadIndex(189),
},
{
/* [9] */
/* ctor mat2x3<T : f32_f16>() -> mat2x3<T> */
/* ctor mat2x3<T : f32_f16>(mat2x3<T>) -> mat2x3<T> */
- /* ctor mat2x3<T : fa_f32_f16>(T, T, T, T, T, T) -> mat2x3<T> */
- /* ctor mat2x3<T : fa_f32_f16>(vec3<T>, vec3<T>) -> mat2x3<T> */
+ /* ctor mat2x3<T : f32_f16>(T, T, T, T, T, T) -> mat2x3<T> */
+ /* ctor mat2x3<T : f32_f16>(vec3<T>, vec3<T>) -> mat2x3<T> */
/* conv mat2x3<T : f16>(mat2x3<f32>) -> mat2x3<f16> */
/* conv mat2x3<T : f32>(mat2x3<f16>) -> mat2x3<f32> */
/* num overloads */ 6,
- /* overloads */ OverloadIndex(198),
+ /* overloads */ OverloadIndex(195),
},
{
/* [10] */
/* ctor mat2x4<T : f32_f16>() -> mat2x4<T> */
/* ctor mat2x4<T : f32_f16>(mat2x4<T>) -> mat2x4<T> */
- /* ctor mat2x4<T : fa_f32_f16>(T, T, T, T, T, T, T, T) -> mat2x4<T> */
- /* ctor mat2x4<T : fa_f32_f16>(vec4<T>, vec4<T>) -> mat2x4<T> */
+ /* ctor mat2x4<T : f32_f16>(T, T, T, T, T, T, T, T) -> mat2x4<T> */
+ /* ctor mat2x4<T : f32_f16>(vec4<T>, vec4<T>) -> mat2x4<T> */
/* conv mat2x4<T : f16>(mat2x4<f32>) -> mat2x4<f16> */
/* conv mat2x4<T : f32>(mat2x4<f16>) -> mat2x4<f32> */
/* num overloads */ 6,
- /* overloads */ OverloadIndex(204),
+ /* overloads */ OverloadIndex(201),
},
{
/* [11] */
/* ctor mat3x2<T : f32_f16>() -> mat3x2<T> */
/* ctor mat3x2<T : f32_f16>(mat3x2<T>) -> mat3x2<T> */
- /* ctor mat3x2<T : fa_f32_f16>(T, T, T, T, T, T) -> mat3x2<T> */
- /* ctor mat3x2<T : fa_f32_f16>(vec2<T>, vec2<T>, vec2<T>) -> mat3x2<T> */
+ /* ctor mat3x2<T : f32_f16>(T, T, T, T, T, T) -> mat3x2<T> */
+ /* ctor mat3x2<T : f32_f16>(vec2<T>, vec2<T>, vec2<T>) -> mat3x2<T> */
/* conv mat3x2<T : f16>(mat3x2<f32>) -> mat3x2<f16> */
/* conv mat3x2<T : f32>(mat3x2<f16>) -> mat3x2<f32> */
/* num overloads */ 6,
- /* overloads */ OverloadIndex(210),
+ /* overloads */ OverloadIndex(207),
},
{
/* [12] */
/* ctor mat3x3<T : f32_f16>() -> mat3x3<T> */
/* ctor mat3x3<T : f32_f16>(mat3x3<T>) -> mat3x3<T> */
- /* ctor mat3x3<T : fa_f32_f16>(T, T, T, T, T, T, T, T, T) -> mat3x3<T> */
- /* ctor mat3x3<T : fa_f32_f16>(vec3<T>, vec3<T>, vec3<T>) -> mat3x3<T> */
+ /* ctor mat3x3<T : f32_f16>(T, T, T, T, T, T, T, T, T) -> mat3x3<T> */
+ /* ctor mat3x3<T : f32_f16>(vec3<T>, vec3<T>, vec3<T>) -> mat3x3<T> */
/* conv mat3x3<T : f16>(mat3x3<f32>) -> mat3x3<f16> */
/* conv mat3x3<T : f32>(mat3x3<f16>) -> mat3x3<f32> */
/* num overloads */ 6,
- /* overloads */ OverloadIndex(216),
+ /* overloads */ OverloadIndex(213),
},
{
/* [13] */
/* ctor mat3x4<T : f32_f16>() -> mat3x4<T> */
/* ctor mat3x4<T : f32_f16>(mat3x4<T>) -> mat3x4<T> */
- /* ctor mat3x4<T : fa_f32_f16>(T, T, T, T, T, T, T, T, T, T, T, T) -> mat3x4<T> */
- /* ctor mat3x4<T : fa_f32_f16>(vec4<T>, vec4<T>, vec4<T>) -> mat3x4<T> */
+ /* ctor mat3x4<T : f32_f16>(T, T, T, T, T, T, T, T, T, T, T, T) -> mat3x4<T> */
+ /* ctor mat3x4<T : f32_f16>(vec4<T>, vec4<T>, vec4<T>) -> mat3x4<T> */
/* conv mat3x4<T : f16>(mat3x4<f32>) -> mat3x4<f16> */
/* conv mat3x4<T : f32>(mat3x4<f16>) -> mat3x4<f32> */
/* num overloads */ 6,
- /* overloads */ OverloadIndex(222),
+ /* overloads */ OverloadIndex(219),
},
{
/* [14] */
/* ctor mat4x2<T : f32_f16>() -> mat4x2<T> */
/* ctor mat4x2<T : f32_f16>(mat4x2<T>) -> mat4x2<T> */
- /* ctor mat4x2<T : fa_f32_f16>(T, T, T, T, T, T, T, T) -> mat4x2<T> */
- /* ctor mat4x2<T : fa_f32_f16>(vec2<T>, vec2<T>, vec2<T>, vec2<T>) -> mat4x2<T> */
+ /* ctor mat4x2<T : f32_f16>(T, T, T, T, T, T, T, T) -> mat4x2<T> */
+ /* ctor mat4x2<T : f32_f16>(vec2<T>, vec2<T>, vec2<T>, vec2<T>) -> mat4x2<T> */
/* conv mat4x2<T : f16>(mat4x2<f32>) -> mat4x2<f16> */
/* conv mat4x2<T : f32>(mat4x2<f16>) -> mat4x2<f32> */
/* num overloads */ 6,
- /* overloads */ OverloadIndex(228),
+ /* overloads */ OverloadIndex(225),
},
{
/* [15] */
/* ctor mat4x3<T : f32_f16>() -> mat4x3<T> */
/* ctor mat4x3<T : f32_f16>(mat4x3<T>) -> mat4x3<T> */
- /* ctor mat4x3<T : fa_f32_f16>(T, T, T, T, T, T, T, T, T, T, T, T) -> mat4x3<T> */
- /* ctor mat4x3<T : fa_f32_f16>(vec3<T>, vec3<T>, vec3<T>, vec3<T>) -> mat4x3<T> */
+ /* ctor mat4x3<T : f32_f16>(T, T, T, T, T, T, T, T, T, T, T, T) -> mat4x3<T> */
+ /* ctor mat4x3<T : f32_f16>(vec3<T>, vec3<T>, vec3<T>, vec3<T>) -> mat4x3<T> */
/* conv mat4x3<T : f16>(mat4x3<f32>) -> mat4x3<f16> */
/* conv mat4x3<T : f32>(mat4x3<f16>) -> mat4x3<f32> */
/* num overloads */ 6,
- /* overloads */ OverloadIndex(234),
+ /* overloads */ OverloadIndex(231),
},
{
/* [16] */
/* ctor mat4x4<T : f32_f16>() -> mat4x4<T> */
/* ctor mat4x4<T : f32_f16>(mat4x4<T>) -> mat4x4<T> */
- /* ctor mat4x4<T : fa_f32_f16>(T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T) -> mat4x4<T> */
- /* ctor mat4x4<T : fa_f32_f16>(vec4<T>, vec4<T>, vec4<T>, vec4<T>) -> mat4x4<T> */
+ /* ctor mat4x4<T : f32_f16>(T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T) -> mat4x4<T> */
+ /* ctor mat4x4<T : f32_f16>(vec4<T>, vec4<T>, vec4<T>, vec4<T>) -> mat4x4<T> */
/* conv mat4x4<T : f16>(mat4x4<f32>) -> mat4x4<f16> */
/* conv mat4x4<T : f32>(mat4x4<f16>) -> mat4x4<f32> */
/* num overloads */ 6,
- /* overloads */ OverloadIndex(240),
- },
- {
- /* [17] */
- /* conv packedVec3<T : concrete_scalar>(vec3<T>) -> packedVec3<T> */
- /* num overloads */ 1,
- /* overloads */ OverloadIndex(469),
+ /* overloads */ OverloadIndex(237),
},
};
diff --git a/src/tint/lang/core/intrinsic/table_test.cc b/src/tint/lang/core/intrinsic/table_test.cc
index 26777e7..201b184 100644
--- a/src/tint/lang/core/intrinsic/table_test.cc
+++ b/src/tint/lang/core/intrinsic/table_test.cc
@@ -42,75 +42,62 @@
#include "src/tint/lang/core/type/sampled_texture.h"
#include "src/tint/lang/core/type/storage_texture.h"
#include "src/tint/lang/core/type/texture_dimension.h"
-#include "src/tint/lang/wgsl/resolver/resolver_helper_test.h"
-#include "src/tint/lang/wgsl/sem/value_constructor.h"
-#include "src/tint/lang/wgsl/sem/value_conversion.h"
namespace tint::core::intrinsic {
namespace {
using ::testing::HasSubstr;
-using namespace tint::core::fluent_types; // NOLINT
-using Parameter = sem::Parameter;
-using ParameterUsage = core::ParameterUsage;
-
-using AFloatV = vec3<AFloat>;
-using AIntV = vec3<AInt>;
-using f32V = vec3<f32>;
-using i32V = vec3<i32>;
-using u32V = vec3<u32>;
-
-class IntrinsicTableTest : public testing::Test, public ProgramBuilder {
+class CoreIntrinsicTableTest : public testing::Test, public ProgramBuilder {
public:
Table<Dialect> table{Types(), Symbols()};
};
-TEST_F(IntrinsicTableTest, MatchF32) {
- auto* f32 = create<core::type::F32>();
- auto result = table.Lookup(core::BuiltinFn::kCos, Vector{f32}, EvaluationStage::kConstant);
+TEST_F(CoreIntrinsicTableTest, MatchF32) {
+ auto* f32 = create<type::F32>();
+ auto result = table.Lookup(BuiltinFn::kCos, Vector{f32}, EvaluationStage::kConstant);
ASSERT_EQ(result, Success);
EXPECT_EQ(result->return_type, f32);
ASSERT_EQ(result->parameters.Length(), 1u);
EXPECT_EQ(result->parameters[0].type, f32);
}
-TEST_F(IntrinsicTableTest, MismatchF32) {
- auto* i32 = create<core::type::I32>();
- auto result = table.Lookup(core::BuiltinFn::kCos, Vector{i32}, EvaluationStage::kConstant);
+TEST_F(CoreIntrinsicTableTest, MismatchF32) {
+ auto* i32 = create<type::I32>();
+ auto result = table.Lookup(BuiltinFn::kCos, Vector{i32}, EvaluationStage::kConstant);
ASSERT_NE(result, Success);
ASSERT_THAT(result.Failure(), HasSubstr("no matching call"));
}
-TEST_F(IntrinsicTableTest, MatchU32) {
- auto* f32 = create<core::type::F32>();
- auto* u32 = create<core::type::U32>();
- auto* vec2_f32 = create<core::type::Vector>(f32, 2u);
+TEST_F(CoreIntrinsicTableTest, MatchU32) {
+ auto* f32 = create<type::F32>();
+ auto* u32 = create<type::U32>();
+ auto* vec2f = create<type::Vector>(f32, 2u);
auto result =
- table.Lookup(core::BuiltinFn::kUnpack2X16Float, Vector{u32}, EvaluationStage::kConstant);
+ table.Lookup(BuiltinFn::kUnpack2X16Float, Vector{u32}, EvaluationStage::kConstant);
ASSERT_EQ(result, Success);
- EXPECT_EQ(result->return_type, vec2_f32);
+ EXPECT_EQ(result->return_type, vec2f);
ASSERT_EQ(result->parameters.Length(), 1u);
EXPECT_EQ(result->parameters[0].type, u32);
}
-TEST_F(IntrinsicTableTest, MismatchU32) {
- auto* f32 = create<core::type::F32>();
+TEST_F(CoreIntrinsicTableTest, MismatchU32) {
+ auto* f32 = create<type::F32>();
auto result =
- table.Lookup(core::BuiltinFn::kUnpack2X16Float, Vector{f32}, EvaluationStage::kConstant);
+ table.Lookup(BuiltinFn::kUnpack2X16Float, Vector{f32}, EvaluationStage::kConstant);
ASSERT_NE(result, Success);
ASSERT_THAT(result.Failure(), HasSubstr("no matching call"));
}
-TEST_F(IntrinsicTableTest, MatchI32) {
- auto* f32 = create<core::type::F32>();
- auto* i32 = create<core::type::I32>();
- auto* vec4_f32 = create<core::type::Vector>(f32, 4u);
- auto* tex = create<core::type::SampledTexture>(core::type::TextureDimension::k1d, f32);
- auto result = table.Lookup(core::BuiltinFn::kTextureLoad, Vector{tex, i32, i32},
- EvaluationStage::kConstant);
+TEST_F(CoreIntrinsicTableTest, MatchI32) {
+ auto* f32 = create<type::F32>();
+ auto* i32 = create<type::I32>();
+ auto* vec4f = create<type::Vector>(f32, 4u);
+ auto* tex = create<type::SampledTexture>(type::TextureDimension::k1d, f32);
+ auto result =
+ table.Lookup(BuiltinFn::kTextureLoad, Vector{tex, i32, i32}, EvaluationStage::kConstant);
ASSERT_EQ(result, Success);
- EXPECT_EQ(result->return_type, vec4_f32);
+ EXPECT_EQ(result->return_type, vec4f);
ASSERT_EQ(result->parameters.Length(), 3u);
EXPECT_EQ(result->parameters[0].type, tex);
EXPECT_EQ(result->parameters[0].usage, ParameterUsage::kTexture);
@@ -120,47 +107,44 @@
EXPECT_EQ(result->parameters[2].usage, ParameterUsage::kLevel);
}
-TEST_F(IntrinsicTableTest, MismatchI32) {
- auto* f32 = create<core::type::F32>();
- auto* tex = create<core::type::SampledTexture>(core::type::TextureDimension::k1d, f32);
+TEST_F(CoreIntrinsicTableTest, MismatchI32) {
+ auto* f32 = create<type::F32>();
+ auto* tex = create<type::SampledTexture>(type::TextureDimension::k1d, f32);
auto result =
- table.Lookup(core::BuiltinFn::kTextureLoad, Vector{tex, f32}, EvaluationStage::kConstant);
+ table.Lookup(BuiltinFn::kTextureLoad, Vector{tex, f32}, EvaluationStage::kConstant);
ASSERT_NE(result, Success);
ASSERT_THAT(result.Failure(), HasSubstr("no matching call"));
}
-TEST_F(IntrinsicTableTest, MatchIU32AsI32) {
- auto* i32 = create<core::type::I32>();
- auto result =
- table.Lookup(core::BuiltinFn::kCountOneBits, Vector{i32}, EvaluationStage::kConstant);
+TEST_F(CoreIntrinsicTableTest, MatchIU32AsI32) {
+ auto* i32 = create<type::I32>();
+ auto result = table.Lookup(BuiltinFn::kCountOneBits, Vector{i32}, EvaluationStage::kConstant);
ASSERT_EQ(result, Success);
EXPECT_EQ(result->return_type, i32);
ASSERT_EQ(result->parameters.Length(), 1u);
EXPECT_EQ(result->parameters[0].type, i32);
}
-TEST_F(IntrinsicTableTest, MatchIU32AsU32) {
- auto* u32 = create<core::type::U32>();
- auto result =
- table.Lookup(core::BuiltinFn::kCountOneBits, Vector{u32}, EvaluationStage::kConstant);
+TEST_F(CoreIntrinsicTableTest, MatchIU32AsU32) {
+ auto* u32 = create<type::U32>();
+ auto result = table.Lookup(BuiltinFn::kCountOneBits, Vector{u32}, EvaluationStage::kConstant);
ASSERT_EQ(result, Success);
EXPECT_EQ(result->return_type, u32);
ASSERT_EQ(result->parameters.Length(), 1u);
EXPECT_EQ(result->parameters[0].type, u32);
}
-TEST_F(IntrinsicTableTest, MismatchIU32) {
- auto* f32 = create<core::type::F32>();
- auto result =
- table.Lookup(core::BuiltinFn::kCountOneBits, Vector{f32}, EvaluationStage::kConstant);
+TEST_F(CoreIntrinsicTableTest, MismatchIU32) {
+ auto* f32 = create<type::F32>();
+ auto result = table.Lookup(BuiltinFn::kCountOneBits, Vector{f32}, EvaluationStage::kConstant);
ASSERT_NE(result, Success);
ASSERT_THAT(result.Failure(), HasSubstr("no matching call"));
}
-TEST_F(IntrinsicTableTest, MatchFIU32AsI32) {
- auto* i32 = create<core::type::I32>();
+TEST_F(CoreIntrinsicTableTest, MatchFIU32AsI32) {
+ auto* i32 = create<type::I32>();
auto result =
- table.Lookup(core::BuiltinFn::kClamp, Vector{i32, i32, i32}, EvaluationStage::kConstant);
+ table.Lookup(BuiltinFn::kClamp, Vector{i32, i32, i32}, EvaluationStage::kConstant);
ASSERT_EQ(result, Success);
EXPECT_EQ(result->return_type, i32);
ASSERT_EQ(result->parameters.Length(), 3u);
@@ -169,10 +153,10 @@
EXPECT_EQ(result->parameters[2].type, i32);
}
-TEST_F(IntrinsicTableTest, MatchFIU32AsU32) {
- auto* u32 = create<core::type::U32>();
+TEST_F(CoreIntrinsicTableTest, MatchFIU32AsU32) {
+ auto* u32 = create<type::U32>();
auto result =
- table.Lookup(core::BuiltinFn::kClamp, Vector{u32, u32, u32}, EvaluationStage::kConstant);
+ table.Lookup(BuiltinFn::kClamp, Vector{u32, u32, u32}, EvaluationStage::kConstant);
ASSERT_EQ(result, Success);
EXPECT_EQ(result->return_type, u32);
ASSERT_EQ(result->parameters.Length(), 3u);
@@ -181,10 +165,10 @@
EXPECT_EQ(result->parameters[2].type, u32);
}
-TEST_F(IntrinsicTableTest, MatchFIU32AsF32) {
- auto* f32 = create<core::type::F32>();
+TEST_F(CoreIntrinsicTableTest, MatchFIU32AsF32) {
+ auto* f32 = create<type::F32>();
auto result =
- table.Lookup(core::BuiltinFn::kClamp, Vector{f32, f32, f32}, EvaluationStage::kConstant);
+ table.Lookup(BuiltinFn::kClamp, Vector{f32, f32, f32}, EvaluationStage::kConstant);
ASSERT_EQ(result, Success);
EXPECT_EQ(result->return_type, f32);
ASSERT_EQ(result->parameters.Length(), 3u);
@@ -193,19 +177,19 @@
EXPECT_EQ(result->parameters[2].type, f32);
}
-TEST_F(IntrinsicTableTest, MismatchFIU32) {
- auto* bool_ = create<core::type::Bool>();
- auto result = table.Lookup(core::BuiltinFn::kClamp, Vector{bool_, bool_, bool_},
- EvaluationStage::kConstant);
+TEST_F(CoreIntrinsicTableTest, MismatchFIU32) {
+ auto* bool_ = create<type::Bool>();
+ auto result =
+ table.Lookup(BuiltinFn::kClamp, Vector{bool_, bool_, bool_}, EvaluationStage::kConstant);
ASSERT_NE(result, Success);
ASSERT_THAT(result.Failure(), HasSubstr("no matching call"));
}
-TEST_F(IntrinsicTableTest, MatchBool) {
- auto* f32 = create<core::type::F32>();
- auto* bool_ = create<core::type::Bool>();
+TEST_F(CoreIntrinsicTableTest, MatchBool) {
+ auto* f32 = create<type::F32>();
+ auto* bool_ = create<type::Bool>();
auto result =
- table.Lookup(core::BuiltinFn::kSelect, Vector{f32, f32, bool_}, EvaluationStage::kConstant);
+ table.Lookup(BuiltinFn::kSelect, Vector{f32, f32, bool_}, EvaluationStage::kConstant);
ASSERT_EQ(result, Success);
EXPECT_EQ(result->return_type, f32);
ASSERT_EQ(result->parameters.Length(), 3u);
@@ -214,216 +198,211 @@
EXPECT_EQ(result->parameters[2].type, bool_);
}
-TEST_F(IntrinsicTableTest, MismatchBool) {
- auto* f32 = create<core::type::F32>();
+TEST_F(CoreIntrinsicTableTest, MismatchBool) {
+ auto* f32 = create<type::F32>();
auto result =
- table.Lookup(core::BuiltinFn::kSelect, Vector{f32, f32, f32}, EvaluationStage::kConstant);
+ table.Lookup(BuiltinFn::kSelect, Vector{f32, f32, f32}, EvaluationStage::kConstant);
ASSERT_NE(result, Success);
ASSERT_THAT(result.Failure(), HasSubstr("no matching call"));
}
-TEST_F(IntrinsicTableTest, MatchPointer) {
- auto* i32 = create<core::type::I32>();
- auto* atomicI32 = create<core::type::Atomic>(i32);
- auto* ptr = create<core::type::Pointer>(core::AddressSpace::kWorkgroup, atomicI32,
- core::Access::kReadWrite);
- auto result =
- table.Lookup(core::BuiltinFn::kAtomicLoad, Vector{ptr}, EvaluationStage::kConstant);
+TEST_F(CoreIntrinsicTableTest, MatchPointer) {
+ auto* i32 = create<type::I32>();
+ auto* atomic_i32 = create<type::Atomic>(i32);
+ auto* ptr = create<type::Pointer>(AddressSpace::kWorkgroup, atomic_i32, Access::kReadWrite);
+ auto result = table.Lookup(BuiltinFn::kAtomicLoad, Vector{ptr}, EvaluationStage::kConstant);
ASSERT_EQ(result, Success);
EXPECT_EQ(result->return_type, i32);
ASSERT_EQ(result->parameters.Length(), 1u);
EXPECT_EQ(result->parameters[0].type, ptr);
}
-TEST_F(IntrinsicTableTest, MismatchPointer) {
- auto* i32 = create<core::type::I32>();
- auto* atomicI32 = create<core::type::Atomic>(i32);
+TEST_F(CoreIntrinsicTableTest, MismatchPointer) {
+ auto* i32 = create<type::I32>();
+ auto* atomic_i32 = create<type::Atomic>(i32);
auto result =
- table.Lookup(core::BuiltinFn::kAtomicLoad, Vector{atomicI32}, EvaluationStage::kConstant);
+ table.Lookup(BuiltinFn::kAtomicLoad, Vector{atomic_i32}, EvaluationStage::kConstant);
ASSERT_NE(result, Success);
ASSERT_THAT(result.Failure(), HasSubstr("no matching call"));
}
-TEST_F(IntrinsicTableTest, MatchArray) {
- auto* arr = create<core::type::Array>(create<core::type::U32>(),
- create<core::type::RuntimeArrayCount>(), 4u, 4u, 4u, 4u);
- auto* arr_ptr =
- create<core::type::Pointer>(core::AddressSpace::kStorage, arr, core::Access::kReadWrite);
+TEST_F(CoreIntrinsicTableTest, MatchArray) {
+ auto* arr =
+ create<type::Array>(create<type::U32>(), create<type::RuntimeArrayCount>(), 4u, 4u, 4u, 4u);
+ auto* arr_ptr = create<type::Pointer>(AddressSpace::kStorage, arr, Access::kReadWrite);
auto result =
- table.Lookup(core::BuiltinFn::kArrayLength, Vector{arr_ptr}, EvaluationStage::kConstant);
+ table.Lookup(BuiltinFn::kArrayLength, Vector{arr_ptr}, EvaluationStage::kConstant);
ASSERT_EQ(result, Success);
- EXPECT_TRUE(result->return_type->Is<core::type::U32>());
+ EXPECT_TRUE(result->return_type->Is<type::U32>());
ASSERT_EQ(result->parameters.Length(), 1u);
auto* param_type = result->parameters[0].type;
- ASSERT_TRUE(param_type->Is<core::type::Pointer>());
- EXPECT_TRUE(param_type->As<core::type::Pointer>()->StoreType()->Is<core::type::Array>());
+ ASSERT_TRUE(param_type->Is<type::Pointer>());
+ EXPECT_TRUE(param_type->As<type::Pointer>()->StoreType()->Is<type::Array>());
}
-TEST_F(IntrinsicTableTest, MismatchArray) {
- auto* f32 = create<core::type::F32>();
- auto result =
- table.Lookup(core::BuiltinFn::kArrayLength, Vector{f32}, EvaluationStage::kConstant);
+TEST_F(CoreIntrinsicTableTest, MismatchArray) {
+ auto* f32 = create<type::F32>();
+ auto result = table.Lookup(BuiltinFn::kArrayLength, Vector{f32}, EvaluationStage::kConstant);
ASSERT_NE(result, Success);
ASSERT_THAT(result.Failure(), HasSubstr("no matching call"));
}
-TEST_F(IntrinsicTableTest, MatchSampler) {
- auto* f32 = create<core::type::F32>();
- auto* vec2_f32 = create<core::type::Vector>(f32, 2u);
- auto* vec4_f32 = create<core::type::Vector>(f32, 4u);
- auto* tex = create<core::type::SampledTexture>(core::type::TextureDimension::k2d, f32);
- auto* sampler = create<core::type::Sampler>(core::type::SamplerKind::kSampler);
- auto result = table.Lookup(core::BuiltinFn::kTextureSample, Vector{tex, sampler, vec2_f32},
+TEST_F(CoreIntrinsicTableTest, MatchSampler) {
+ auto* f32 = create<type::F32>();
+ auto* vec2f = create<type::Vector>(f32, 2u);
+ auto* vec4f = create<type::Vector>(f32, 4u);
+ auto* tex = create<type::SampledTexture>(type::TextureDimension::k2d, f32);
+ auto* sampler = create<type::Sampler>(type::SamplerKind::kSampler);
+ auto result = table.Lookup(BuiltinFn::kTextureSample, Vector{tex, sampler, vec2f},
EvaluationStage::kConstant);
ASSERT_EQ(result, Success);
- EXPECT_EQ(result->return_type, vec4_f32);
+ EXPECT_EQ(result->return_type, vec4f);
ASSERT_EQ(result->parameters.Length(), 3u);
EXPECT_EQ(result->parameters[0].type, tex);
EXPECT_EQ(result->parameters[0].usage, ParameterUsage::kTexture);
EXPECT_EQ(result->parameters[1].type, sampler);
EXPECT_EQ(result->parameters[1].usage, ParameterUsage::kSampler);
- EXPECT_EQ(result->parameters[2].type, vec2_f32);
+ EXPECT_EQ(result->parameters[2].type, vec2f);
EXPECT_EQ(result->parameters[2].usage, ParameterUsage::kCoords);
}
-TEST_F(IntrinsicTableTest, MismatchSampler) {
- auto* f32 = create<core::type::F32>();
- auto* vec2_f32 = create<core::type::Vector>(f32, 2u);
- auto* tex = create<core::type::SampledTexture>(core::type::TextureDimension::k2d, f32);
- auto result = table.Lookup(core::BuiltinFn::kTextureSample, Vector{tex, f32, vec2_f32},
+TEST_F(CoreIntrinsicTableTest, MismatchSampler) {
+ auto* f32 = create<type::F32>();
+ auto* vec2f = create<type::Vector>(f32, 2u);
+ auto* tex = create<type::SampledTexture>(type::TextureDimension::k2d, f32);
+ auto result = table.Lookup(BuiltinFn::kTextureSample, Vector{tex, f32, vec2f},
EvaluationStage::kConstant);
ASSERT_NE(result, Success);
ASSERT_THAT(result.Failure(), HasSubstr("no matching call"));
}
-TEST_F(IntrinsicTableTest, MatchSampledTexture) {
- auto* i32 = create<core::type::I32>();
- auto* f32 = create<core::type::F32>();
- auto* vec2_i32 = create<core::type::Vector>(i32, 2u);
- auto* vec4_f32 = create<core::type::Vector>(f32, 4u);
- auto* tex = create<core::type::SampledTexture>(core::type::TextureDimension::k2d, f32);
- auto result = table.Lookup(core::BuiltinFn::kTextureLoad, Vector{tex, vec2_i32, i32},
- EvaluationStage::kConstant);
+TEST_F(CoreIntrinsicTableTest, MatchSampledTexture) {
+ auto* i32 = create<type::I32>();
+ auto* f32 = create<type::F32>();
+ auto* vec2i = create<type::Vector>(i32, 2u);
+ auto* vec4f = create<type::Vector>(f32, 4u);
+ auto* tex = create<type::SampledTexture>(type::TextureDimension::k2d, f32);
+ auto result =
+ table.Lookup(BuiltinFn::kTextureLoad, Vector{tex, vec2i, i32}, EvaluationStage::kConstant);
ASSERT_EQ(result, Success);
- EXPECT_EQ(result->return_type, vec4_f32);
+ EXPECT_EQ(result->return_type, vec4f);
ASSERT_EQ(result->parameters.Length(), 3u);
EXPECT_EQ(result->parameters[0].type, tex);
EXPECT_EQ(result->parameters[0].usage, ParameterUsage::kTexture);
- EXPECT_EQ(result->parameters[1].type, vec2_i32);
+ EXPECT_EQ(result->parameters[1].type, vec2i);
EXPECT_EQ(result->parameters[1].usage, ParameterUsage::kCoords);
EXPECT_EQ(result->parameters[2].type, i32);
EXPECT_EQ(result->parameters[2].usage, ParameterUsage::kLevel);
}
-TEST_F(IntrinsicTableTest, MatchMultisampledTexture) {
- auto* i32 = create<core::type::I32>();
- auto* f32 = create<core::type::F32>();
- auto* vec2_i32 = create<core::type::Vector>(i32, 2u);
- auto* vec4_f32 = create<core::type::Vector>(f32, 4u);
- auto* tex = create<core::type::MultisampledTexture>(core::type::TextureDimension::k2d, f32);
- auto result = table.Lookup(core::BuiltinFn::kTextureLoad, Vector{tex, vec2_i32, i32},
- EvaluationStage::kConstant);
+TEST_F(CoreIntrinsicTableTest, MatchMultisampledTexture) {
+ auto* i32 = create<type::I32>();
+ auto* f32 = create<type::F32>();
+ auto* vec2i = create<type::Vector>(i32, 2u);
+ auto* vec4f = create<type::Vector>(f32, 4u);
+ auto* tex = create<type::MultisampledTexture>(type::TextureDimension::k2d, f32);
+ auto result =
+ table.Lookup(BuiltinFn::kTextureLoad, Vector{tex, vec2i, i32}, EvaluationStage::kConstant);
ASSERT_EQ(result, Success);
- EXPECT_EQ(result->return_type, vec4_f32);
+ EXPECT_EQ(result->return_type, vec4f);
ASSERT_EQ(result->parameters.Length(), 3u);
EXPECT_EQ(result->parameters[0].type, tex);
EXPECT_EQ(result->parameters[0].usage, ParameterUsage::kTexture);
- EXPECT_EQ(result->parameters[1].type, vec2_i32);
+ EXPECT_EQ(result->parameters[1].type, vec2i);
EXPECT_EQ(result->parameters[1].usage, ParameterUsage::kCoords);
EXPECT_EQ(result->parameters[2].type, i32);
EXPECT_EQ(result->parameters[2].usage, ParameterUsage::kSampleIndex);
}
-TEST_F(IntrinsicTableTest, MatchDepthTexture) {
- auto* f32 = create<core::type::F32>();
- auto* i32 = create<core::type::I32>();
- auto* vec2_i32 = create<core::type::Vector>(i32, 2u);
- auto* tex = create<core::type::DepthTexture>(core::type::TextureDimension::k2d);
- auto result = table.Lookup(core::BuiltinFn::kTextureLoad, Vector{tex, vec2_i32, i32},
- EvaluationStage::kConstant);
+TEST_F(CoreIntrinsicTableTest, MatchDepthTexture) {
+ auto* f32 = create<type::F32>();
+ auto* i32 = create<type::I32>();
+ auto* vec2i = create<type::Vector>(i32, 2u);
+ auto* tex = create<type::DepthTexture>(type::TextureDimension::k2d);
+ auto result =
+ table.Lookup(BuiltinFn::kTextureLoad, Vector{tex, vec2i, i32}, EvaluationStage::kConstant);
ASSERT_EQ(result, Success);
EXPECT_EQ(result->return_type, f32);
ASSERT_EQ(result->parameters.Length(), 3u);
EXPECT_EQ(result->parameters[0].type, tex);
EXPECT_EQ(result->parameters[0].usage, ParameterUsage::kTexture);
- EXPECT_EQ(result->parameters[1].type, vec2_i32);
+ EXPECT_EQ(result->parameters[1].type, vec2i);
EXPECT_EQ(result->parameters[1].usage, ParameterUsage::kCoords);
EXPECT_EQ(result->parameters[2].type, i32);
EXPECT_EQ(result->parameters[2].usage, ParameterUsage::kLevel);
}
-TEST_F(IntrinsicTableTest, MatchDepthMultisampledTexture) {
- auto* f32 = create<core::type::F32>();
- auto* i32 = create<core::type::I32>();
- auto* vec2_i32 = create<core::type::Vector>(i32, 2u);
- auto* tex = create<core::type::DepthMultisampledTexture>(core::type::TextureDimension::k2d);
- auto result = table.Lookup(core::BuiltinFn::kTextureLoad, Vector{tex, vec2_i32, i32},
- EvaluationStage::kConstant);
+TEST_F(CoreIntrinsicTableTest, MatchDepthMultisampledTexture) {
+ auto* f32 = create<type::F32>();
+ auto* i32 = create<type::I32>();
+ auto* vec2i = create<type::Vector>(i32, 2u);
+ auto* tex = create<type::DepthMultisampledTexture>(type::TextureDimension::k2d);
+ auto result =
+ table.Lookup(BuiltinFn::kTextureLoad, Vector{tex, vec2i, i32}, EvaluationStage::kConstant);
ASSERT_EQ(result, Success);
EXPECT_EQ(result->return_type, f32);
ASSERT_EQ(result->parameters.Length(), 3u);
EXPECT_EQ(result->parameters[0].type, tex);
EXPECT_EQ(result->parameters[0].usage, ParameterUsage::kTexture);
- EXPECT_EQ(result->parameters[1].type, vec2_i32);
+ EXPECT_EQ(result->parameters[1].type, vec2i);
EXPECT_EQ(result->parameters[1].usage, ParameterUsage::kCoords);
EXPECT_EQ(result->parameters[2].type, i32);
EXPECT_EQ(result->parameters[2].usage, ParameterUsage::kSampleIndex);
}
-TEST_F(IntrinsicTableTest, MatchExternalTexture) {
- auto* f32 = create<core::type::F32>();
- auto* i32 = create<core::type::I32>();
- auto* vec2_i32 = create<core::type::Vector>(i32, 2u);
- auto* vec4_f32 = create<core::type::Vector>(f32, 4u);
- auto* tex = create<core::type::ExternalTexture>();
- auto result = table.Lookup(core::BuiltinFn::kTextureLoad, Vector{tex, vec2_i32},
- EvaluationStage::kConstant);
+TEST_F(CoreIntrinsicTableTest, MatchExternalTexture) {
+ auto* f32 = create<type::F32>();
+ auto* i32 = create<type::I32>();
+ auto* vec2i = create<type::Vector>(i32, 2u);
+ auto* vec4f = create<type::Vector>(f32, 4u);
+ auto* tex = create<type::ExternalTexture>();
+ auto result =
+ table.Lookup(BuiltinFn::kTextureLoad, Vector{tex, vec2i}, EvaluationStage::kConstant);
ASSERT_EQ(result, Success);
- EXPECT_EQ(result->return_type, vec4_f32);
+ EXPECT_EQ(result->return_type, vec4f);
ASSERT_EQ(result->parameters.Length(), 2u);
EXPECT_EQ(result->parameters[0].type, tex);
EXPECT_EQ(result->parameters[0].usage, ParameterUsage::kTexture);
- EXPECT_EQ(result->parameters[1].type, vec2_i32);
+ EXPECT_EQ(result->parameters[1].type, vec2i);
EXPECT_EQ(result->parameters[1].usage, ParameterUsage::kCoords);
}
-TEST_F(IntrinsicTableTest, MatchWOStorageTexture) {
- auto* f32 = create<core::type::F32>();
- auto* i32 = create<core::type::I32>();
- auto* vec2_i32 = create<core::type::Vector>(i32, 2u);
- auto* vec4_f32 = create<core::type::Vector>(f32, 4u);
- auto* subtype = core::type::StorageTexture::SubtypeFor(core::TexelFormat::kR32Float, Types());
- auto* tex = create<core::type::StorageTexture>(core::type::TextureDimension::k2d,
- core::TexelFormat::kR32Float,
- core::Access::kWrite, subtype);
+TEST_F(CoreIntrinsicTableTest, MatchWOStorageTexture) {
+ auto* f32 = create<type::F32>();
+ auto* i32 = create<type::I32>();
+ auto* vec2i = create<type::Vector>(i32, 2u);
+ auto* vec4f = create<type::Vector>(f32, 4u);
+ auto* subtype = type::StorageTexture::SubtypeFor(TexelFormat::kR32Float, Types());
+ auto* tex = create<type::StorageTexture>(type::TextureDimension::k2d, TexelFormat::kR32Float,
+ Access::kWrite, subtype);
- auto result = table.Lookup(core::BuiltinFn::kTextureStore, Vector{tex, vec2_i32, vec4_f32},
+ auto result = table.Lookup(BuiltinFn::kTextureStore, Vector{tex, vec2i, vec4f},
EvaluationStage::kConstant);
ASSERT_EQ(result, Success);
EXPECT_TRUE(result->return_type->Is<type::Void>());
ASSERT_EQ(result->parameters.Length(), 3u);
EXPECT_EQ(result->parameters[0].type, tex);
EXPECT_EQ(result->parameters[0].usage, ParameterUsage::kTexture);
- EXPECT_EQ(result->parameters[1].type, vec2_i32);
+ EXPECT_EQ(result->parameters[1].type, vec2i);
EXPECT_EQ(result->parameters[1].usage, ParameterUsage::kCoords);
- EXPECT_EQ(result->parameters[2].type, vec4_f32);
+ EXPECT_EQ(result->parameters[2].type, vec4f);
EXPECT_EQ(result->parameters[2].usage, ParameterUsage::kValue);
}
-TEST_F(IntrinsicTableTest, MismatchTexture) {
- auto* f32 = create<core::type::F32>();
- auto* i32 = create<core::type::I32>();
- auto* vec2_i32 = create<core::type::Vector>(i32, 2u);
- auto result = table.Lookup(core::BuiltinFn::kTextureLoad, Vector{f32, vec2_i32},
- EvaluationStage::kConstant);
+TEST_F(CoreIntrinsicTableTest, MismatchTexture) {
+ auto* f32 = create<type::F32>();
+ auto* i32 = create<type::I32>();
+ auto* vec2i = create<type::Vector>(i32, 2u);
+ auto result =
+ table.Lookup(BuiltinFn::kTextureLoad, Vector{f32, vec2i}, EvaluationStage::kConstant);
ASSERT_NE(result, Success);
ASSERT_THAT(result.Failure(), HasSubstr("no matching call"));
}
-TEST_F(IntrinsicTableTest, MatchTemplateType) {
- auto* f32 = create<core::type::F32>();
+TEST_F(CoreIntrinsicTableTest, MatchTemplateType) {
+ auto* f32 = create<type::F32>();
auto result =
- table.Lookup(core::BuiltinFn::kClamp, Vector{f32, f32, f32}, EvaluationStage::kConstant);
+ table.Lookup(BuiltinFn::kClamp, Vector{f32, f32, f32}, EvaluationStage::kConstant);
ASSERT_EQ(result, Success);
EXPECT_EQ(result->return_type, f32);
EXPECT_EQ(result->parameters[0].type, f32);
@@ -431,116 +410,114 @@
EXPECT_EQ(result->parameters[2].type, f32);
}
-TEST_F(IntrinsicTableTest, MismatchTemplateType) {
- auto* f32 = create<core::type::F32>();
- auto* u32 = create<core::type::U32>();
+TEST_F(CoreIntrinsicTableTest, MismatchTemplateType) {
+ auto* f32 = create<type::F32>();
+ auto* u32 = create<type::U32>();
auto result =
- table.Lookup(core::BuiltinFn::kClamp, Vector{f32, u32, f32}, EvaluationStage::kConstant);
+ table.Lookup(BuiltinFn::kClamp, Vector{f32, u32, f32}, EvaluationStage::kConstant);
ASSERT_NE(result, Success);
ASSERT_THAT(result.Failure(), HasSubstr("no matching call"));
}
-TEST_F(IntrinsicTableTest, MatchOpenSizeVector) {
- auto* f32 = create<core::type::F32>();
- auto* vec2_f32 = create<core::type::Vector>(f32, 2u);
- auto result = table.Lookup(core::BuiltinFn::kClamp, Vector{vec2_f32, vec2_f32, vec2_f32},
- EvaluationStage::kConstant);
+TEST_F(CoreIntrinsicTableTest, MatchOpenSizeVector) {
+ auto* f32 = create<type::F32>();
+ auto* vec2f = create<type::Vector>(f32, 2u);
+ auto result =
+ table.Lookup(BuiltinFn::kClamp, Vector{vec2f, vec2f, vec2f}, EvaluationStage::kConstant);
ASSERT_EQ(result, Success);
- EXPECT_EQ(result->return_type, vec2_f32);
+ EXPECT_EQ(result->return_type, vec2f);
ASSERT_EQ(result->parameters.Length(), 3u);
- EXPECT_EQ(result->parameters[0].type, vec2_f32);
- EXPECT_EQ(result->parameters[1].type, vec2_f32);
- EXPECT_EQ(result->parameters[2].type, vec2_f32);
+ EXPECT_EQ(result->parameters[0].type, vec2f);
+ EXPECT_EQ(result->parameters[1].type, vec2f);
+ EXPECT_EQ(result->parameters[2].type, vec2f);
}
-TEST_F(IntrinsicTableTest, MismatchOpenSizeVector) {
- auto* f32 = create<core::type::F32>();
- auto* u32 = create<core::type::U32>();
- auto* vec2_f32 = create<core::type::Vector>(f32, 2u);
- auto result = table.Lookup(core::BuiltinFn::kClamp, Vector{vec2_f32, u32, vec2_f32},
- EvaluationStage::kConstant);
+TEST_F(CoreIntrinsicTableTest, MismatchOpenSizeVector) {
+ auto* f32 = create<type::F32>();
+ auto* u32 = create<type::U32>();
+ auto* vec2f = create<type::Vector>(f32, 2u);
+ auto result =
+ table.Lookup(BuiltinFn::kClamp, Vector{vec2f, u32, vec2f}, EvaluationStage::kConstant);
ASSERT_NE(result, Success);
ASSERT_THAT(result.Failure(), HasSubstr("no matching call"));
}
-TEST_F(IntrinsicTableTest, MatchOpenSizeMatrix) {
- auto* f32 = create<core::type::F32>();
- auto* vec3_f32 = create<core::type::Vector>(f32, 3u);
- auto* mat3_f32 = create<core::type::Matrix>(vec3_f32, 3u);
+TEST_F(CoreIntrinsicTableTest, MatchOpenSizeMatrix) {
+ auto* f32 = create<type::F32>();
+ auto* vec3f = create<type::Vector>(f32, 3u);
+ auto* mat3x3f = create<type::Matrix>(vec3f, 3u);
auto result =
- table.Lookup(core::BuiltinFn::kDeterminant, Vector{mat3_f32}, EvaluationStage::kConstant);
+ table.Lookup(BuiltinFn::kDeterminant, Vector{mat3x3f}, EvaluationStage::kConstant);
ASSERT_EQ(result, Success);
EXPECT_EQ(result->return_type, f32);
ASSERT_EQ(result->parameters.Length(), 1u);
- EXPECT_EQ(result->parameters[0].type, mat3_f32);
+ EXPECT_EQ(result->parameters[0].type, mat3x3f);
}
-TEST_F(IntrinsicTableTest, MismatchOpenSizeMatrix) {
- auto* f32 = create<core::type::F32>();
- auto* vec2_f32 = create<core::type::Vector>(f32, 2u);
- auto* mat3x2_f32 = create<core::type::Matrix>(vec2_f32, 3u);
+TEST_F(CoreIntrinsicTableTest, MismatchOpenSizeMatrix) {
+ auto* f32 = create<type::F32>();
+ auto* vec2f = create<type::Vector>(f32, 2u);
+ auto* mat3x2f = create<type::Matrix>(vec2f, 3u);
auto result =
- table.Lookup(core::BuiltinFn::kDeterminant, Vector{mat3x2_f32}, EvaluationStage::kConstant);
+ table.Lookup(BuiltinFn::kDeterminant, Vector{mat3x2f}, EvaluationStage::kConstant);
ASSERT_NE(result, Success);
ASSERT_THAT(result.Failure(), HasSubstr("no matching call"));
}
-TEST_F(IntrinsicTableTest, MatchDifferentArgsElementType_Builtin_ConstantEval) {
- auto* af = create<core::type::AbstractFloat>();
- auto* bool_ = create<core::type::Bool>();
+TEST_F(CoreIntrinsicTableTest, MatchDifferentArgsElementType_Builtin_ConstantEval) {
+ auto* f32 = create<type::F32>();
+ auto* bool_ = create<type::Bool>();
auto result =
- table.Lookup(core::BuiltinFn::kSelect, Vector{af, af, bool_}, EvaluationStage::kConstant);
+ table.Lookup(BuiltinFn::kSelect, Vector{f32, f32, bool_}, EvaluationStage::kConstant);
ASSERT_EQ(result, Success);
EXPECT_NE(result->const_eval_fn, nullptr);
- EXPECT_EQ(result->return_type, af);
+ EXPECT_EQ(result->return_type, f32);
ASSERT_EQ(result->parameters.Length(), 3u);
- EXPECT_EQ(result->parameters[0].type, af);
- EXPECT_EQ(result->parameters[1].type, af);
+ EXPECT_EQ(result->parameters[0].type, f32);
+ EXPECT_EQ(result->parameters[1].type, f32);
EXPECT_EQ(result->parameters[2].type, bool_);
}
-TEST_F(IntrinsicTableTest, MatchDifferentArgsElementType_Builtin_RuntimeEval) {
- auto* af = create<core::type::AbstractFloat>();
- auto result = table.Lookup(core::BuiltinFn::kSelect, Vector{af, af, create<core::type::Bool>()},
+TEST_F(CoreIntrinsicTableTest, MatchDifferentArgsElementType_Builtin_RuntimeEval) {
+ auto* f32 = create<type::F32>();
+ auto result = table.Lookup(BuiltinFn::kSelect, Vector{f32, f32, create<type::Bool>()},
EvaluationStage::kRuntime);
ASSERT_EQ(result, Success);
EXPECT_NE(result->const_eval_fn, nullptr);
- EXPECT_TRUE(result->return_type->Is<core::type::F32>());
+ EXPECT_TRUE(result->return_type->Is<type::F32>());
ASSERT_EQ(result->parameters.Length(), 3u);
- EXPECT_TRUE(result->parameters[0].type->Is<core::type::F32>());
- EXPECT_TRUE(result->parameters[1].type->Is<core::type::F32>());
- EXPECT_TRUE(result->parameters[2].type->Is<core::type::Bool>());
+ EXPECT_TRUE(result->parameters[0].type->Is<type::F32>());
+ EXPECT_TRUE(result->parameters[1].type->Is<type::F32>());
+ EXPECT_TRUE(result->parameters[2].type->Is<type::Bool>());
}
-TEST_F(IntrinsicTableTest, MatchDifferentArgsElementType_Binary_ConstantEval) {
- auto* ai = create<core::type::AbstractInt>();
- auto* u32 = create<core::type::U32>();
- auto result =
- table.Lookup(core::BinaryOp::kShiftLeft, ai, u32, EvaluationStage::kConstant, false);
+TEST_F(CoreIntrinsicTableTest, MatchDifferentArgsElementType_Binary_ConstantEval) {
+ auto* i32 = create<type::I32>();
+ auto* u32 = create<type::U32>();
+ auto result = table.Lookup(BinaryOp::kShiftLeft, i32, u32, EvaluationStage::kConstant, false);
ASSERT_EQ(result, Success);
ASSERT_NE(result->const_eval_fn, nullptr) << Diagnostics();
- EXPECT_EQ(result->return_type, ai);
- EXPECT_EQ(result->parameters[0].type, ai);
+ EXPECT_EQ(result->return_type, i32);
+ EXPECT_EQ(result->parameters[0].type, i32);
EXPECT_EQ(result->parameters[1].type, u32);
}
-TEST_F(IntrinsicTableTest, MatchDifferentArgsElementType_Binary_RuntimeEval) {
- auto* ai = create<core::type::AbstractInt>();
- auto* u32 = create<core::type::U32>();
- auto result =
- table.Lookup(core::BinaryOp::kShiftLeft, ai, u32, EvaluationStage::kRuntime, false);
+TEST_F(CoreIntrinsicTableTest, MatchDifferentArgsElementType_Binary_RuntimeEval) {
+ auto* i32 = create<type::I32>();
+ auto* u32 = create<type::U32>();
+ auto result = table.Lookup(BinaryOp::kShiftLeft, i32, u32, EvaluationStage::kRuntime, false);
ASSERT_EQ(result, Success);
ASSERT_NE(result->const_eval_fn, nullptr) << Diagnostics();
- EXPECT_TRUE(result->return_type->Is<core::type::I32>());
- EXPECT_TRUE(result->parameters[0].type->Is<core::type::I32>());
- EXPECT_TRUE(result->parameters[1].type->Is<core::type::U32>());
+ EXPECT_TRUE(result->return_type->Is<type::I32>());
+ EXPECT_TRUE(result->parameters[0].type->Is<type::I32>());
+ EXPECT_TRUE(result->parameters[1].type->Is<type::U32>());
}
-TEST_F(IntrinsicTableTest, OverloadOrderByNumberOfParameters) {
+TEST_F(CoreIntrinsicTableTest, OverloadOrderByNumberOfParameters) {
// None of the arguments match, so expect the overloads with 2 parameters to
// come first
- auto* bool_ = create<core::type::Bool>();
- auto result = table.Lookup(core::BuiltinFn::kTextureDimensions, Vector{bool_, bool_},
+ auto* bool_ = create<type::Bool>();
+ auto result = table.Lookup(BuiltinFn::kTextureDimensions, Vector{bool_, bool_},
EvaluationStage::kConstant);
ASSERT_NE(result, Success);
ASSERT_EQ(result.Failure(),
@@ -577,11 +554,11 @@
)");
}
-TEST_F(IntrinsicTableTest, OverloadOrderByMatchingParameter) {
- auto* tex = create<core::type::DepthTexture>(core::type::TextureDimension::k2d);
- auto* bool_ = create<core::type::Bool>();
- auto result = table.Lookup(core::BuiltinFn::kTextureDimensions, Vector{tex, bool_},
- EvaluationStage::kConstant);
+TEST_F(CoreIntrinsicTableTest, OverloadOrderByMatchingParameter) {
+ auto* tex = create<type::DepthTexture>(type::TextureDimension::k2d);
+ auto* bool_ = create<type::Bool>();
+ auto result =
+ table.Lookup(BuiltinFn::kTextureDimensions, Vector{tex, bool_}, EvaluationStage::kConstant);
ASSERT_NE(result, Success);
ASSERT_EQ(result.Failure(),
R"(no matching call to textureDimensions(texture_depth_2d, bool)
@@ -617,112 +594,111 @@
)");
}
-TEST_F(IntrinsicTableTest, MatchUnaryOp) {
- auto* i32 = create<core::type::I32>();
- auto* vec3_i32 = create<core::type::Vector>(i32, 3u);
- auto result = table.Lookup(core::UnaryOp::kNegation, vec3_i32, EvaluationStage::kConstant);
+TEST_F(CoreIntrinsicTableTest, MatchUnaryOp) {
+ auto* i32 = create<type::I32>();
+ auto* vec3i = create<type::Vector>(i32, 3u);
+ auto result = table.Lookup(UnaryOp::kNegation, vec3i, EvaluationStage::kConstant);
ASSERT_EQ(result, Success);
- EXPECT_EQ(result->return_type, vec3_i32);
+ EXPECT_EQ(result->return_type, vec3i);
}
-TEST_F(IntrinsicTableTest, MismatchUnaryOp) {
- auto* bool_ = create<core::type::Bool>();
- auto result = table.Lookup(core::UnaryOp::kNegation, bool_, EvaluationStage::kConstant);
+TEST_F(CoreIntrinsicTableTest, MismatchUnaryOp) {
+ auto* bool_ = create<type::Bool>();
+ auto result = table.Lookup(UnaryOp::kNegation, bool_, EvaluationStage::kConstant);
ASSERT_NE(result, Success);
EXPECT_EQ(result.Failure(), R"(no matching overload for operator - (bool)
2 candidate operators:
- operator - (T) -> T where: T is abstract-float, abstract-int, f32, i32 or f16
- operator - (vecN<T>) -> vecN<T> where: T is abstract-float, abstract-int, f32, i32 or f16
+ operator - (T) -> T where: T is f32, i32 or f16
+ operator - (vecN<T>) -> vecN<T> where: T is f32, i32 or f16
)");
}
-TEST_F(IntrinsicTableTest, MatchUnaryOp_Constant) {
- auto* ai = create<core::type::AbstractInt>();
- auto result = table.Lookup(core::UnaryOp::kNegation, ai, EvaluationStage::kConstant);
+TEST_F(CoreIntrinsicTableTest, MatchUnaryOp_Constant) {
+ auto* i32 = create<type::I32>();
+ auto result = table.Lookup(UnaryOp::kNegation, i32, EvaluationStage::kConstant);
ASSERT_EQ(result, Success);
- EXPECT_EQ(result->return_type, ai);
+ EXPECT_EQ(result->return_type, i32);
}
-TEST_F(IntrinsicTableTest, MatchUnaryOp_Runtime) {
- auto* ai = create<core::type::AbstractInt>();
- auto result = table.Lookup(core::UnaryOp::kNegation, ai, EvaluationStage::kRuntime);
+TEST_F(CoreIntrinsicTableTest, MatchUnaryOp_Runtime) {
+ auto* i32 = create<type::I32>();
+ auto result = table.Lookup(UnaryOp::kNegation, i32, EvaluationStage::kRuntime);
ASSERT_EQ(result, Success);
- EXPECT_NE(result->return_type, ai);
- EXPECT_TRUE(result->return_type->Is<core::type::I32>());
+ EXPECT_EQ(result->return_type, i32);
}
-TEST_F(IntrinsicTableTest, MatchBinaryOp) {
- auto* i32 = create<core::type::I32>();
- auto* vec3_i32 = create<core::type::Vector>(i32, 3u);
- auto result = table.Lookup(core::BinaryOp::kMultiply, i32, vec3_i32, EvaluationStage::kConstant,
+TEST_F(CoreIntrinsicTableTest, MatchBinaryOp) {
+ auto* i32 = create<type::I32>();
+ auto* vec3i = create<type::Vector>(i32, 3u);
+ auto result = table.Lookup(BinaryOp::kMultiply, i32, vec3i, EvaluationStage::kConstant,
/* is_compound */ false);
ASSERT_EQ(result, Success);
- EXPECT_EQ(result->return_type, vec3_i32);
+ EXPECT_EQ(result->return_type, vec3i);
EXPECT_EQ(result->parameters[0].type, i32);
- EXPECT_EQ(result->parameters[1].type, vec3_i32);
+ EXPECT_EQ(result->parameters[1].type, vec3i);
}
-TEST_F(IntrinsicTableTest, MismatchBinaryOp) {
- auto* f32 = create<core::type::F32>();
- auto* bool_ = create<core::type::Bool>();
- auto result = table.Lookup(core::BinaryOp::kMultiply, f32, bool_, EvaluationStage::kConstant,
+TEST_F(CoreIntrinsicTableTest, MismatchBinaryOp) {
+ auto* f32 = create<type::F32>();
+ auto* bool_ = create<type::Bool>();
+ auto result = table.Lookup(BinaryOp::kMultiply, f32, bool_, EvaluationStage::kConstant,
/* is_compound */ false);
ASSERT_NE(result, Success);
EXPECT_EQ(result.Failure(), R"(no matching overload for operator * (f32, bool)
9 candidate operators:
- operator * (T, T) -> T where: T is abstract-float, abstract-int, f32, i32, u32 or f16
- operator * (vecN<T>, T) -> vecN<T> where: T is abstract-float, abstract-int, f32, i32, u32 or f16
- operator * (T, vecN<T>) -> vecN<T> where: T is abstract-float, abstract-int, f32, i32, u32 or f16
- operator * (T, matNxM<T>) -> matNxM<T> where: T is abstract-float, f32 or f16
- operator * (matNxM<T>, T) -> matNxM<T> where: T is abstract-float, f32 or f16
- operator * (vecN<T>, vecN<T>) -> vecN<T> where: T is abstract-float, abstract-int, f32, i32, u32 or f16
- operator * (matCxR<T>, vecC<T>) -> vecR<T> where: T is abstract-float, f32 or f16
- operator * (vecR<T>, matCxR<T>) -> vecC<T> where: T is abstract-float, f32 or f16
- operator * (matKxR<T>, matCxK<T>) -> matCxR<T> where: T is abstract-float, f32 or f16
+ operator * (T, T) -> T where: T is f32, i32, u32 or f16
+ operator * (vecN<T>, T) -> vecN<T> where: T is f32, i32, u32 or f16
+ operator * (T, vecN<T>) -> vecN<T> where: T is f32, i32, u32 or f16
+ operator * (T, matNxM<T>) -> matNxM<T> where: T is f32 or f16
+ operator * (matNxM<T>, T) -> matNxM<T> where: T is f32 or f16
+ operator * (vecN<T>, vecN<T>) -> vecN<T> where: T is f32, i32, u32 or f16
+ operator * (matCxR<T>, vecC<T>) -> vecR<T> where: T is f32 or f16
+ operator * (vecR<T>, matCxR<T>) -> vecC<T> where: T is f32 or f16
+ operator * (matKxR<T>, matCxK<T>) -> matCxR<T> where: T is f32 or f16
)");
}
-TEST_F(IntrinsicTableTest, MatchCompoundOp) {
- auto* i32 = create<core::type::I32>();
- auto* vec3_i32 = create<core::type::Vector>(i32, 3u);
- auto result = table.Lookup(core::BinaryOp::kMultiply, i32, vec3_i32, EvaluationStage::kConstant,
+TEST_F(CoreIntrinsicTableTest, MatchCompoundOp) {
+ auto* i32 = create<type::I32>();
+ auto* vec3i = create<type::Vector>(i32, 3u);
+ auto result = table.Lookup(BinaryOp::kMultiply, i32, vec3i, EvaluationStage::kConstant,
/* is_compound */ true);
ASSERT_EQ(result, Success);
- EXPECT_EQ(result->return_type, vec3_i32);
+ EXPECT_EQ(result->return_type, vec3i);
EXPECT_EQ(result->parameters[0].type, i32);
- EXPECT_EQ(result->parameters[1].type, vec3_i32);
+ EXPECT_EQ(result->parameters[1].type, vec3i);
}
-TEST_F(IntrinsicTableTest, MismatchCompoundOp) {
- auto* f32 = create<core::type::F32>();
- auto* bool_ = create<core::type::Bool>();
- auto result = table.Lookup(core::BinaryOp::kMultiply, f32, bool_, EvaluationStage::kConstant,
+TEST_F(CoreIntrinsicTableTest, MismatchCompoundOp) {
+ auto* f32 = create<type::F32>();
+ auto* bool_ = create<type::Bool>();
+ auto result = table.Lookup(BinaryOp::kMultiply, f32, bool_, EvaluationStage::kConstant,
/* is_compound */ true);
ASSERT_NE(result, Success);
EXPECT_EQ(result.Failure(), R"(no matching overload for operator *= (f32, bool)
9 candidate operators:
- operator *= (T, T) -> T where: T is abstract-float, abstract-int, f32, i32, u32 or f16
- operator *= (vecN<T>, T) -> vecN<T> where: T is abstract-float, abstract-int, f32, i32, u32 or f16
- operator *= (T, vecN<T>) -> vecN<T> where: T is abstract-float, abstract-int, f32, i32, u32 or f16
- operator *= (T, matNxM<T>) -> matNxM<T> where: T is abstract-float, f32 or f16
- operator *= (matNxM<T>, T) -> matNxM<T> where: T is abstract-float, f32 or f16
- operator *= (vecN<T>, vecN<T>) -> vecN<T> where: T is abstract-float, abstract-int, f32, i32, u32 or f16
- operator *= (matCxR<T>, vecC<T>) -> vecR<T> where: T is abstract-float, f32 or f16
- operator *= (vecR<T>, matCxR<T>) -> vecC<T> where: T is abstract-float, f32 or f16
- operator *= (matKxR<T>, matCxK<T>) -> matCxR<T> where: T is abstract-float, f32 or f16
+ operator *= (T, T) -> T where: T is f32, i32, u32 or f16
+ operator *= (vecN<T>, T) -> vecN<T> where: T is f32, i32, u32 or f16
+ operator *= (T, vecN<T>) -> vecN<T> where: T is f32, i32, u32 or f16
+ operator *= (T, matNxM<T>) -> matNxM<T> where: T is f32 or f16
+ operator *= (matNxM<T>, T) -> matNxM<T> where: T is f32 or f16
+ operator *= (vecN<T>, vecN<T>) -> vecN<T> where: T is f32, i32, u32 or f16
+ operator *= (matCxR<T>, vecC<T>) -> vecR<T> where: T is f32 or f16
+ operator *= (vecR<T>, matCxR<T>) -> vecC<T> where: T is f32 or f16
+ operator *= (matKxR<T>, matCxK<T>) -> matCxR<T> where: T is f32 or f16
)");
}
-TEST_F(IntrinsicTableTest, MatchTypeInitializerImplicit) {
- auto* i32 = create<core::type::I32>();
- auto* vec3_i32 = create<core::type::Vector>(i32, 3u);
+TEST_F(CoreIntrinsicTableTest, MatchTypeInitializerImplicit) {
+ auto* i32 = create<type::I32>();
+ auto* vec3i = create<type::Vector>(i32, 3u);
auto result =
table.Lookup(CtorConv::kVec3, nullptr, Vector{i32, i32, i32}, EvaluationStage::kConstant);
ASSERT_EQ(result, Success);
- EXPECT_EQ(result->return_type, vec3_i32);
+ EXPECT_EQ(result->return_type, vec3i);
EXPECT_TRUE(result->info->flags.Contains(OverloadFlag::kIsConstructor));
ASSERT_EQ(result->parameters.Length(), 3u);
EXPECT_EQ(result->parameters[0].type, i32);
@@ -731,13 +707,13 @@
EXPECT_NE(result->const_eval_fn, nullptr);
}
-TEST_F(IntrinsicTableTest, MatchTypeInitializerExplicit) {
- auto* i32 = create<core::type::I32>();
- auto* vec3_i32 = create<core::type::Vector>(i32, 3u);
+TEST_F(CoreIntrinsicTableTest, MatchTypeInitializerExplicit) {
+ auto* i32 = create<type::I32>();
+ auto* vec3i = create<type::Vector>(i32, 3u);
auto result =
table.Lookup(CtorConv::kVec3, i32, Vector{i32, i32, i32}, EvaluationStage::kConstant);
ASSERT_EQ(result, Success);
- EXPECT_EQ(result->return_type, vec3_i32);
+ EXPECT_EQ(result->return_type, vec3i);
EXPECT_TRUE(result->info->flags.Contains(OverloadFlag::kIsConstructor));
ASSERT_EQ(result->parameters.Length(), 3u);
EXPECT_EQ(result->parameters[0].type, i32);
@@ -746,114 +722,93 @@
EXPECT_NE(result->const_eval_fn, nullptr);
}
-TEST_F(IntrinsicTableTest, MismatchTypeInitializerImplicit) {
- auto* i32 = create<core::type::I32>();
- auto* f32 = create<core::type::F32>();
+TEST_F(CoreIntrinsicTableTest, MismatchTypeInitializerImplicit) {
+ auto* i32 = create<type::I32>();
+ auto* f32 = create<type::F32>();
auto result =
table.Lookup(CtorConv::kVec3, nullptr, Vector{i32, f32, i32}, EvaluationStage::kConstant);
ASSERT_NE(result, Success);
EXPECT_EQ(result.Failure(),
R"(no matching constructor for vec3(i32, f32, i32)
-7 candidate constructors:
- vec3(x: T, y: T, z: T) -> vec3<T> where: T is abstract-int, abstract-float, f32, f16, i32, u32 or bool
- vec3(xy: vec2<T>, z: T) -> vec3<T> where: T is abstract-int, abstract-float, f32, f16, i32, u32 or bool
- vec3(x: T, yz: vec2<T>) -> vec3<T> where: T is abstract-int, abstract-float, f32, f16, i32, u32 or bool
- vec3(T) -> vec3<T> where: T is abstract-int, abstract-float, f32, f16, i32, u32 or bool
- vec3(vec3<T>) -> vec3<T> where: T is abstract-int, abstract-float, f32, f16, i32, u32 or bool
- vec3() -> vec3<abstract-int>
+6 candidate constructors:
+ vec3(x: T, y: T, z: T) -> vec3<T> where: T is f32, f16, i32, u32 or bool
+ vec3(xy: vec2<T>, z: T) -> vec3<T> where: T is f32, f16, i32, u32 or bool
+ vec3(x: T, yz: vec2<T>) -> vec3<T> where: T is f32, f16, i32, u32 or bool
+ vec3(T) -> vec3<T> where: T is f32, f16, i32, u32 or bool
+ vec3(vec3<T>) -> vec3<T> where: T is f32, f16, i32, u32 or bool
vec3<T>() -> vec3<T> where: T is f32, f16, i32, u32 or bool
5 candidate conversions:
- vec3<T>(vec3<U>) -> vec3<f32> where: T is f32, U is abstract-int, abstract-float, i32, f16, u32 or bool
- vec3<T>(vec3<U>) -> vec3<f16> where: T is f16, U is abstract-int, abstract-float, f32, i32, u32 or bool
- vec3<T>(vec3<U>) -> vec3<i32> where: T is i32, U is abstract-int, abstract-float, f32, f16, u32 or bool
- vec3<T>(vec3<U>) -> vec3<u32> where: T is u32, U is abstract-int, abstract-float, f32, f16, i32 or bool
- vec3<T>(vec3<U>) -> vec3<bool> where: T is bool, U is abstract-int, abstract-float, f32, f16, i32 or u32
+ vec3<T>(vec3<U>) -> vec3<f32> where: T is f32, U is i32, f16, u32 or bool
+ vec3<T>(vec3<U>) -> vec3<f16> where: T is f16, U is f32, i32, u32 or bool
+ vec3<T>(vec3<U>) -> vec3<i32> where: T is i32, U is f32, f16, u32 or bool
+ vec3<T>(vec3<U>) -> vec3<u32> where: T is u32, U is f32, f16, i32 or bool
+ vec3<T>(vec3<U>) -> vec3<bool> where: T is bool, U is f32, f16, i32 or u32
)");
}
-TEST_F(IntrinsicTableTest, MismatchTypeInitializerExplicit) {
- auto* i32 = create<core::type::I32>();
- auto* f32 = create<core::type::F32>();
+TEST_F(CoreIntrinsicTableTest, MismatchTypeInitializerExplicit) {
+ auto* i32 = create<type::I32>();
+ auto* f32 = create<type::F32>();
auto result =
table.Lookup(CtorConv::kVec3, i32, Vector{i32, f32, i32}, EvaluationStage::kConstant);
ASSERT_NE(result, Success);
EXPECT_EQ(result.Failure(),
R"(no matching constructor for vec3<i32>(i32, f32, i32)
-7 candidate constructors:
- vec3(x: T, y: T, z: T) -> vec3<T> where: T is abstract-int, abstract-float, f32, f16, i32, u32 or bool
- vec3(x: T, yz: vec2<T>) -> vec3<T> where: T is abstract-int, abstract-float, f32, f16, i32, u32 or bool
- vec3(T) -> vec3<T> where: T is abstract-int, abstract-float, f32, f16, i32, u32 or bool
- vec3(xy: vec2<T>, z: T) -> vec3<T> where: T is abstract-int, abstract-float, f32, f16, i32, u32 or bool
- vec3(vec3<T>) -> vec3<T> where: T is abstract-int, abstract-float, f32, f16, i32, u32 or bool
- vec3() -> vec3<abstract-int>
+6 candidate constructors:
+ vec3(x: T, y: T, z: T) -> vec3<T> where: T is f32, f16, i32, u32 or bool
+ vec3(x: T, yz: vec2<T>) -> vec3<T> where: T is f32, f16, i32, u32 or bool
+ vec3(T) -> vec3<T> where: T is f32, f16, i32, u32 or bool
+ vec3(xy: vec2<T>, z: T) -> vec3<T> where: T is f32, f16, i32, u32 or bool
+ vec3(vec3<T>) -> vec3<T> where: T is f32, f16, i32, u32 or bool
vec3<T>() -> vec3<T> where: T is f32, f16, i32, u32 or bool
5 candidate conversions:
- vec3<T>(vec3<U>) -> vec3<f32> where: T is f32, U is abstract-int, abstract-float, i32, f16, u32 or bool
- vec3<T>(vec3<U>) -> vec3<f16> where: T is f16, U is abstract-int, abstract-float, f32, i32, u32 or bool
- vec3<T>(vec3<U>) -> vec3<i32> where: T is i32, U is abstract-int, abstract-float, f32, f16, u32 or bool
- vec3<T>(vec3<U>) -> vec3<u32> where: T is u32, U is abstract-int, abstract-float, f32, f16, i32 or bool
- vec3<T>(vec3<U>) -> vec3<bool> where: T is bool, U is abstract-int, abstract-float, f32, f16, i32 or u32
+ vec3<T>(vec3<U>) -> vec3<f32> where: T is f32, U is i32, f16, u32 or bool
+ vec3<T>(vec3<U>) -> vec3<f16> where: T is f16, U is f32, i32, u32 or bool
+ vec3<T>(vec3<U>) -> vec3<i32> where: T is i32, U is f32, f16, u32 or bool
+ vec3<T>(vec3<U>) -> vec3<u32> where: T is u32, U is f32, f16, i32 or bool
+ vec3<T>(vec3<U>) -> vec3<bool> where: T is bool, U is f32, f16, i32 or u32
)");
}
-TEST_F(IntrinsicTableTest, MatchTypeInitializerImplicitVecFromVecAbstract) {
- auto* ai = create<core::type::AbstractInt>();
- auto* vec3_ai = create<core::type::Vector>(ai, 3u);
- auto result =
- table.Lookup(CtorConv::kVec3, nullptr, Vector{vec3_ai}, EvaluationStage::kConstant);
+TEST_F(CoreIntrinsicTableTest, MatchTypeInitializerImplicitVecFromVecAbstract) {
+ auto* i32 = create<type::I32>();
+ auto* vec3i = create<type::Vector>(i32, 3u);
+ auto result = table.Lookup(CtorConv::kVec3, nullptr, Vector{vec3i}, EvaluationStage::kConstant);
ASSERT_EQ(result, Success);
- EXPECT_EQ(result->return_type, vec3_ai);
+ EXPECT_EQ(result->return_type, vec3i);
EXPECT_TRUE(result->info->flags.Contains(OverloadFlag::kIsConstructor));
ASSERT_EQ(result->parameters.Length(), 1u);
- EXPECT_EQ(result->parameters[0].type, vec3_ai);
+ EXPECT_EQ(result->parameters[0].type, vec3i);
EXPECT_NE(result->const_eval_fn, nullptr);
}
-TEST_F(IntrinsicTableTest, MatchTypeInitializerImplicitMatFromVec) {
- auto* af = create<core::type::AbstractFloat>();
- auto* vec2_ai = create<core::type::Vector>(create<core::type::AbstractInt>(), 2u);
- auto* vec2_af = create<core::type::Vector>(af, 2u);
- auto* mat2x2_af = create<core::type::Matrix>(vec2_af, 2u);
- auto result = table.Lookup(CtorConv::kMat2x2, nullptr, Vector{vec2_ai, vec2_ai},
- EvaluationStage::kConstant);
+TEST_F(CoreIntrinsicTableTest, MatchTypeInitializerImplicitMatFromVec) {
+ auto* f32 = create<type::F32>();
+ auto* vec2f = create<type::Vector>(f32, 2u);
+ auto* mat2x2_af = create<type::Matrix>(vec2f, 2u);
+ auto result =
+ table.Lookup(CtorConv::kMat2x2, nullptr, Vector{vec2f, vec2f}, EvaluationStage::kConstant);
ASSERT_EQ(result, Success);
EXPECT_TYPE(result->return_type, mat2x2_af);
EXPECT_TRUE(result->info->flags.Contains(OverloadFlag::kIsConstructor));
ASSERT_EQ(result->parameters.Length(), 2u);
- EXPECT_TYPE(result->parameters[0].type, vec2_af);
- EXPECT_TYPE(result->parameters[1].type, vec2_af);
+ EXPECT_TYPE(result->parameters[0].type, vec2f);
+ EXPECT_TYPE(result->parameters[1].type, vec2f);
EXPECT_NE(result->const_eval_fn, nullptr);
}
-TEST_F(IntrinsicTableTest, MatchTypeInitializer_ConstantEval) {
- auto* ai = create<core::type::AbstractInt>();
- auto* vec3_ai = create<core::type::Vector>(ai, 3u);
- auto result =
- table.Lookup(CtorConv::kVec3, nullptr, Vector{ai, ai, ai}, EvaluationStage::kConstant);
- ASSERT_EQ(result, Success);
- EXPECT_NE(result->const_eval_fn, nullptr);
- EXPECT_EQ(result->return_type, vec3_ai);
- EXPECT_TRUE(result->info->flags.Contains(OverloadFlag::kIsConstructor));
- ASSERT_EQ(result->parameters.Length(), 3u);
- EXPECT_EQ(result->parameters[0].type, ai);
- EXPECT_EQ(result->parameters[1].type, ai);
- EXPECT_EQ(result->parameters[2].type, ai);
- EXPECT_NE(result->const_eval_fn, nullptr);
-}
-
-TEST_F(IntrinsicTableTest, MatchTypeInitializer_RuntimeEval) {
- auto* ai = create<core::type::AbstractInt>();
- auto result =
- table.Lookup(CtorConv::kVec3, nullptr, Vector{ai, ai, ai}, EvaluationStage::kRuntime);
+TEST_F(CoreIntrinsicTableTest, MatchTypeInitializer_ConstantEval) {
auto* i32 = create<type::I32>();
- auto* vec3_i32 = create<type::Vector>(i32, 3u);
+ auto* vec3i = create<type::Vector>(i32, 3u);
+ auto result =
+ table.Lookup(CtorConv::kVec3, nullptr, Vector{i32, i32, i32}, EvaluationStage::kConstant);
ASSERT_EQ(result, Success);
EXPECT_NE(result->const_eval_fn, nullptr);
- EXPECT_EQ(result->return_type, vec3_i32);
+ EXPECT_EQ(result->return_type, vec3i);
EXPECT_TRUE(result->info->flags.Contains(OverloadFlag::kIsConstructor));
ASSERT_EQ(result->parameters.Length(), 3u);
EXPECT_EQ(result->parameters[0].type, i32);
@@ -862,544 +817,98 @@
EXPECT_NE(result->const_eval_fn, nullptr);
}
-TEST_F(IntrinsicTableTest, MatchTypeConversion) {
- auto* i32 = create<core::type::I32>();
- auto* vec3_i32 = create<core::type::Vector>(i32, 3u);
- auto* f32 = create<core::type::F32>();
- auto* vec3_f32 = create<core::type::Vector>(f32, 3u);
- auto result = table.Lookup(CtorConv::kVec3, i32, Vector{vec3_f32}, EvaluationStage::kConstant);
+TEST_F(CoreIntrinsicTableTest, MatchTypeInitializer_RuntimeEval) {
+ auto* i32 = create<type::I32>();
+ auto result =
+ table.Lookup(CtorConv::kVec3, nullptr, Vector{i32, i32, i32}, EvaluationStage::kRuntime);
+ auto* vec3i = create<type::Vector>(i32, 3u);
ASSERT_EQ(result, Success);
- EXPECT_EQ(result->return_type, vec3_i32);
- EXPECT_FALSE(result->info->flags.Contains(OverloadFlag::kIsConstructor));
- ASSERT_EQ(result->parameters.Length(), 1u);
- EXPECT_EQ(result->parameters[0].type, vec3_f32);
+ EXPECT_NE(result->const_eval_fn, nullptr);
+ EXPECT_EQ(result->return_type, vec3i);
+ EXPECT_TRUE(result->info->flags.Contains(OverloadFlag::kIsConstructor));
+ ASSERT_EQ(result->parameters.Length(), 3u);
+ EXPECT_EQ(result->parameters[0].type, i32);
+ EXPECT_EQ(result->parameters[1].type, i32);
+ EXPECT_EQ(result->parameters[2].type, i32);
+ EXPECT_NE(result->const_eval_fn, nullptr);
}
-TEST_F(IntrinsicTableTest, MismatchTypeConversion) {
- auto* arr = create<core::type::Array>(create<core::type::U32>(),
- create<core::type::RuntimeArrayCount>(), 4u, 4u, 4u, 4u);
- auto* f32 = create<core::type::F32>();
+TEST_F(CoreIntrinsicTableTest, MatchTypeConversion) {
+ auto* i32 = create<type::I32>();
+ auto* vec3i = create<type::Vector>(i32, 3u);
+ auto* f32 = create<type::F32>();
+ auto* vec3f = create<type::Vector>(f32, 3u);
+ auto result = table.Lookup(CtorConv::kVec3, i32, Vector{vec3f}, EvaluationStage::kConstant);
+ ASSERT_EQ(result, Success);
+ EXPECT_EQ(result->return_type, vec3i);
+ EXPECT_FALSE(result->info->flags.Contains(OverloadFlag::kIsConstructor));
+ ASSERT_EQ(result->parameters.Length(), 1u);
+ EXPECT_EQ(result->parameters[0].type, vec3f);
+}
+
+TEST_F(CoreIntrinsicTableTest, MismatchTypeConversion) {
+ auto* arr =
+ create<type::Array>(create<type::U32>(), create<type::RuntimeArrayCount>(), 4u, 4u, 4u, 4u);
+ auto* f32 = create<type::F32>();
auto result = table.Lookup(CtorConv::kVec3, f32, Vector{arr}, EvaluationStage::kConstant);
ASSERT_NE(result, Success);
EXPECT_EQ(result.Failure(),
R"(no matching constructor for vec3<f32>(array<u32>)
-7 candidate constructors:
- vec3(vec3<T>) -> vec3<T> where: T is abstract-int, abstract-float, f32, f16, i32, u32 or bool
- vec3(T) -> vec3<T> where: T is abstract-int, abstract-float, f32, f16, i32, u32 or bool
- vec3() -> vec3<abstract-int>
+6 candidate constructors:
+ vec3(vec3<T>) -> vec3<T> where: T is f32, f16, i32, u32 or bool
+ vec3(T) -> vec3<T> where: T is f32, f16, i32, u32 or bool
vec3<T>() -> vec3<T> where: T is f32, f16, i32, u32 or bool
- vec3(xy: vec2<T>, z: T) -> vec3<T> where: T is abstract-int, abstract-float, f32, f16, i32, u32 or bool
- vec3(x: T, yz: vec2<T>) -> vec3<T> where: T is abstract-int, abstract-float, f32, f16, i32, u32 or bool
- vec3(x: T, y: T, z: T) -> vec3<T> where: T is abstract-int, abstract-float, f32, f16, i32, u32 or bool
+ vec3(xy: vec2<T>, z: T) -> vec3<T> where: T is f32, f16, i32, u32 or bool
+ vec3(x: T, yz: vec2<T>) -> vec3<T> where: T is f32, f16, i32, u32 or bool
+ vec3(x: T, y: T, z: T) -> vec3<T> where: T is f32, f16, i32, u32 or bool
5 candidate conversions:
- vec3<T>(vec3<U>) -> vec3<f32> where: T is f32, U is abstract-int, abstract-float, i32, f16, u32 or bool
- vec3<T>(vec3<U>) -> vec3<f16> where: T is f16, U is abstract-int, abstract-float, f32, i32, u32 or bool
- vec3<T>(vec3<U>) -> vec3<i32> where: T is i32, U is abstract-int, abstract-float, f32, f16, u32 or bool
- vec3<T>(vec3<U>) -> vec3<u32> where: T is u32, U is abstract-int, abstract-float, f32, f16, i32 or bool
- vec3<T>(vec3<U>) -> vec3<bool> where: T is bool, U is abstract-int, abstract-float, f32, f16, i32 or u32
+ vec3<T>(vec3<U>) -> vec3<f32> where: T is f32, U is i32, f16, u32 or bool
+ vec3<T>(vec3<U>) -> vec3<f16> where: T is f16, U is f32, i32, u32 or bool
+ vec3<T>(vec3<U>) -> vec3<i32> where: T is i32, U is f32, f16, u32 or bool
+ vec3<T>(vec3<U>) -> vec3<u32> where: T is u32, U is f32, f16, i32 or bool
+ vec3<T>(vec3<U>) -> vec3<bool> where: T is bool, U is f32, f16, i32 or u32
)");
}
-TEST_F(IntrinsicTableTest, MatchTypeConversion_ConstantEval) {
- auto* ai = create<core::type::AbstractInt>();
- auto* af = create<core::type::AbstractFloat>();
- auto* vec3_ai = create<core::type::Vector>(ai, 3u);
- auto* f32 = create<core::type::F32>();
- auto* vec3_f32 = create<core::type::Vector>(f32, 3u);
- auto result = table.Lookup(CtorConv::kVec3, af, Vector{vec3_ai}, EvaluationStage::kConstant);
+TEST_F(CoreIntrinsicTableTest, MatchTypeConversion_ConstantEval) {
+ auto* i32 = create<type::I32>();
+ auto* f32 = create<type::F32>();
+ auto* vec3i = create<type::Vector>(i32, 3u);
+ auto* vec3f = create<type::Vector>(f32, 3u);
+ auto result = table.Lookup(CtorConv::kVec3, f32, Vector{vec3i}, EvaluationStage::kConstant);
ASSERT_EQ(result, Success);
EXPECT_NE(result->const_eval_fn, nullptr);
// NOTE: Conversions are explicit, so there's no way to have it return abstracts
- EXPECT_EQ(result->return_type, vec3_f32);
+ EXPECT_EQ(result->return_type, vec3f);
EXPECT_FALSE(result->info->flags.Contains(OverloadFlag::kIsConstructor));
ASSERT_EQ(result->parameters.Length(), 1u);
- EXPECT_EQ(result->parameters[0].type, vec3_ai);
+ EXPECT_EQ(result->parameters[0].type, vec3i);
}
-TEST_F(IntrinsicTableTest, MatchTypeConversion_RuntimeEval) {
- auto* ai = create<core::type::AbstractInt>();
- auto* af = create<core::type::AbstractFloat>();
- auto* vec3_ai = create<core::type::Vector>(ai, 3u);
- auto* vec3_f32 = create<core::type::Vector>(create<core::type::F32>(), 3u);
- auto* vec3_i32 = create<core::type::Vector>(create<core::type::I32>(), 3u);
- auto result = table.Lookup(CtorConv::kVec3, af, Vector{vec3_ai}, EvaluationStage::kRuntime);
+TEST_F(CoreIntrinsicTableTest, MatchTypeConversion_RuntimeEval) {
+ auto* i32 = create<type::I32>();
+ auto* f32 = create<type::F32>();
+ auto* vec3i = create<type::Vector>(i32, 3u);
+ auto* vec3f = create<type::Vector>(create<type::F32>(), 3u);
+ auto result = table.Lookup(CtorConv::kVec3, f32, Vector{vec3i}, EvaluationStage::kRuntime);
ASSERT_EQ(result, Success);
EXPECT_NE(result->const_eval_fn, nullptr);
- EXPECT_EQ(result->return_type, vec3_f32);
+ EXPECT_EQ(result->return_type, vec3f);
EXPECT_FALSE(result->info->flags.Contains(OverloadFlag::kIsConstructor));
ASSERT_EQ(result->parameters.Length(), 1u);
- EXPECT_EQ(result->parameters[0].type, vec3_i32);
+ EXPECT_EQ(result->parameters[0].type, vec3i);
}
-TEST_F(IntrinsicTableTest, Err257Arguments) { // crbug.com/1323605
- auto* f32 = create<core::type::F32>();
- Vector<const core::type::Type*, 0> arg_tys;
+TEST_F(CoreIntrinsicTableTest, Err257Arguments) { // crbug.com/1323605
+ auto* f32 = create<type::F32>();
+ Vector<const type::Type*, 0> arg_tys;
arg_tys.Resize(257, f32);
- auto result =
- table.Lookup(core::BuiltinFn::kAbs, std::move(arg_tys), EvaluationStage::kConstant);
+ auto result = table.Lookup(BuiltinFn::kAbs, std::move(arg_tys), EvaluationStage::kConstant);
ASSERT_NE(result, Success);
ASSERT_THAT(result.Failure(), HasSubstr("no matching call"));
}
-TEST_F(IntrinsicTableTest, OverloadResolution) {
- // i32(abstract-int) produces candidates for both:
- // ctor i32(i32) -> i32
- // conv i32<T: scalar_no_i32>(T) -> i32
- // The first should win overload resolution.
- auto* ai = create<core::type::AbstractInt>();
- auto* i32 = create<core::type::I32>();
- auto result = table.Lookup(CtorConv::kI32, nullptr, Vector{ai}, EvaluationStage::kConstant);
- ASSERT_EQ(result, Success);
- EXPECT_EQ(result->return_type, i32);
- EXPECT_EQ(result->parameters.Length(), 1u);
- EXPECT_EQ(result->parameters[0].type, ai);
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// AbstractBinaryTests
-////////////////////////////////////////////////////////////////////////////////
-namespace AbstractBinaryTests {
-struct Case {
- template <typename RESULT,
- typename PARAM_LHS,
- typename PARAM_RHS,
- typename ARG_LHS,
- typename ARG_RHS>
- static Case Create(bool match = true) {
- return {
- match, //
- resolver::builder::DataType<RESULT>::Sem, //
- resolver::builder::DataType<PARAM_LHS>::Sem, //
- resolver::builder::DataType<PARAM_RHS>::Sem, //
- resolver::builder::DataType<ARG_LHS>::Sem, //
- resolver::builder::DataType<ARG_RHS>::Sem, //
- };
- }
- bool expected_match;
- resolver::builder::sem_type_func_ptr expected_result;
- resolver::builder::sem_type_func_ptr expected_param_lhs;
- resolver::builder::sem_type_func_ptr expected_param_rhs;
- resolver::builder::sem_type_func_ptr arg_lhs;
- resolver::builder::sem_type_func_ptr arg_rhs;
-};
-
-struct IntrinsicTableAbstractBinaryTest : public resolver::ResolverTestWithParam<Case> {
- Table<Dialect> table{Types(), Symbols()};
-};
-
-TEST_P(IntrinsicTableAbstractBinaryTest, MatchAdd) {
- auto* arg_lhs = GetParam().arg_lhs(*this);
- auto* arg_rhs = GetParam().arg_rhs(*this);
- auto result = table.Lookup(core::BinaryOp::kAdd, arg_lhs, arg_rhs, EvaluationStage::kConstant,
- /* is_compound */ false);
-
- bool matched = result == Success;
- bool expected_match = GetParam().expected_match;
- EXPECT_EQ(matched, expected_match) << Diagnostics();
-
- if (matched) {
- auto* expected_result = GetParam().expected_result(*this);
- EXPECT_TYPE(result->return_type, expected_result);
-
- auto* expected_param_lhs = GetParam().expected_param_lhs(*this);
- EXPECT_TYPE(result->parameters[0].type, expected_param_lhs);
-
- auto* expected_param_rhs = GetParam().expected_param_rhs(*this);
- EXPECT_TYPE(result->parameters[1].type, expected_param_rhs);
- }
-}
-
-INSTANTIATE_TEST_SUITE_P(AFloat_AInt,
- IntrinsicTableAbstractBinaryTest,
- testing::Values( // clang-format off
-// result | param lhs | param rhs | arg lhs | arg rhs
-Case::Create<AFloat, AFloat, AFloat, AFloat, AFloat>(),
-Case::Create<AFloat, AFloat, AFloat, AFloat, AInt>(),
-Case::Create<AFloat, AFloat, AFloat, AInt, AFloat>(),
-Case::Create<AInt, AInt, AInt, AInt, AInt>()
- )); // clang-format on
-
-INSTANTIATE_TEST_SUITE_P(
- VecAFloat_VecAInt,
- IntrinsicTableAbstractBinaryTest,
- testing::Values( // clang-format off
-// result | param lhs | param rhs | arg lhs | arg rhs
-Case::Create<AFloatV, AFloatV, AFloatV, AFloatV, AFloatV>(),
-Case::Create<AFloatV, AFloatV, AFloatV, AFloatV, AIntV>(),
-Case::Create<AFloatV, AFloatV, AFloatV, AIntV, AFloatV>(),
-Case::Create<AIntV, AIntV, AIntV, AIntV, AIntV>()
- )); // clang-format on
-
-INSTANTIATE_TEST_SUITE_P(AFloat_f32,
- IntrinsicTableAbstractBinaryTest,
- testing::Values( // clang-format off
-// result | param lhs | param rhs | arg lhs | arg rhs
-Case::Create<f32, f32, f32, AFloat, f32>(),
-Case::Create<f32, f32, f32, f32, AFloat>()
- )); // clang-format on
-
-INSTANTIATE_TEST_SUITE_P(VecAFloat_Vecf32,
- IntrinsicTableAbstractBinaryTest,
- testing::Values( // clang-format off
-// result | param lhs | param rhs | arg lhs | arg rhs
-Case::Create<f32V, f32V, f32V, AFloatV, f32V>(),
-Case::Create<f32V, f32V, f32V, f32V, AFloatV>()
- )); // clang-format on
-
-INSTANTIATE_TEST_SUITE_P(
- AFloat_i32,
- IntrinsicTableAbstractBinaryTest,
- testing::Values( // clang-format off
-// result | param lhs | param rhs | arg lhs | arg rhs
-Case::Create<void, void, void, AFloat, i32>(false),
-Case::Create<void, void, void, i32, AFloat>(false)
- )); // clang-format on
-
-INSTANTIATE_TEST_SUITE_P(
- VecAFloat_Veci32,
- IntrinsicTableAbstractBinaryTest,
- testing::Values( // clang-format off
-// result | param lhs | param rhs | arg lhs | arg rhs
-Case::Create<void, void, void, AFloatV, i32V>(false),
-Case::Create<void, void, void, i32V, AFloatV>(false)
- )); // clang-format on
-
-INSTANTIATE_TEST_SUITE_P(
- AFloat_u32,
- IntrinsicTableAbstractBinaryTest,
- testing::Values( // clang-format off
-// result | param lhs | param rhs | arg lhs | arg rhs
-Case::Create<void, void, void, AFloat, u32>(false),
-Case::Create<void, void, void, u32, AFloat>(false)
- )); // clang-format on
-
-INSTANTIATE_TEST_SUITE_P(
- VecAFloat_Vecu32,
- IntrinsicTableAbstractBinaryTest,
- testing::Values( // clang-format off
-// result | param lhs | param rhs | arg lhs | arg rhs
-Case::Create<void, void, void, AFloatV, u32V>(false),
-Case::Create<void, void, void, u32V, AFloatV>(false)
- )); // clang-format on
-
-INSTANTIATE_TEST_SUITE_P(AInt_f32,
- IntrinsicTableAbstractBinaryTest,
- testing::Values( // clang-format off
-// result | param lhs | param rhs | arg lhs | arg rhs
-Case::Create<f32, f32, f32, AInt, f32>(),
-Case::Create<f32, f32, f32, f32, AInt>()
- )); // clang-format on
-
-INSTANTIATE_TEST_SUITE_P(VecAInt_Vecf32,
- IntrinsicTableAbstractBinaryTest,
- testing::Values( // clang-format off
-// result | param lhs | param rhs | arg lhs | arg rhs
-Case::Create<f32V, f32V, f32V, AIntV, f32V>(),
-Case::Create<f32V, f32V, f32V, f32V, AIntV>()
- )); // clang-format on
-
-INSTANTIATE_TEST_SUITE_P(AInt_i32,
- IntrinsicTableAbstractBinaryTest,
- testing::Values( // clang-format off
-// result | param lhs | param rhs | arg lhs | arg rhs
-Case::Create<i32, i32, i32, AInt, i32>(),
-Case::Create<i32, i32, i32, i32, AInt>()
- )); // clang-format on
-
-INSTANTIATE_TEST_SUITE_P(VecAInt_Veci32,
- IntrinsicTableAbstractBinaryTest,
- testing::Values( // clang-format off
-// result | param lhs | param rhs | arg lhs | arg rhs
-Case::Create<i32V, i32V, i32V, AIntV, i32V>(),
-Case::Create<i32V, i32V, i32V, i32V, AIntV>()
- )); // clang-format on
-
-INSTANTIATE_TEST_SUITE_P(AInt_u32,
- IntrinsicTableAbstractBinaryTest,
- testing::Values( // clang-format off
-// result | param lhs | param rhs | arg lhs | arg rhs
-Case::Create<u32, u32, u32, AInt, u32>(),
-Case::Create<u32, u32, u32, u32, AInt>()
- )); // clang-format on
-
-INSTANTIATE_TEST_SUITE_P(VecAInt_Vecu32,
- IntrinsicTableAbstractBinaryTest,
- testing::Values( // clang-format off
-// result | param lhs | param rhs | arg lhs | arg rhs
-Case::Create<u32V, u32V, u32V, AIntV, u32V>(),
-Case::Create<u32V, u32V, u32V, u32V, AIntV>()
- )); // clang-format on
-
-} // namespace AbstractBinaryTests
-
-////////////////////////////////////////////////////////////////////////////////
-// AbstractTernaryTests
-////////////////////////////////////////////////////////////////////////////////
-namespace AbstractTernaryTests {
-struct Case {
- template <typename RESULT,
- typename PARAM_A,
- typename PARAM_B,
- typename PARAM_C,
- typename ARG_A,
- typename ARG_B,
- typename ARG_C>
- static Case Create(bool match = true) {
- return {
- match,
- resolver::builder::DataType<RESULT>::Sem, //
- resolver::builder::DataType<PARAM_A>::Sem, //
- resolver::builder::DataType<PARAM_B>::Sem, //
- resolver::builder::DataType<PARAM_C>::Sem, //
- resolver::builder::DataType<ARG_A>::Sem, //
- resolver::builder::DataType<ARG_B>::Sem, //
- resolver::builder::DataType<ARG_C>::Sem, //
- };
- }
- bool expected_match;
- resolver::builder::sem_type_func_ptr expected_result;
- resolver::builder::sem_type_func_ptr expected_param_a;
- resolver::builder::sem_type_func_ptr expected_param_b;
- resolver::builder::sem_type_func_ptr expected_param_c;
- resolver::builder::sem_type_func_ptr arg_a;
- resolver::builder::sem_type_func_ptr arg_b;
- resolver::builder::sem_type_func_ptr arg_c;
-};
-
-struct IntrinsicTableAbstractTernaryTest : public resolver::ResolverTestWithParam<Case> {
- Table<Dialect> table{Types(), Symbols()};
-};
-
-TEST_P(IntrinsicTableAbstractTernaryTest, MatchClamp) {
- auto* arg_a = GetParam().arg_a(*this);
- auto* arg_b = GetParam().arg_b(*this);
- auto* arg_c = GetParam().arg_c(*this);
- auto builtin = table.Lookup(core::BuiltinFn::kClamp, Vector{arg_a, arg_b, arg_c},
- EvaluationStage::kConstant);
-
- bool expected_match = GetParam().expected_match;
- EXPECT_EQ(builtin == Success, expected_match) << Diagnostics();
-
- auto* result = builtin == Success ? builtin->return_type : nullptr;
- auto* expected_result = GetParam().expected_result(*this);
- EXPECT_TYPE(result, expected_result);
-
- auto* param_a = builtin == Success ? builtin->parameters[0].type : nullptr;
- auto* expected_param_a = GetParam().expected_param_a(*this);
- EXPECT_TYPE(param_a, expected_param_a);
-
- auto* param_b = builtin == Success ? builtin->parameters[1].type : nullptr;
- auto* expected_param_b = GetParam().expected_param_b(*this);
- EXPECT_TYPE(param_b, expected_param_b);
-
- auto* param_c = builtin == Success ? builtin->parameters[2].type : nullptr;
- auto* expected_param_c = GetParam().expected_param_c(*this);
- EXPECT_TYPE(param_c, expected_param_c);
-}
-
-INSTANTIATE_TEST_SUITE_P(
- AFloat_AInt,
- IntrinsicTableAbstractTernaryTest,
- testing::Values( // clang-format off
-// result | param a | param b | param c | arg a | arg b | arg c
-Case::Create<AFloat, AFloat, AFloat, AFloat, AFloat, AFloat, AFloat>(),
-Case::Create<AFloat, AFloat, AFloat, AFloat, AFloat, AFloat, AInt>(),
-Case::Create<AFloat, AFloat, AFloat, AFloat, AFloat, AInt, AFloat>(),
-Case::Create<AFloat, AFloat, AFloat, AFloat, AFloat, AInt, AInt>(),
-Case::Create<AFloat, AFloat, AFloat, AFloat, AInt, AFloat, AFloat>(),
-Case::Create<AFloat, AFloat, AFloat, AFloat, AInt, AFloat, AInt>(),
-Case::Create<AFloat, AFloat, AFloat, AFloat, AInt, AInt, AFloat>(),
-Case::Create<AInt, AInt, AInt, AInt, AInt, AInt, AInt>()
- // clang-format on
- ));
-
-INSTANTIATE_TEST_SUITE_P(
- VecAFloat_VecAInt,
- IntrinsicTableAbstractTernaryTest,
- testing::Values( // clang-format off
-// result | param a | param b | param c | arg a | arg b | arg c
-Case::Create<AFloatV, AFloatV, AFloatV, AFloatV, AFloatV, AFloatV, AFloatV>(),
-Case::Create<AFloatV, AFloatV, AFloatV, AFloatV, AFloatV, AFloatV, AIntV>(),
-Case::Create<AFloatV, AFloatV, AFloatV, AFloatV, AFloatV, AIntV, AFloatV>(),
-Case::Create<AFloatV, AFloatV, AFloatV, AFloatV, AFloatV, AIntV, AIntV>(),
-Case::Create<AFloatV, AFloatV, AFloatV, AFloatV, AIntV, AFloatV, AFloatV>(),
-Case::Create<AFloatV, AFloatV, AFloatV, AFloatV, AIntV, AFloatV, AIntV>(),
-Case::Create<AFloatV, AFloatV, AFloatV, AFloatV, AIntV, AIntV, AFloatV>(),
-Case::Create<AIntV, AIntV, AIntV, AIntV, AIntV, AIntV, AIntV>()
- // clang-format on
- ));
-
-INSTANTIATE_TEST_SUITE_P(
- AFloat_f32,
- IntrinsicTableAbstractTernaryTest,
- testing::Values( // clang-format off
-// result | param a | param b | param c | arg a | arg b | arg c
-Case::Create<f32, f32, f32, f32, AFloat, AFloat, f32>(),
-Case::Create<f32, f32, f32, f32, AFloat, f32, AFloat>(),
-Case::Create<f32, f32, f32, f32, AFloat, f32, f32>(),
-Case::Create<f32, f32, f32, f32, f32, AFloat, AFloat>(),
-Case::Create<f32, f32, f32, f32, f32, AFloat, f32>(),
-Case::Create<f32, f32, f32, f32, f32, f32, AFloat>()
- // clang-format on
- ));
-
-INSTANTIATE_TEST_SUITE_P(
- VecAFloat_Vecf32,
- IntrinsicTableAbstractTernaryTest,
- testing::Values( // clang-format off
-// result | param a | param b | param c | arg a | arg b | arg c
-Case::Create<f32V, f32V, f32V, f32V, AFloatV, AFloatV, f32V>(),
-Case::Create<f32V, f32V, f32V, f32V, AFloatV, f32V, AFloatV>(),
-Case::Create<f32V, f32V, f32V, f32V, AFloatV, f32V, f32V>(),
-Case::Create<f32V, f32V, f32V, f32V, f32V, AFloatV, AFloatV>(),
-Case::Create<f32V, f32V, f32V, f32V, f32V, AFloatV, f32V>(),
-Case::Create<f32V, f32V, f32V, f32V, f32V, f32V, AFloatV> ()
- // clang-format on
- ));
-
-INSTANTIATE_TEST_SUITE_P(
- AFloat_i32,
- IntrinsicTableAbstractTernaryTest,
- testing::Values( // clang-format off
-// result | param a | param b | param c | arg a | arg b | arg c
-Case::Create<void, void, void, void, AFloat, AFloat, i32>(false),
-Case::Create<void, void, void, void, AFloat, i32, AFloat>(false),
-Case::Create<void, void, void, void, AFloat, i32, i32>(false),
-Case::Create<void, void, void, void, i32, AFloat, AFloat>(false),
-Case::Create<void, void, void, void, i32, AFloat, i32>(false),
-Case::Create<void, void, void, void, i32, i32, AFloat>(false)
- // clang-format on
- ));
-
-INSTANTIATE_TEST_SUITE_P(
- VecAFloat_Veci32,
- IntrinsicTableAbstractTernaryTest,
- testing::Values( // clang-format off
-// result | param a | param b | param c | arg a | arg b | arg c
-Case::Create<void, void, void, void, AFloatV, AFloatV, i32V>(false),
-Case::Create<void, void, void, void, AFloatV, i32V, AFloatV>(false),
-Case::Create<void, void, void, void, AFloatV, i32V, i32V>(false),
-Case::Create<void, void, void, void, i32V, AFloatV, AFloatV>(false),
-Case::Create<void, void, void, void, i32V, AFloatV, i32V>(false),
-Case::Create<void, void, void, void, i32V, i32V, AFloatV>(false)
- // clang-format on
- ));
-
-INSTANTIATE_TEST_SUITE_P(
- AFloat_u32,
- IntrinsicTableAbstractTernaryTest,
- testing::Values( // clang-format off
-// result | param a | param b | param c | arg a | arg b | arg c
-Case::Create<void, void, void, void, AFloat, AFloat, u32>(false),
-Case::Create<void, void, void, void, AFloat, u32, AFloat>(false),
-Case::Create<void, void, void, void, AFloat, u32, u32>(false),
-Case::Create<void, void, void, void, u32, AFloat, AFloat>(false),
-Case::Create<void, void, void, void, u32, AFloat, u32>(false),
-Case::Create<void, void, void, void, u32, u32, AFloat>(false)
- // clang-format on
- ));
-
-INSTANTIATE_TEST_SUITE_P(
- VecAFloat_Vecu32,
- IntrinsicTableAbstractTernaryTest,
- testing::Values( // clang-format off
-// result | param a | param b | param c | arg a | arg b | arg c
-Case::Create<void, void, void, void, AFloatV, AFloatV, u32V>(false),
-Case::Create<void, void, void, void, AFloatV, u32V, AFloatV>(false),
-Case::Create<void, void, void, void, AFloatV, u32V, u32V>(false),
-Case::Create<void, void, void, void, u32V, AFloatV, AFloatV>(false),
-Case::Create<void, void, void, void, u32V, AFloatV, u32V>(false),
-Case::Create<void, void, void, void, u32V, u32V, AFloatV>(false)
- // clang-format on
- ));
-
-INSTANTIATE_TEST_SUITE_P(
- AInt_f32,
- IntrinsicTableAbstractTernaryTest,
- testing::Values( // clang-format off
-// result | param a | param b | param c | arg a | arg b | arg c
-Case::Create<f32, f32, f32, f32, AInt, AInt, f32>(),
-Case::Create<f32, f32, f32, f32, AInt, f32, AInt>(),
-Case::Create<f32, f32, f32, f32, AInt, f32, f32>(),
-Case::Create<f32, f32, f32, f32, f32, AInt, AInt>(),
-Case::Create<f32, f32, f32, f32, f32, AInt, f32>(),
-Case::Create<f32, f32, f32, f32, f32, f32, AInt>()
- // clang-format on
- ));
-
-INSTANTIATE_TEST_SUITE_P(
- VecAInt_Vecf32,
- IntrinsicTableAbstractTernaryTest,
- testing::Values( // clang-format off
-// result | param a | param b | param c | arg a | arg b | arg c
-Case::Create<f32V, f32V, f32V, f32V, AIntV, AIntV, f32V>(),
-Case::Create<f32V, f32V, f32V, f32V, AIntV, f32V, AIntV>(),
-Case::Create<f32V, f32V, f32V, f32V, AIntV, f32V, f32V>(),
-Case::Create<f32V, f32V, f32V, f32V, f32V, AIntV, AIntV>(),
-Case::Create<f32V, f32V, f32V, f32V, f32V, AIntV, f32V>(),
-Case::Create<f32V, f32V, f32V, f32V, f32V, f32V, AIntV>()
- // clang-format on
- ));
-
-INSTANTIATE_TEST_SUITE_P(
- AInt_i32,
- IntrinsicTableAbstractTernaryTest,
- testing::Values( // clang-format off
-// result | param a | param b | param c | arg a | arg b | arg c
-Case::Create<i32, i32, i32, i32, AInt, AInt, i32>(),
-Case::Create<i32, i32, i32, i32, AInt, i32, AInt>(),
-Case::Create<i32, i32, i32, i32, AInt, i32, i32>(),
-Case::Create<i32, i32, i32, i32, i32, AInt, AInt>(),
-Case::Create<i32, i32, i32, i32, i32, AInt, i32>(),
-Case::Create<i32, i32, i32, i32, i32, i32, AInt>()
- // clang-format on
- ));
-
-INSTANTIATE_TEST_SUITE_P(
- VecAInt_Veci32,
- IntrinsicTableAbstractTernaryTest,
- testing::Values( // clang-format off
-// result | param a | param b | param c | arg a | arg b | arg c
-Case::Create<i32V, i32V, i32V, i32V, AIntV, AIntV, i32V>(),
-Case::Create<i32V, i32V, i32V, i32V, AIntV, i32V, AIntV>(),
-Case::Create<i32V, i32V, i32V, i32V, AIntV, i32V, i32V>(),
-Case::Create<i32V, i32V, i32V, i32V, i32V, AIntV, AIntV>(),
-Case::Create<i32V, i32V, i32V, i32V, i32V, AIntV, i32V>(),
-Case::Create<i32V, i32V, i32V, i32V, i32V, i32V, AIntV>()
- // clang-format on
- ));
-
-INSTANTIATE_TEST_SUITE_P(
- AInt_u32,
- IntrinsicTableAbstractTernaryTest,
- testing::Values( // clang-format off
-// result | param a | param b | param c | arg a | arg b | arg c
-Case::Create<u32, u32, u32, u32, AInt, AInt, u32>(),
-Case::Create<u32, u32, u32, u32, AInt, u32, AInt>(),
-Case::Create<u32, u32, u32, u32, AInt, u32, u32>(),
-Case::Create<u32, u32, u32, u32, u32, AInt, AInt>(),
-Case::Create<u32, u32, u32, u32, u32, AInt, u32>(),
-Case::Create<u32, u32, u32, u32, u32, u32, AInt>()
- // clang-format on
- ));
-
-INSTANTIATE_TEST_SUITE_P(
- VecAInt_Vecu32,
- IntrinsicTableAbstractTernaryTest,
- testing::Values( // clang-format off
-// result | param a | param b | param c | arg a | arg b | arg c
-Case::Create<u32V, u32V, u32V, u32V, AIntV, AIntV, u32V>(),
-Case::Create<u32V, u32V, u32V, u32V, AIntV, u32V, AIntV>(),
-Case::Create<u32V, u32V, u32V, u32V, AIntV, u32V, u32V>(),
-Case::Create<u32V, u32V, u32V, u32V, u32V, AIntV, AIntV>(),
-Case::Create<u32V, u32V, u32V, u32V, u32V, AIntV, u32V>(),
-Case::Create<u32V, u32V, u32V, u32V, u32V, u32V, AIntV>()
- // clang-format on
- ));
-
-} // namespace AbstractTernaryTests
-
} // namespace
} // namespace tint::core::intrinsic
diff --git a/src/tint/lang/core/intrinsic/type_matchers.h b/src/tint/lang/core/intrinsic/type_matchers.h
index 77608bd..0d99634 100644
--- a/src/tint/lang/core/intrinsic/type_matchers.h
+++ b/src/tint/lang/core/intrinsic/type_matchers.h
@@ -61,24 +61,6 @@
return ty->IsAnyOf<intrinsic::Any, type::Bool>();
}
-inline const type::AbstractFloat* BuildFa(intrinsic::MatchState& state, const type::Type*) {
- return state.types.AFloat();
-}
-
-inline bool MatchFa(intrinsic::MatchState& state, const type::Type* ty) {
- return (state.earliest_eval_stage <= EvaluationStage::kConstant) &&
- ty->IsAnyOf<intrinsic::Any, type::AbstractNumeric>();
-}
-
-inline const type::AbstractInt* BuildIa(intrinsic::MatchState& state, const type::Type*) {
- return state.types.AInt();
-}
-
-inline bool MatchIa(intrinsic::MatchState& state, const type::Type* ty) {
- return (state.earliest_eval_stage <= EvaluationStage::kConstant) &&
- ty->IsAnyOf<intrinsic::Any, type::AbstractInt>();
-}
-
inline const type::Bool* BuildBool(intrinsic::MatchState& state, const type::Type*) {
return state.types.bool_();
}
diff --git a/src/tint/lang/spirv/type/BUILD.bazel b/src/tint/lang/spirv/type/BUILD.bazel
index 53c59e9..6503b17 100644
--- a/src/tint/lang/spirv/type/BUILD.bazel
+++ b/src/tint/lang/spirv/type/BUILD.bazel
@@ -66,4 +66,31 @@
copts = COPTS,
visibility = ["//visibility:public"],
)
+cc_library(
+ name = "test",
+ alwayslink = True,
+ srcs = [
+ "sampled_image_test.cc",
+ ],
+ deps = [
+ "//src/tint/lang/core",
+ "//src/tint/lang/core/constant",
+ "//src/tint/lang/core/ir",
+ "//src/tint/lang/core/type",
+ "//src/tint/lang/spirv/type",
+ "//src/tint/utils/containers",
+ "//src/tint/utils/diagnostic",
+ "//src/tint/utils/ice",
+ "//src/tint/utils/macros",
+ "//src/tint/utils/math",
+ "//src/tint/utils/memory",
+ "//src/tint/utils/result",
+ "//src/tint/utils/rtti",
+ "//src/tint/utils/text",
+ "//src/tint/utils/traits",
+ "@gtest",
+ ],
+ copts = COPTS,
+ visibility = ["//visibility:public"],
+)
diff --git a/src/tint/lang/spirv/type/BUILD.cmake b/src/tint/lang/spirv/type/BUILD.cmake
index 7d21774..ef39fed 100644
--- a/src/tint/lang/spirv/type/BUILD.cmake
+++ b/src/tint/lang/spirv/type/BUILD.cmake
@@ -62,3 +62,33 @@
tint_utils_text
tint_utils_traits
)
+
+################################################################################
+# Target: tint_lang_spirv_type_test
+# Kind: test
+################################################################################
+tint_add_target(tint_lang_spirv_type_test test
+ lang/spirv/type/sampled_image_test.cc
+)
+
+tint_target_add_dependencies(tint_lang_spirv_type_test test
+ tint_lang_core
+ tint_lang_core_constant
+ tint_lang_core_ir
+ tint_lang_core_type
+ tint_lang_spirv_type
+ tint_utils_containers
+ tint_utils_diagnostic
+ tint_utils_ice
+ tint_utils_macros
+ tint_utils_math
+ tint_utils_memory
+ tint_utils_result
+ tint_utils_rtti
+ tint_utils_text
+ tint_utils_traits
+)
+
+tint_target_add_external_dependencies(tint_lang_spirv_type_test test
+ "gtest"
+)
diff --git a/src/tint/lang/spirv/type/BUILD.gn b/src/tint/lang/spirv/type/BUILD.gn
index 2834593..345e2db 100644
--- a/src/tint/lang/spirv/type/BUILD.gn
+++ b/src/tint/lang/spirv/type/BUILD.gn
@@ -38,6 +38,10 @@
import("${tint_src_dir}/tint.gni")
+if (tint_build_unittests || tint_build_benchmarks) {
+ import("//testing/test.gni")
+}
+
libtint_source_set("type") {
sources = [
"sampled_image.cc",
@@ -63,3 +67,26 @@
"${tint_src_dir}/utils/traits",
]
}
+if (tint_build_unittests) {
+ tint_unittests_source_set("unittests") {
+ sources = [ "sampled_image_test.cc" ]
+ deps = [
+ "${tint_src_dir}:gmock_and_gtest",
+ "${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}/lang/spirv/type",
+ "${tint_src_dir}/utils/containers",
+ "${tint_src_dir}/utils/diagnostic",
+ "${tint_src_dir}/utils/ice",
+ "${tint_src_dir}/utils/macros",
+ "${tint_src_dir}/utils/math",
+ "${tint_src_dir}/utils/memory",
+ "${tint_src_dir}/utils/result",
+ "${tint_src_dir}/utils/rtti",
+ "${tint_src_dir}/utils/text",
+ "${tint_src_dir}/utils/traits",
+ ]
+ }
+}
diff --git a/src/tint/lang/spirv/type/sampled_image.cc b/src/tint/lang/spirv/type/sampled_image.cc
index 7d09f21..6d4e062 100644
--- a/src/tint/lang/spirv/type/sampled_image.cc
+++ b/src/tint/lang/spirv/type/sampled_image.cc
@@ -38,6 +38,17 @@
core::type::Flags{}),
image_(image) {}
+bool SampledImage::Equals(const UniqueNode& other) const {
+ if (auto* o = other.As<SampledImage>()) {
+ return o->image_ == image_;
+ }
+ return false;
+}
+
+std::string SampledImage::FriendlyName() const {
+ return "spirv.sampled_image<" + image_->FriendlyName() + ">";
+}
+
SampledImage* SampledImage::Clone(core::type::CloneContext& ctx) const {
auto* image = image_->Clone(ctx);
return ctx.dst.mgr->Get<SampledImage>(image);
diff --git a/src/tint/lang/spirv/type/sampled_image.h b/src/tint/lang/spirv/type/sampled_image.h
index f935b56..b0146df 100644
--- a/src/tint/lang/spirv/type/sampled_image.h
+++ b/src/tint/lang/spirv/type/sampled_image.h
@@ -45,10 +45,10 @@
/// @param other the other node to compare against
/// @returns true if the this type is equal to @p other
- bool Equals(const UniqueNode& other) const override { return &other.TypeInfo() == &TypeInfo(); }
+ bool Equals(const UniqueNode& other) const override;
/// @returns the friendly name for this type
- std::string FriendlyName() const override { return "spirv.sampled_image"; }
+ std::string FriendlyName() const override;
/// @param ctx the clone context
/// @returns a clone of this type
diff --git a/src/tint/lang/spirv/type/sampled_image_test.cc b/src/tint/lang/spirv/type/sampled_image_test.cc
new file mode 100644
index 0000000..0b12e12
--- /dev/null
+++ b/src/tint/lang/spirv/type/sampled_image_test.cc
@@ -0,0 +1,56 @@
+// Copyright 2024 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/type/sampled_image.h"
+
+#include <gtest/gtest.h>
+
+#include "src/tint/lang/core/type/i32.h"
+#include "src/tint/lang/core/type/u32.h"
+
+namespace tint::spirv::type {
+namespace {
+
+TEST(SampledImageTest, Equals) {
+ core::type::I32 i32;
+ core::type::U32 u32;
+ SampledImage a{&i32};
+ SampledImage b{&i32};
+ SampledImage c{&u32};
+
+ EXPECT_TRUE(a.Equals(b));
+ EXPECT_FALSE(a.Equals(c));
+}
+
+TEST(SampledImageTest, FriendlyName) {
+ core::type::I32 i32;
+ SampledImage s{&i32};
+ EXPECT_EQ(s.FriendlyName(), "spirv.sampled_image<i32>");
+}
+
+} // namespace
+} // namespace tint::spirv::type
diff --git a/src/tint/lang/spirv/writer/raise/builtin_polyfill_test.cc b/src/tint/lang/spirv/writer/raise/builtin_polyfill_test.cc
index f4849ee..29b11d0 100644
--- a/src/tint/lang/spirv/writer/raise/builtin_polyfill_test.cc
+++ b/src/tint/lang/spirv/writer/raise/builtin_polyfill_test.cc
@@ -1406,7 +1406,7 @@
auto* expect = R"(
%foo = func(%t:texture_1d<f32>, %s:sampler, %coords:f32):vec4<f32> -> %b1 {
%b1 = block {
- %5:spirv.sampled_image = spirv.sampled_image %t, %s
+ %5:spirv.sampled_image<texture_1d<f32>> = spirv.sampled_image %t, %s
%6:vec4<f32> = spirv.image_sample_implicit_lod %5, %coords, 0u
ret %6
}
@@ -1444,7 +1444,7 @@
auto* expect = R"(
%foo = func(%t:texture_2d<f32>, %s:sampler, %coords:vec2<f32>):vec4<f32> -> %b1 {
%b1 = block {
- %5:spirv.sampled_image = spirv.sampled_image %t, %s
+ %5:spirv.sampled_image<texture_2d<f32>> = spirv.sampled_image %t, %s
%6:vec4<f32> = spirv.image_sample_implicit_lod %5, %coords, 0u
ret %6
}
@@ -1483,7 +1483,7 @@
auto* expect = R"(
%foo = func(%t:texture_2d<f32>, %s:sampler, %coords:vec2<f32>):vec4<f32> -> %b1 {
%b1 = block {
- %5:spirv.sampled_image = spirv.sampled_image %t, %s
+ %5:spirv.sampled_image<texture_2d<f32>> = spirv.sampled_image %t, %s
%6:vec4<f32> = spirv.image_sample_implicit_lod %5, %coords, 8u, vec2<i32>(1i)
ret %6
}
@@ -1523,7 +1523,7 @@
auto* expect = R"(
%foo = func(%t:texture_2d_array<f32>, %s:sampler, %coords:vec2<f32>, %array_idx:i32):vec4<f32> -> %b1 {
%b1 = block {
- %6:spirv.sampled_image = spirv.sampled_image %t, %s
+ %6:spirv.sampled_image<texture_2d_array<f32>> = spirv.sampled_image %t, %s
%7:f32 = convert %array_idx
%8:vec3<f32> = construct %coords, %7
%9:vec4<f32> = spirv.image_sample_implicit_lod %6, %8, 8u, vec2<i32>(1i)
@@ -1565,7 +1565,7 @@
auto* expect = R"(
%foo = func(%t:texture_2d<f32>, %s:sampler, %coords:vec2<f32>, %bias:f32):vec4<f32> -> %b1 {
%b1 = block {
- %6:spirv.sampled_image = spirv.sampled_image %t, %s
+ %6:spirv.sampled_image<texture_2d<f32>> = spirv.sampled_image %t, %s
%7:vec4<f32> = spirv.image_sample_implicit_lod %6, %coords, 1u, %bias
ret %7
}
@@ -1605,7 +1605,7 @@
auto* expect = R"(
%foo = func(%t:texture_2d<f32>, %s:sampler, %coords:vec2<f32>, %bias:f32):vec4<f32> -> %b1 {
%b1 = block {
- %6:spirv.sampled_image = spirv.sampled_image %t, %s
+ %6:spirv.sampled_image<texture_2d<f32>> = spirv.sampled_image %t, %s
%7:vec4<f32> = spirv.image_sample_implicit_lod %6, %coords, 9u, %bias, vec2<i32>(1i)
ret %7
}
@@ -1646,7 +1646,7 @@
auto* expect = R"(
%foo = func(%t:texture_2d_array<f32>, %s:sampler, %coords:vec2<f32>, %array_idx:i32, %bias:f32):vec4<f32> -> %b1 {
%b1 = block {
- %7:spirv.sampled_image = spirv.sampled_image %t, %s
+ %7:spirv.sampled_image<texture_2d_array<f32>> = spirv.sampled_image %t, %s
%8:f32 = convert %array_idx
%9:vec3<f32> = construct %coords, %8
%10:vec4<f32> = spirv.image_sample_implicit_lod %7, %9, 9u, %bias, vec2<i32>(1i)
@@ -1687,7 +1687,7 @@
auto* expect = R"(
%foo = func(%t:texture_depth_2d, %s:sampler_comparison, %coords:vec2<f32>, %dref:f32):f32 -> %b1 {
%b1 = block {
- %6:spirv.sampled_image = spirv.sampled_image %t, %s
+ %6:spirv.sampled_image<texture_depth_2d> = spirv.sampled_image %t, %s
%7:f32 = spirv.image_sample_dref_implicit_lod %6, %coords, %dref, 0u
ret %7
}
@@ -1727,7 +1727,7 @@
auto* expect = R"(
%foo = func(%t:texture_depth_2d, %s:sampler_comparison, %coords:vec2<f32>, %dref:f32):f32 -> %b1 {
%b1 = block {
- %6:spirv.sampled_image = spirv.sampled_image %t, %s
+ %6:spirv.sampled_image<texture_depth_2d> = spirv.sampled_image %t, %s
%7:f32 = spirv.image_sample_dref_implicit_lod %6, %coords, %dref, 8u, vec2<i32>(1i)
ret %7
}
@@ -1768,7 +1768,7 @@
auto* expect = R"(
%foo = func(%t:texture_depth_2d_array, %s:sampler_comparison, %coords:vec2<f32>, %array_idx:i32, %bias:f32):f32 -> %b1 {
%b1 = block {
- %7:spirv.sampled_image = spirv.sampled_image %t, %s
+ %7:spirv.sampled_image<texture_depth_2d_array> = spirv.sampled_image %t, %s
%8:f32 = convert %array_idx
%9:vec3<f32> = construct %coords, %8
%10:f32 = spirv.image_sample_dref_implicit_lod %7, %9, %bias, 8u, vec2<i32>(1i)
@@ -1810,7 +1810,7 @@
auto* expect = R"(
%foo = func(%t:texture_depth_2d, %s:sampler_comparison, %coords:vec2<f32>, %dref:f32):f32 -> %b1 {
%b1 = block {
- %6:spirv.sampled_image = spirv.sampled_image %t, %s
+ %6:spirv.sampled_image<texture_depth_2d> = spirv.sampled_image %t, %s
%7:f32 = spirv.image_sample_dref_explicit_lod %6, %coords, %dref, 2u, 0.0f
ret %7
}
@@ -1850,7 +1850,7 @@
auto* expect = R"(
%foo = func(%t:texture_depth_2d, %s:sampler_comparison, %coords:vec2<f32>, %dref:f32):f32 -> %b1 {
%b1 = block {
- %6:spirv.sampled_image = spirv.sampled_image %t, %s
+ %6:spirv.sampled_image<texture_depth_2d> = spirv.sampled_image %t, %s
%7:f32 = spirv.image_sample_dref_explicit_lod %6, %coords, %dref, 10u, 0.0f, vec2<i32>(1i)
ret %7
}
@@ -1891,7 +1891,7 @@
auto* expect = R"(
%foo = func(%t:texture_depth_2d_array, %s:sampler_comparison, %coords:vec2<f32>, %array_idx:i32, %bias:f32):f32 -> %b1 {
%b1 = block {
- %7:spirv.sampled_image = spirv.sampled_image %t, %s
+ %7:spirv.sampled_image<texture_depth_2d_array> = spirv.sampled_image %t, %s
%8:f32 = convert %array_idx
%9:vec3<f32> = construct %coords, %8
%10:f32 = spirv.image_sample_dref_explicit_lod %7, %9, %bias, 10u, 0.0f, vec2<i32>(1i)
@@ -1934,7 +1934,7 @@
auto* expect = R"(
%foo = func(%t:texture_2d<f32>, %s:sampler, %coords:vec2<f32>, %ddx:vec2<f32>, %ddy:vec2<f32>):vec4<f32> -> %b1 {
%b1 = block {
- %7:spirv.sampled_image = spirv.sampled_image %t, %s
+ %7:spirv.sampled_image<texture_2d<f32>> = spirv.sampled_image %t, %s
%8:vec4<f32> = spirv.image_sample_explicit_lod %7, %coords, 4u, %ddx, %ddy
ret %8
}
@@ -1975,7 +1975,7 @@
auto* expect = R"(
%foo = func(%t:texture_2d<f32>, %s:sampler, %coords:vec2<f32>, %ddx:vec2<f32>, %ddy:vec2<f32>):vec4<f32> -> %b1 {
%b1 = block {
- %7:spirv.sampled_image = spirv.sampled_image %t, %s
+ %7:spirv.sampled_image<texture_2d<f32>> = spirv.sampled_image %t, %s
%8:vec4<f32> = spirv.image_sample_explicit_lod %7, %coords, 12u, %ddx, %ddy, vec2<i32>(1i)
ret %8
}
@@ -2017,7 +2017,7 @@
auto* expect = R"(
%foo = func(%t:texture_2d_array<f32>, %s:sampler, %coords:vec2<f32>, %array_idx:i32, %ddx:vec2<f32>, %ddy:vec2<f32>):vec4<f32> -> %b1 {
%b1 = block {
- %8:spirv.sampled_image = spirv.sampled_image %t, %s
+ %8:spirv.sampled_image<texture_2d_array<f32>> = spirv.sampled_image %t, %s
%9:f32 = convert %array_idx
%10:vec3<f32> = construct %coords, %9
%11:vec4<f32> = spirv.image_sample_explicit_lod %8, %10, 12u, %ddx, %ddy, vec2<i32>(1i)
@@ -2059,7 +2059,7 @@
auto* expect = R"(
%foo = func(%t:texture_2d<f32>, %s:sampler, %coords:vec2<f32>, %lod:f32):vec4<f32> -> %b1 {
%b1 = block {
- %6:spirv.sampled_image = spirv.sampled_image %t, %s
+ %6:spirv.sampled_image<texture_2d<f32>> = spirv.sampled_image %t, %s
%7:vec4<f32> = spirv.image_sample_explicit_lod %6, %coords, 2u, %lod
ret %7
}
@@ -2099,7 +2099,7 @@
auto* expect = R"(
%foo = func(%t:texture_2d<f32>, %s:sampler, %coords:vec2<f32>, %lod:f32):vec4<f32> -> %b1 {
%b1 = block {
- %6:spirv.sampled_image = spirv.sampled_image %t, %s
+ %6:spirv.sampled_image<texture_2d<f32>> = spirv.sampled_image %t, %s
%7:vec4<f32> = spirv.image_sample_explicit_lod %6, %coords, 10u, %lod, vec2<i32>(1i)
ret %7
}
@@ -2140,7 +2140,7 @@
auto* expect = R"(
%foo = func(%t:texture_2d_array<f32>, %s:sampler, %coords:vec2<f32>, %array_idx:i32, %lod:f32):vec4<f32> -> %b1 {
%b1 = block {
- %7:spirv.sampled_image = spirv.sampled_image %t, %s
+ %7:spirv.sampled_image<texture_2d_array<f32>> = spirv.sampled_image %t, %s
%8:f32 = convert %array_idx
%9:vec3<f32> = construct %coords, %8
%10:vec4<f32> = spirv.image_sample_explicit_lod %7, %9, 10u, %lod, vec2<i32>(1i)
@@ -2182,7 +2182,7 @@
auto* expect = R"(
%foo = func(%component:i32, %t:texture_2d<f32>, %s:sampler, %coords:vec2<f32>):vec4<f32> -> %b1 {
%b1 = block {
- %6:spirv.sampled_image = spirv.sampled_image %t, %s
+ %6:spirv.sampled_image<texture_2d<f32>> = spirv.sampled_image %t, %s
%7:vec4<f32> = spirv.image_gather %6, %coords, %component, 0u
ret %7
}
@@ -2222,7 +2222,7 @@
auto* expect = R"(
%foo = func(%t:texture_2d<f32>, %s:sampler, %component:i32, %coords:vec2<f32>):vec4<f32> -> %b1 {
%b1 = block {
- %6:spirv.sampled_image = spirv.sampled_image %t, %s
+ %6:spirv.sampled_image<texture_2d<f32>> = spirv.sampled_image %t, %s
%7:vec4<f32> = spirv.image_gather %6, %coords, %component, 8u, vec2<i32>(1i)
ret %7
}
@@ -2263,7 +2263,7 @@
auto* expect = R"(
%foo = func(%t:texture_2d_array<f32>, %s:sampler, %component:i32, %coords:vec2<f32>, %array_idx:i32):vec4<f32> -> %b1 {
%b1 = block {
- %7:spirv.sampled_image = spirv.sampled_image %t, %s
+ %7:spirv.sampled_image<texture_2d_array<f32>> = spirv.sampled_image %t, %s
%8:f32 = convert %array_idx
%9:vec3<f32> = construct %coords, %8
%10:vec4<f32> = spirv.image_gather %7, %9, %component, 8u, vec2<i32>(1i)
@@ -2303,7 +2303,7 @@
auto* expect = R"(
%foo = func(%t:texture_depth_2d, %s:sampler, %coords:vec2<f32>):vec4<f32> -> %b1 {
%b1 = block {
- %5:spirv.sampled_image = spirv.sampled_image %t, %s
+ %5:spirv.sampled_image<texture_depth_2d> = spirv.sampled_image %t, %s
%6:vec4<f32> = spirv.image_gather %5, %coords, 0u, 0u
ret %6
}
@@ -2343,7 +2343,7 @@
auto* expect = R"(
%foo = func(%t:texture_depth_2d, %s:sampler_comparison, %coords:vec2<f32>, %depth:f32):vec4<f32> -> %b1 {
%b1 = block {
- %6:spirv.sampled_image = spirv.sampled_image %t, %s
+ %6:spirv.sampled_image<texture_depth_2d> = spirv.sampled_image %t, %s
%7:vec4<f32> = spirv.image_dref_gather %6, %coords, %depth, 0u
ret %7
}
@@ -2383,7 +2383,7 @@
auto* expect = R"(
%foo = func(%t:texture_depth_2d, %s:sampler_comparison, %coords:vec2<f32>, %depth:f32):vec4<f32> -> %b1 {
%b1 = block {
- %6:spirv.sampled_image = spirv.sampled_image %t, %s
+ %6:spirv.sampled_image<texture_depth_2d> = spirv.sampled_image %t, %s
%7:vec4<f32> = spirv.image_dref_gather %6, %coords, %depth, 8u, vec2<i32>(1i)
ret %7
}
@@ -2424,7 +2424,7 @@
auto* expect = R"(
%foo = func(%t:texture_depth_2d_array, %s:sampler_comparison, %coords:vec2<f32>, %array_idx:u32, %depth:f32):vec4<f32> -> %b1 {
%b1 = block {
- %7:spirv.sampled_image = spirv.sampled_image %t, %s
+ %7:spirv.sampled_image<texture_depth_2d_array> = spirv.sampled_image %t, %s
%8:f32 = convert %array_idx
%9:vec3<f32> = construct %coords, %8
%10:vec4<f32> = spirv.image_dref_gather %7, %9, %depth, 0u
diff --git a/src/tint/lang/wgsl/ast/transform/BUILD.bazel b/src/tint/lang/wgsl/ast/transform/BUILD.bazel
index 6229a94..576a31a 100644
--- a/src/tint/lang/wgsl/ast/transform/BUILD.bazel
+++ b/src/tint/lang/wgsl/ast/transform/BUILD.bazel
@@ -60,6 +60,7 @@
"preserve_padding.cc",
"promote_initializers_to_let.cc",
"promote_side_effects_to_decl.cc",
+ "push_constant_helper.cc",
"remove_phonies.cc",
"remove_unreachable_statements.cc",
"renamer.cc",
@@ -96,6 +97,7 @@
"preserve_padding.h",
"promote_initializers_to_let.h",
"promote_side_effects_to_decl.h",
+ "push_constant_helper.h",
"remove_phonies.h",
"remove_unreachable_statements.h",
"renamer.h",
@@ -165,6 +167,7 @@
"preserve_padding_test.cc",
"promote_initializers_to_let_test.cc",
"promote_side_effects_to_decl_test.cc",
+ "push_constant_helper_test.cc",
"remove_phonies_test.cc",
"remove_unreachable_statements_test.cc",
"renamer_test.cc",
diff --git a/src/tint/lang/wgsl/ast/transform/BUILD.cmake b/src/tint/lang/wgsl/ast/transform/BUILD.cmake
index 068369c..84dc975 100644
--- a/src/tint/lang/wgsl/ast/transform/BUILD.cmake
+++ b/src/tint/lang/wgsl/ast/transform/BUILD.cmake
@@ -81,6 +81,8 @@
lang/wgsl/ast/transform/promote_initializers_to_let.h
lang/wgsl/ast/transform/promote_side_effects_to_decl.cc
lang/wgsl/ast/transform/promote_side_effects_to_decl.h
+ lang/wgsl/ast/transform/push_constant_helper.cc
+ lang/wgsl/ast/transform/push_constant_helper.h
lang/wgsl/ast/transform/remove_phonies.cc
lang/wgsl/ast/transform/remove_phonies.h
lang/wgsl/ast/transform/remove_unreachable_statements.cc
@@ -165,6 +167,7 @@
lang/wgsl/ast/transform/preserve_padding_test.cc
lang/wgsl/ast/transform/promote_initializers_to_let_test.cc
lang/wgsl/ast/transform/promote_side_effects_to_decl_test.cc
+ lang/wgsl/ast/transform/push_constant_helper_test.cc
lang/wgsl/ast/transform/remove_phonies_test.cc
lang/wgsl/ast/transform/remove_unreachable_statements_test.cc
lang/wgsl/ast/transform/renamer_test.cc
diff --git a/src/tint/lang/wgsl/ast/transform/BUILD.gn b/src/tint/lang/wgsl/ast/transform/BUILD.gn
index b94227e..6624981 100644
--- a/src/tint/lang/wgsl/ast/transform/BUILD.gn
+++ b/src/tint/lang/wgsl/ast/transform/BUILD.gn
@@ -86,6 +86,8 @@
"promote_initializers_to_let.h",
"promote_side_effects_to_decl.cc",
"promote_side_effects_to_decl.h",
+ "push_constant_helper.cc",
+ "push_constant_helper.h",
"remove_phonies.cc",
"remove_phonies.h",
"remove_unreachable_statements.cc",
@@ -166,6 +168,7 @@
"preserve_padding_test.cc",
"promote_initializers_to_let_test.cc",
"promote_side_effects_to_decl_test.cc",
+ "push_constant_helper_test.cc",
"remove_phonies_test.cc",
"remove_unreachable_statements_test.cc",
"renamer_test.cc",
diff --git a/src/tint/lang/wgsl/ast/transform/offset_first_index.cc b/src/tint/lang/wgsl/ast/transform/offset_first_index.cc
index 143b43f..9779347 100644
--- a/src/tint/lang/wgsl/ast/transform/offset_first_index.cc
+++ b/src/tint/lang/wgsl/ast/transform/offset_first_index.cc
@@ -33,6 +33,7 @@
#include "src/tint/lang/core/builtin_value.h"
#include "src/tint/lang/core/fluent_types.h"
+#include "src/tint/lang/wgsl/ast/transform/push_constant_helper.h"
#include "src/tint/lang/wgsl/program/clone_context.h"
#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/resolver/resolve.h"
@@ -78,19 +79,19 @@
// Traverse the AST scanning for builtin accesses via variables (includes
// parameters) or structure member accesses.
- for (auto* node : ctx.src->ASTNodes().Objects()) {
+ for (auto* node : src.ASTNodes().Objects()) {
if (auto* var = node->As<Variable>()) {
for (auto* attr : var->attributes) {
if (auto* builtin_attr = attr->As<BuiltinAttribute>()) {
core::BuiltinValue builtin = src.Sem().Get(builtin_attr)->Value();
if (builtin == core::BuiltinValue::kVertexIndex && cfg &&
cfg->first_vertex_offset.has_value()) {
- auto* sem_var = ctx.src->Sem().Get(var);
+ auto* sem_var = src.Sem().Get(var);
builtin_vars.emplace(sem_var, kFirstVertexName);
}
if (builtin == core::BuiltinValue::kInstanceIndex && cfg &&
cfg->first_instance_offset.has_value()) {
- auto* sem_var = ctx.src->Sem().Get(var);
+ auto* sem_var = src.Sem().Get(var);
builtin_vars.emplace(sem_var, kFirstInstanceName);
}
}
@@ -102,12 +103,12 @@
core::BuiltinValue builtin = src.Sem().Get(builtin_attr)->Value();
if (builtin == core::BuiltinValue::kVertexIndex && cfg &&
cfg->first_vertex_offset.has_value()) {
- auto* sem_mem = ctx.src->Sem().Get(member);
+ auto* sem_mem = src.Sem().Get(member);
builtin_members.emplace(sem_mem, kFirstVertexName);
}
if (builtin == core::BuiltinValue::kInstanceIndex && cfg &&
cfg->first_instance_offset.has_value()) {
- auto* sem_mem = ctx.src->Sem().Get(member);
+ auto* sem_mem = src.Sem().Get(member);
builtin_members.emplace(sem_mem, kFirstInstanceName);
}
}
@@ -117,66 +118,17 @@
Vector<const ast::StructMember*, 8> members;
- const ast::Variable* push_constants_var = nullptr;
-
- // Find first push_constant.
- for (auto* global : src.AST().GlobalVariables()) {
- if (auto* var = global->As<ast::Var>()) {
- auto* v = src.Sem().Get(var);
- if (v->AddressSpace() == core::AddressSpace::kPushConstant) {
- push_constants_var = var;
- auto* str = v->Type()->UnwrapRef()->As<sem::Struct>();
- if (!str) {
- TINT_ICE() << "expected var<push_constant> type to be struct. Was "
- "AddBlockAttribute run?";
- }
- for (auto* member : str->Members()) {
- members.Push(ctx.CloneWithoutTransform(member->Declaration()));
- }
- }
- }
- }
+ PushConstantHelper helper(ctx);
// Add push constant members and calculate byte offsets
if (cfg->first_vertex_offset.has_value()) {
- members.Push(b.Member(kFirstVertexName, b.ty.u32(),
- Vector{b.MemberOffset(AInt(*cfg->first_vertex_offset))}));
+ helper.InsertMember(kFirstVertexName, b.ty.u32(), *cfg->first_vertex_offset);
}
if (cfg->first_instance_offset.has_value()) {
- members.Push(b.Member(kFirstInstanceName, b.ty.u32(),
- Vector{b.MemberOffset(AInt(*cfg->first_instance_offset))}));
+ helper.InsertMember(kFirstInstanceName, b.ty.u32(), *cfg->first_instance_offset);
}
- auto new_struct = b.Structure(b.Symbols().New("PushConstants"), std::move(members));
-
- Symbol buffer_name;
-
- // If this is the first use of push constants, create a global to hold them.
- if (!push_constants_var) {
- b.Enable(wgsl::Extension::kChromiumExperimentalPushConstant);
-
- buffer_name = b.Symbols().New("push_constants");
- b.GlobalVar(buffer_name, b.ty.Of(new_struct), core::AddressSpace::kPushConstant);
- } else {
- buffer_name = ctx.Clone(push_constants_var->name->symbol);
- }
-
- // Replace all variable users of the old struct with the new struct.
- if (push_constants_var) {
- ctx.ReplaceAll([&](const ast::Variable* var) -> const ast::Variable* {
- if (var->type == push_constants_var->type) {
- if (var->As<ast::Parameter>()) {
- return ctx.dst->Param(ctx.Clone(var->name->symbol), b.ty.Of(new_struct),
- ctx.Clone(var->attributes));
- } else {
- return ctx.dst->Var(ctx.Clone(var->name->symbol), b.ty.Of(new_struct),
- ctx.Clone(var->attributes),
- core::AddressSpace::kPushConstant);
- }
- }
- return nullptr;
- });
- }
+ Symbol buffer_name = helper.Run();
// Fix up all references to the builtins with the offsets
ctx.ReplaceAll([&](const Expression* expr) -> const Expression* {
diff --git a/src/tint/lang/wgsl/ast/transform/offset_first_index_test.cc b/src/tint/lang/wgsl/ast/transform/offset_first_index_test.cc
index 09dd505..2035e74 100644
--- a/src/tint/lang/wgsl/ast/transform/offset_first_index_test.cc
+++ b/src/tint/lang/wgsl/ast/transform/offset_first_index_test.cc
@@ -423,6 +423,61 @@
EXPECT_EQ(expect, str(got));
}
+TEST_F(OffsetFirstIndexTest, BasicModuleBothIndexes_OffsetsOutOfOrder) {
+ auto* src = R"(
+@vertex
+fn entry(inputs : Inputs) -> @builtin(position) vec4<f32> {
+ test(inputs.instance_idx, inputs.vert_idx);
+ return vec4<f32>();
+}
+
+struct Inputs {
+ @builtin(vertex_index) vert_idx : u32,
+ @builtin(instance_index) instance_idx : u32,
+};
+
+fn test(instance_idx : u32, vert_idx : u32) -> u32 {
+ return instance_idx + vert_idx;
+}
+)";
+
+ auto* expect = R"(
+enable chromium_experimental_push_constant;
+
+struct PushConstants {
+ /* @offset(0) */
+ first_instance : u32,
+ /* @offset(4) */
+ first_vertex : u32,
+}
+
+var<push_constant> push_constants : PushConstants;
+
+@vertex
+fn entry(inputs : Inputs) -> @builtin(position) vec4<f32> {
+ test((bitcast<u32>(inputs.instance_idx) + push_constants.first_instance), (bitcast<u32>(inputs.vert_idx) + push_constants.first_vertex));
+ return vec4<f32>();
+}
+
+struct Inputs {
+ @builtin(vertex_index)
+ vert_idx : u32,
+ @builtin(instance_index)
+ instance_idx : u32,
+}
+
+fn test(instance_idx : u32, vert_idx : u32) -> u32 {
+ return (instance_idx + vert_idx);
+}
+)";
+
+ DataMap config;
+ config.Add<OffsetFirstIndex::Config>(4, 0);
+ auto got = Run<OffsetFirstIndex>(src, std::move(config));
+
+ EXPECT_EQ(expect, str(got));
+}
+
TEST_F(OffsetFirstIndexTest, BasicModuleBothIndexesVertexDisabled) {
auto* src = R"(
fn test(instance_idx : u32, vert_idx : u32) -> u32 {
diff --git a/src/tint/lang/wgsl/ast/transform/push_constant_helper.cc b/src/tint/lang/wgsl/ast/transform/push_constant_helper.cc
new file mode 100644
index 0000000..af6fe57
--- /dev/null
+++ b/src/tint/lang/wgsl/ast/transform/push_constant_helper.cc
@@ -0,0 +1,113 @@
+// Copyright 2024 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/wgsl/ast/transform/push_constant_helper.h"
+
+#include <utility>
+
+#include "src/tint/lang/wgsl/ast/module.h"
+#include "src/tint/lang/wgsl/ast/var.h"
+#include "src/tint/lang/wgsl/program/clone_context.h"
+#include "src/tint/lang/wgsl/program/program.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
+#include "src/tint/lang/wgsl/sem/struct.h"
+#include "src/tint/lang/wgsl/sem/variable.h"
+
+namespace tint::ast::transform {
+
+PushConstantHelper::PushConstantHelper(program::CloneContext& c) : ctx(c) {
+ // Find first existing push_constant, if any.
+ for (auto* global : ctx.src->AST().GlobalVariables()) {
+ if (auto* var = global->As<ast::Var>()) {
+ auto* v = ctx.src->Sem().Get(var);
+ if (v->AddressSpace() == core::AddressSpace::kPushConstant) {
+ push_constants_var = var;
+ auto* str = v->Type()->UnwrapRef()->As<sem::Struct>();
+ if (TINT_UNLIKELY(!str)) {
+ TINT_ICE() << "expected var<push_constant> type to be struct. Was "
+ "AddBlockAttribute run?";
+ }
+ // Clone all members from the existing block and insert them into the map.
+ for (auto* member : str->Members()) {
+ member_map[member->Offset()] = ctx.CloneWithoutTransform(member->Declaration());
+ }
+ break;
+ }
+ }
+ }
+}
+
+void PushConstantHelper::InsertMember(const char* name, ast::Type type, uint32_t offset) {
+ auto& member = member_map[offset];
+ if (TINT_UNLIKELY(member != nullptr)) {
+ ctx.dst->Diagnostics().AddError(diag::System::Transform, "struct member offset collision");
+ }
+ member = ctx.dst->Member(name, type, Vector{ctx.dst->MemberOffset(core::AInt(offset))});
+}
+
+Symbol PushConstantHelper::Run() {
+ Vector<const tint::ast::StructMember*, 8> members;
+ for (auto i : member_map) {
+ members.Push(i.second);
+ }
+
+ new_struct = ctx.dst->Structure(ctx.dst->Symbols().New("PushConstants"), std::move(members));
+
+ Symbol buffer_name;
+
+ // If this is the first use of push constants, create a global to hold them.
+ if (!push_constants_var) {
+ ctx.dst->Enable(wgsl::Extension::kChromiumExperimentalPushConstant);
+
+ buffer_name = ctx.dst->Symbols().New("push_constants");
+ ctx.dst->GlobalVar(buffer_name, ctx.dst->ty.Of(new_struct),
+ core::AddressSpace::kPushConstant);
+ } else {
+ buffer_name = ctx.Clone(push_constants_var->name->symbol);
+
+ // Replace all variable users of the old struct with the new struct.
+ ctx.ReplaceAll([this](const ast::Variable* var) -> const ast::Variable* {
+ if (ctx.src->Sem().Get(var)->AddressSpace() == core::AddressSpace::kPushConstant) {
+ if (var->As<ast::Parameter>()) {
+ return ctx.dst->Param(ctx.Clone(var->name->symbol), ctx.dst->ty.Of(new_struct),
+ ctx.Clone(var->attributes));
+ } else {
+ return ctx.dst->Var(ctx.Clone(var->name->symbol), ctx.dst->ty.Of(new_struct),
+ ctx.Clone(var->attributes),
+ core::AddressSpace::kPushConstant);
+ }
+ }
+ return nullptr;
+ });
+ }
+
+ return buffer_name;
+}
+
+PushConstantHelper::~PushConstantHelper() = default;
+
+} // namespace tint::ast::transform
diff --git a/src/tint/lang/wgsl/ast/transform/push_constant_helper.h b/src/tint/lang/wgsl/ast/transform/push_constant_helper.h
new file mode 100644
index 0000000..b435162
--- /dev/null
+++ b/src/tint/lang/wgsl/ast/transform/push_constant_helper.h
@@ -0,0 +1,94 @@
+// Copyright 2024 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_WGSL_AST_TRANSFORM_PUSH_CONSTANT_HELPER_H_
+#define SRC_TINT_LANG_WGSL_AST_TRANSFORM_PUSH_CONSTANT_HELPER_H_
+
+#include <map>
+
+#include "src/tint/utils/symbol/symbol.h"
+
+namespace tint::program {
+class CloneContext;
+}
+namespace tint::ast {
+struct Type;
+class Struct;
+class StructMember;
+class Variable;
+} // namespace tint::ast
+namespace tint::ast::transform {
+
+/// A helper that manages the finding, reading, and modifying of push_constant blocks.
+/// This is used by transforms that wish to add new data to the single push_constant block
+/// which is allowed per entry point.
+///
+/// Usage:
+/// 1) Instantiate the helper with a CloneContext in which nodes are to be created.
+/// 2) Add new data members to the push_context block with InsertMember().
+/// 3) Call Run() to insert the push_constant block into the AST and remove the old block.
+/// 4) Ensure that the helper lives until the CloneContext's Clone() method is called.
+class PushConstantHelper {
+ public:
+ /// Constructor
+ /// The caller must ensure that the helper lives until the passed-in CloneContext's Clone()
+ /// method is called.
+ explicit PushConstantHelper(program::CloneContext& c);
+
+ /// Destructor
+ ~PushConstantHelper();
+
+ /// Insert a new data member into the push_constant block. Members can be inserted in
+ /// any order, and will be written to the struct in sorted order. Note that collisions
+ /// between names are *not* currently detected.
+ /// @param name the name of the new struct member
+ /// @param type the type of the new struct member
+ /// @param offset the offset in bytes of the new struct member
+ void InsertMember(const char* name, ast::Type type, uint32_t offset);
+
+ /// Create the new PushConstant struct. Change all references from the old struct to the
+ /// new one.
+ /// @returns the name of the push_constant global variable holding the new block.
+ Symbol Run();
+
+ private:
+ /// A map from byte offset to struct member of all the push constant members.
+ std::map<uint32_t, const tint::ast::StructMember*> member_map;
+
+ /// The clone context to be used for node creation.
+ program::CloneContext& ctx;
+
+ /// The new PushConstant struct type.
+ const ast::Struct* new_struct = nullptr;
+
+ /// The old push_constant global variable, if any.
+ const ast::Variable* push_constants_var = nullptr;
+};
+
+} // namespace tint::ast::transform
+
+#endif // SRC_TINT_LANG_WGSL_AST_TRANSFORM_PUSH_CONSTANT_HELPER_H_
diff --git a/src/tint/lang/wgsl/ast/transform/push_constant_helper_test.cc b/src/tint/lang/wgsl/ast/transform/push_constant_helper_test.cc
new file mode 100644
index 0000000..0a0b5cd
--- /dev/null
+++ b/src/tint/lang/wgsl/ast/transform/push_constant_helper_test.cc
@@ -0,0 +1,343 @@
+// Copyright 2024 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/wgsl/ast/transform/push_constant_helper.h"
+
+#include <memory>
+
+#include "src/tint/lang/wgsl/ast/transform/helper_test.h"
+#include "src/tint/lang/wgsl/program/clone_context.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
+#include "src/tint/lang/wgsl/resolver/resolve.h"
+
+namespace tint::ast::transform {
+namespace {
+
+class PushConstantHelperTest : public testing::Test {
+ public:
+ Program Parse(const char* s) {
+ wgsl::reader::Options options;
+ options.allowed_features = wgsl::AllowedFeatures::Everything();
+ auto file = std::make_unique<Source::File>("test", s);
+ return wgsl::reader::Parse(file.get(), options);
+ }
+};
+
+TEST_F(PushConstantHelperTest, InsertMembersInOrder) {
+ auto* s = R"()";
+ auto* expect = R"(
+enable chromium_experimental_push_constant;
+
+struct PushConstants {
+ /* @offset(0) */
+ foo : f32,
+ /* @offset(4) */
+ bar : f32,
+}
+
+var<push_constant> push_constants : PushConstants;
+)";
+
+ auto program = Parse(s);
+ ASSERT_TRUE(program.IsValid());
+ ProgramBuilder b;
+ program::CloneContext ctx{&b, &program, /* auto_clone_symbols */ true};
+ PushConstantHelper helper(ctx);
+
+ helper.InsertMember("foo", b.ty.f32(), 0);
+ helper.InsertMember("bar", b.ty.f32(), 4);
+
+ Symbol buffer_name = helper.Run();
+
+ EXPECT_EQ(buffer_name.Name(), "push_constants");
+ ctx.Clone();
+ Program output = resolver::Resolve(b);
+ ASSERT_TRUE(output.IsValid());
+ EXPECT_EQ(expect, str(output));
+}
+
+TEST_F(PushConstantHelperTest, InsertMembersOutOfOrder) {
+ auto* s = R"()";
+ auto* expect = R"(
+enable chromium_experimental_push_constant;
+
+struct PushConstants {
+ /* @offset(0) */
+ bar : f32,
+ /* @offset(4) */
+ foo : f32,
+}
+
+var<push_constant> push_constants : PushConstants;
+)";
+
+ auto program = Parse(s);
+ ASSERT_TRUE(program.IsValid());
+ ProgramBuilder b;
+ program::CloneContext ctx{&b, &program, /* auto_clone_symbols */ true};
+ PushConstantHelper helper(ctx);
+
+ helper.InsertMember("foo", b.ty.f32(), 4);
+ helper.InsertMember("bar", b.ty.f32(), 0);
+
+ Symbol buffer_name = helper.Run();
+
+ EXPECT_EQ(buffer_name.Name(), "push_constants");
+ ctx.Clone();
+ Program output = resolver::Resolve(b);
+ ASSERT_TRUE(output.IsValid());
+ EXPECT_EQ(expect, str(output));
+}
+
+TEST_F(PushConstantHelperTest, InsertMembersBeforeAndAfter) {
+ auto* s = R"()";
+ auto* expect = R"(
+enable chromium_experimental_push_constant;
+
+struct PushConstants {
+ /* @offset(0) */
+ foo : f32,
+ /* @offset(4) */
+ bar : f32,
+ /* @offset(8) */
+ baz : f32,
+}
+
+var<push_constant> push_constants : PushConstants;
+)";
+
+ auto program = Parse(s);
+ ASSERT_TRUE(program.IsValid());
+ ProgramBuilder b;
+ program::CloneContext ctx{&b, &program, /* auto_clone_symbols */ true};
+ PushConstantHelper helper(ctx);
+
+ helper.InsertMember("bar", b.ty.f32(), 4);
+ helper.InsertMember("foo", b.ty.f32(), 0);
+ helper.InsertMember("baz", b.ty.f32(), 8);
+
+ Symbol buffer_name = helper.Run();
+
+ EXPECT_EQ(buffer_name.Name(), "push_constants");
+ ctx.Clone();
+ Program output = resolver::Resolve(b);
+ ASSERT_TRUE(output.IsValid());
+ EXPECT_EQ(expect, str(output));
+}
+
+TEST_F(PushConstantHelperTest, InsertMembersThreeInReverse) {
+ auto* s = R"()";
+ auto* expect = R"(
+enable chromium_experimental_push_constant;
+
+struct PushConstants {
+ /* @offset(0) */
+ foo : f32,
+ /* @offset(4) */
+ bar : f32,
+ /* @offset(8) */
+ baz : f32,
+}
+
+var<push_constant> push_constants : PushConstants;
+)";
+
+ auto program = Parse(s);
+ ASSERT_TRUE(program.IsValid());
+ ProgramBuilder b;
+ program::CloneContext ctx{&b, &program, /* auto_clone_symbols */ true};
+ PushConstantHelper helper(ctx);
+
+ helper.InsertMember("baz", b.ty.f32(), 8);
+ helper.InsertMember("bar", b.ty.f32(), 4);
+ helper.InsertMember("foo", b.ty.f32(), 0);
+
+ Symbol buffer_name = helper.Run();
+
+ EXPECT_EQ(buffer_name.Name(), "push_constants");
+ ctx.Clone();
+ Program output = resolver::Resolve(b);
+ ASSERT_TRUE(output.IsValid());
+ EXPECT_EQ(expect, str(output));
+}
+
+TEST_F(PushConstantHelperTest, MemberOffsetCollision) {
+ auto* s = R"()";
+ auto program = Parse(s);
+ ASSERT_TRUE(program.IsValid());
+ ProgramBuilder b;
+ program::CloneContext ctx{&b, &program, /* auto_clone_symbols */ true};
+ PushConstantHelper helper(ctx);
+
+ helper.InsertMember("foo", b.ty.f32(), 0);
+ helper.InsertMember("bar", b.ty.f32(), 0);
+
+ Symbol buffer_name = helper.Run();
+
+ ctx.Clone();
+ Program output = resolver::Resolve(b);
+ ASSERT_FALSE(output.IsValid());
+}
+
+TEST_F(PushConstantHelperTest, ExistingPushConstantBlockOneNew) {
+ auto* src = R"(
+enable chromium_experimental_push_constant;
+
+struct S {
+ a : f32,
+}
+
+var<push_constant> constants : S;
+
+@fragment fn main() -> @location(0) f32 {
+ return constants.a;
+}
+ )";
+ auto* expect = R"(
+enable chromium_experimental_push_constant;
+
+struct PushConstants {
+ a : f32,
+ /* @offset(4) */
+ foo : f32,
+}
+
+struct S {
+ a : f32,
+}
+
+var<push_constant> constants : PushConstants;
+
+@fragment
+fn main() -> @location(0) f32 {
+ return constants.a;
+}
+)";
+
+ auto program = Parse(src);
+ ASSERT_TRUE(program.IsValid()) << program.Diagnostics();
+ ProgramBuilder b;
+ program::CloneContext ctx{&b, &program, /* auto_clone_symbols */ true};
+ PushConstantHelper helper(ctx);
+
+ helper.InsertMember("foo", b.ty.f32(), 4);
+
+ Symbol buffer_name = helper.Run();
+
+ EXPECT_EQ(buffer_name.Name(), "constants");
+ ctx.Clone();
+ Program output = resolver::Resolve(b);
+ EXPECT_EQ(expect, str(output));
+}
+
+TEST_F(PushConstantHelperTest, ExistingPushConstantBlockTwoNewOutOfOrder) {
+ auto* src = R"(
+enable chromium_experimental_push_constant;
+
+struct S {
+ a : f32,
+}
+
+var<push_constant> constants : S;
+
+@fragment fn main() -> @location(0) f32 {
+ return constants.a;
+}
+ )";
+ auto* expect = R"(
+enable chromium_experimental_push_constant;
+
+struct PushConstants {
+ a : f32,
+ /* @offset(4) */
+ bar : f32,
+ /* @offset(8) */
+ foo : f32,
+}
+
+struct S {
+ a : f32,
+}
+
+var<push_constant> constants : PushConstants;
+
+@fragment
+fn main() -> @location(0) f32 {
+ return constants.a;
+}
+)";
+
+ auto program = Parse(src);
+ ASSERT_TRUE(program.IsValid()) << program.Diagnostics();
+ ProgramBuilder b;
+ program::CloneContext ctx{&b, &program, /* auto_clone_symbols */ true};
+ PushConstantHelper helper(ctx);
+
+ helper.InsertMember("foo", b.ty.f32(), 8);
+ helper.InsertMember("bar", b.ty.f32(), 4);
+
+ Symbol buffer_name = helper.Run();
+
+ EXPECT_EQ(buffer_name.Name(), "constants");
+ ctx.Clone();
+ Program output = resolver::Resolve(b);
+ EXPECT_EQ(expect, str(output));
+}
+
+TEST_F(PushConstantHelperTest, ExistingPushConstantBlockCollisionWithExisting) {
+ auto* src = R"(
+enable chromium_experimental_push_constant;
+
+struct S {
+ a : f32,
+}
+
+var<push_constant> constants : S;
+
+@fragment fn main() -> @location(0) f32 {
+ return constants.a;
+}
+ )";
+
+ auto program = Parse(src);
+ ASSERT_TRUE(program.IsValid()) << program.Diagnostics();
+ ProgramBuilder b;
+ program::CloneContext ctx{&b, &program, /* auto_clone_symbols */ true};
+ PushConstantHelper helper(ctx);
+
+ helper.InsertMember("foo", b.ty.f32(), 0);
+
+ Symbol buffer_name = helper.Run();
+
+ EXPECT_EQ(buffer_name.Name(), "constants");
+ ctx.Clone();
+ Program output = resolver::Resolve(b);
+ EXPECT_FALSE(output.IsValid());
+}
+
+} // namespace
+} // namespace tint::ast::transform
diff --git a/src/tint/lang/wgsl/intrinsic/BUILD.bazel b/src/tint/lang/wgsl/intrinsic/BUILD.bazel
index bfb10a6..46b4014 100644
--- a/src/tint/lang/wgsl/intrinsic/BUILD.bazel
+++ b/src/tint/lang/wgsl/intrinsic/BUILD.bazel
@@ -69,4 +69,44 @@
copts = COPTS,
visibility = ["//visibility:public"],
)
+cc_library(
+ name = "test",
+ alwayslink = True,
+ srcs = [
+ "table_test.cc",
+ ],
+ deps = [
+ "//src/tint/api/common",
+ "//src/tint/lang/core",
+ "//src/tint/lang/core/constant",
+ "//src/tint/lang/core/intrinsic",
+ "//src/tint/lang/core/type",
+ "//src/tint/lang/core/type:test",
+ "//src/tint/lang/wgsl",
+ "//src/tint/lang/wgsl/ast",
+ "//src/tint/lang/wgsl/common",
+ "//src/tint/lang/wgsl/features",
+ "//src/tint/lang/wgsl/intrinsic",
+ "//src/tint/lang/wgsl/program",
+ "//src/tint/lang/wgsl/resolver",
+ "//src/tint/lang/wgsl/resolver:test",
+ "//src/tint/lang/wgsl/sem",
+ "//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",
+ ],
+ copts = COPTS,
+ visibility = ["//visibility:public"],
+)
diff --git a/src/tint/lang/wgsl/intrinsic/BUILD.cmake b/src/tint/lang/wgsl/intrinsic/BUILD.cmake
index 275c8b0..b40aa9b 100644
--- a/src/tint/lang/wgsl/intrinsic/BUILD.cmake
+++ b/src/tint/lang/wgsl/intrinsic/BUILD.cmake
@@ -65,3 +65,46 @@
tint_utils_text
tint_utils_traits
)
+
+################################################################################
+# Target: tint_lang_wgsl_intrinsic_test
+# Kind: test
+################################################################################
+tint_add_target(tint_lang_wgsl_intrinsic_test test
+ lang/wgsl/intrinsic/table_test.cc
+)
+
+tint_target_add_dependencies(tint_lang_wgsl_intrinsic_test test
+ tint_api_common
+ tint_lang_core
+ tint_lang_core_constant
+ tint_lang_core_intrinsic
+ tint_lang_core_type
+ tint_lang_core_type_test
+ tint_lang_wgsl
+ tint_lang_wgsl_ast
+ tint_lang_wgsl_common
+ tint_lang_wgsl_features
+ tint_lang_wgsl_intrinsic
+ tint_lang_wgsl_program
+ tint_lang_wgsl_resolver
+ tint_lang_wgsl_resolver_test
+ tint_lang_wgsl_sem
+ 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_wgsl_intrinsic_test test
+ "gtest"
+)
diff --git a/src/tint/lang/wgsl/intrinsic/BUILD.gn b/src/tint/lang/wgsl/intrinsic/BUILD.gn
index bae4bd0..0571b28 100644
--- a/src/tint/lang/wgsl/intrinsic/BUILD.gn
+++ b/src/tint/lang/wgsl/intrinsic/BUILD.gn
@@ -38,6 +38,10 @@
import("${tint_src_dir}/tint.gni")
+if (tint_build_unittests || tint_build_benchmarks) {
+ import("//testing/test.gni")
+}
+
libtint_source_set("intrinsic") {
sources = [
"ctor_conv.cc",
@@ -66,3 +70,39 @@
"${tint_src_dir}/utils/traits",
]
}
+if (tint_build_unittests) {
+ tint_unittests_source_set("unittests") {
+ sources = [ "table_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/intrinsic",
+ "${tint_src_dir}/lang/core/type",
+ "${tint_src_dir}/lang/core/type:unittests",
+ "${tint_src_dir}/lang/wgsl",
+ "${tint_src_dir}/lang/wgsl/ast",
+ "${tint_src_dir}/lang/wgsl/common",
+ "${tint_src_dir}/lang/wgsl/features",
+ "${tint_src_dir}/lang/wgsl/intrinsic",
+ "${tint_src_dir}/lang/wgsl/program",
+ "${tint_src_dir}/lang/wgsl/resolver",
+ "${tint_src_dir}/lang/wgsl/resolver:unittests",
+ "${tint_src_dir}/lang/wgsl/sem",
+ "${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",
+ ]
+ }
+}
diff --git a/src/tint/lang/wgsl/intrinsic/data.cc b/src/tint/lang/wgsl/intrinsic/data.cc
index 5114e2d..0cb4e46 100644
--- a/src/tint/lang/wgsl/intrinsic/data.cc
+++ b/src/tint/lang/wgsl/intrinsic/data.cc
@@ -38,6 +38,9 @@
#include <string>
#include "src/tint/lang/core/intrinsic/type_matchers.h"
+#include "src/tint/lang/core/type/abstract_float.h"
+#include "src/tint/lang/core/type/abstract_int.h"
+#include "src/tint/lang/core/type/abstract_numeric.h"
#include "src/tint/lang/wgsl/intrinsic/dialect.h"
#include "src/tint/utils/text/string_stream.h"
@@ -45,6 +48,26 @@
using namespace tint::core::intrinsic; // NOLINT(build/namespaces)
+inline const core::type::AbstractFloat* BuildFa(intrinsic::MatchState& state,
+ const core::type::Type*) {
+ return state.types.AFloat();
+}
+
+inline bool MatchFa(intrinsic::MatchState& state, const core::type::Type* ty) {
+ return (state.earliest_eval_stage <= core::EvaluationStage::kConstant) &&
+ ty->IsAnyOf<intrinsic::Any, core::type::AbstractNumeric>();
+}
+
+inline const core::type::AbstractInt* BuildIa(intrinsic::MatchState& state,
+ const core::type::Type*) {
+ return state.types.AInt();
+}
+
+inline bool MatchIa(intrinsic::MatchState& state, const core::type::Type* ty) {
+ return (state.earliest_eval_stage <= core::EvaluationStage::kConstant) &&
+ ty->IsAnyOf<intrinsic::Any, core::type::AbstractInt>();
+}
+
namespace {
using ConstEvalFunctionIndex = tint::core::intrinsic::ConstEvalFunctionIndex;
diff --git a/src/tint/lang/wgsl/intrinsic/data.cc.tmpl b/src/tint/lang/wgsl/intrinsic/data.cc.tmpl
index da9bb11..e3c40fc 100644
--- a/src/tint/lang/wgsl/intrinsic/data.cc.tmpl
+++ b/src/tint/lang/wgsl/intrinsic/data.cc.tmpl
@@ -20,6 +20,9 @@
#include <string>
#include "src/tint/lang/core/intrinsic/type_matchers.h"
+#include "src/tint/lang/core/type/abstract_float.h"
+#include "src/tint/lang/core/type/abstract_int.h"
+#include "src/tint/lang/core/type/abstract_numeric.h"
#include "src/tint/lang/wgsl/intrinsic/dialect.h"
#include "src/tint/utils/text/string_stream.h"
@@ -27,6 +30,24 @@
using namespace tint::core::intrinsic; // NOLINT(build/namespaces)
+inline const core::type::AbstractFloat* BuildFa(intrinsic::MatchState& state, const core::type::Type*) {
+ return state.types.AFloat();
+}
+
+inline bool MatchFa(intrinsic::MatchState& state, const core::type::Type* ty) {
+ return (state.earliest_eval_stage <= core::EvaluationStage::kConstant) &&
+ ty->IsAnyOf<intrinsic::Any, core::type::AbstractNumeric>();
+}
+
+inline const core::type::AbstractInt* BuildIa(intrinsic::MatchState& state, const core::type::Type*) {
+ return state.types.AInt();
+}
+
+inline bool MatchIa(intrinsic::MatchState& state, const core::type::Type* ty) {
+ return (state.earliest_eval_stage <= core::EvaluationStage::kConstant) &&
+ ty->IsAnyOf<intrinsic::Any, core::type::AbstractInt>();
+}
+
{{ Eval "Data"
"Intrinsics" $I
"Name" "Dialect::kData" -}}
diff --git a/src/tint/lang/wgsl/intrinsic/table_test.cc b/src/tint/lang/wgsl/intrinsic/table_test.cc
new file mode 100644
index 0000000..e212187
--- /dev/null
+++ b/src/tint/lang/wgsl/intrinsic/table_test.cc
@@ -0,0 +1,1414 @@
+// Copyright 2024 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/core/intrinsic/table.h"
+
+#include <utility>
+
+#include "gmock/gmock.h"
+#include "src/tint/lang/core/intrinsic/table_data.h"
+#include "src/tint/lang/core/type/atomic.h"
+#include "src/tint/lang/core/type/depth_multisampled_texture.h"
+#include "src/tint/lang/core/type/depth_texture.h"
+#include "src/tint/lang/core/type/external_texture.h"
+#include "src/tint/lang/core/type/helper_test.h"
+#include "src/tint/lang/core/type/multisampled_texture.h"
+#include "src/tint/lang/core/type/reference.h"
+#include "src/tint/lang/core/type/sampled_texture.h"
+#include "src/tint/lang/core/type/storage_texture.h"
+#include "src/tint/lang/core/type/texture_dimension.h"
+#include "src/tint/lang/wgsl/intrinsic/dialect.h"
+#include "src/tint/lang/wgsl/resolver/resolver_helper_test.h"
+
+namespace tint::wgsl::intrinsic {
+namespace {
+
+using ::testing::HasSubstr;
+using namespace tint::core::fluent_types; // NOLINT
+
+using ParameterUsage = core::ParameterUsage;
+using OverloadFlag = core::intrinsic::OverloadFlag;
+
+using AFloatV = vec3<AFloat>;
+using AIntV = vec3<AInt>;
+using f32V = vec3<f32>;
+using i32V = vec3<i32>;
+using u32V = vec3<u32>;
+
+class WgslIntrinsicTableTest : public testing::Test, public ProgramBuilder {
+ public:
+ core::intrinsic::Table<Dialect> table{Types(), Symbols()};
+};
+
+TEST_F(WgslIntrinsicTableTest, MatchF32) {
+ auto* f32 = create<core::type::F32>();
+ auto result =
+ table.Lookup(wgsl::BuiltinFn::kCos, Vector{f32}, core::EvaluationStage::kConstant);
+ ASSERT_EQ(result, Success);
+ EXPECT_EQ(result->return_type, f32);
+ ASSERT_EQ(result->parameters.Length(), 1u);
+ EXPECT_EQ(result->parameters[0].type, f32);
+}
+
+TEST_F(WgslIntrinsicTableTest, MismatchF32) {
+ auto* i32 = create<core::type::I32>();
+ auto result =
+ table.Lookup(wgsl::BuiltinFn::kCos, Vector{i32}, core::EvaluationStage::kConstant);
+ ASSERT_NE(result, Success);
+ ASSERT_THAT(result.Failure(), HasSubstr("no matching call"));
+}
+
+TEST_F(WgslIntrinsicTableTest, MatchU32) {
+ auto* f32 = create<core::type::F32>();
+ auto* u32 = create<core::type::U32>();
+ auto* vec2f = create<core::type::Vector>(f32, 2u);
+ auto result = table.Lookup(wgsl::BuiltinFn::kUnpack2X16Float, Vector{u32},
+ core::EvaluationStage::kConstant);
+ ASSERT_EQ(result, Success);
+ EXPECT_EQ(result->return_type, vec2f);
+ ASSERT_EQ(result->parameters.Length(), 1u);
+ EXPECT_EQ(result->parameters[0].type, u32);
+}
+
+TEST_F(WgslIntrinsicTableTest, MismatchU32) {
+ auto* f32 = create<core::type::F32>();
+ auto result = table.Lookup(wgsl::BuiltinFn::kUnpack2X16Float, Vector{f32},
+ core::EvaluationStage::kConstant);
+ ASSERT_NE(result, Success);
+ ASSERT_THAT(result.Failure(), HasSubstr("no matching call"));
+}
+
+TEST_F(WgslIntrinsicTableTest, MatchI32) {
+ auto* f32 = create<core::type::F32>();
+ auto* i32 = create<core::type::I32>();
+ auto* vec4f = create<core::type::Vector>(f32, 4u);
+ auto* tex = create<core::type::SampledTexture>(core::type::TextureDimension::k1d, f32);
+ auto result = table.Lookup(wgsl::BuiltinFn::kTextureLoad, Vector{tex, i32, i32},
+ core::EvaluationStage::kConstant);
+ ASSERT_EQ(result, Success);
+ EXPECT_EQ(result->return_type, vec4f);
+ ASSERT_EQ(result->parameters.Length(), 3u);
+ EXPECT_EQ(result->parameters[0].type, tex);
+ EXPECT_EQ(result->parameters[0].usage, ParameterUsage::kTexture);
+ EXPECT_EQ(result->parameters[1].type, i32);
+ EXPECT_EQ(result->parameters[1].usage, ParameterUsage::kCoords);
+ EXPECT_EQ(result->parameters[2].type, i32);
+ EXPECT_EQ(result->parameters[2].usage, ParameterUsage::kLevel);
+}
+
+TEST_F(WgslIntrinsicTableTest, MismatchI32) {
+ auto* f32 = create<core::type::F32>();
+ auto* tex = create<core::type::SampledTexture>(core::type::TextureDimension::k1d, f32);
+ auto result = table.Lookup(wgsl::BuiltinFn::kTextureLoad, Vector{tex, f32},
+ core::EvaluationStage::kConstant);
+ ASSERT_NE(result, Success);
+ ASSERT_THAT(result.Failure(), HasSubstr("no matching call"));
+}
+
+TEST_F(WgslIntrinsicTableTest, MatchIU32AsI32) {
+ auto* i32 = create<core::type::I32>();
+ auto result =
+ table.Lookup(wgsl::BuiltinFn::kCountOneBits, Vector{i32}, core::EvaluationStage::kConstant);
+ ASSERT_EQ(result, Success);
+ EXPECT_EQ(result->return_type, i32);
+ ASSERT_EQ(result->parameters.Length(), 1u);
+ EXPECT_EQ(result->parameters[0].type, i32);
+}
+
+TEST_F(WgslIntrinsicTableTest, MatchIU32AsU32) {
+ auto* u32 = create<core::type::U32>();
+ auto result =
+ table.Lookup(wgsl::BuiltinFn::kCountOneBits, Vector{u32}, core::EvaluationStage::kConstant);
+ ASSERT_EQ(result, Success);
+ EXPECT_EQ(result->return_type, u32);
+ ASSERT_EQ(result->parameters.Length(), 1u);
+ EXPECT_EQ(result->parameters[0].type, u32);
+}
+
+TEST_F(WgslIntrinsicTableTest, MismatchIU32) {
+ auto* f32 = create<core::type::F32>();
+ auto result =
+ table.Lookup(wgsl::BuiltinFn::kCountOneBits, Vector{f32}, core::EvaluationStage::kConstant);
+ ASSERT_NE(result, Success);
+ ASSERT_THAT(result.Failure(), HasSubstr("no matching call"));
+}
+
+TEST_F(WgslIntrinsicTableTest, MatchFIU32AsI32) {
+ auto* i32 = create<core::type::I32>();
+ auto result = table.Lookup(wgsl::BuiltinFn::kClamp, Vector{i32, i32, i32},
+ core::EvaluationStage::kConstant);
+ ASSERT_EQ(result, Success);
+ EXPECT_EQ(result->return_type, i32);
+ ASSERT_EQ(result->parameters.Length(), 3u);
+ EXPECT_EQ(result->parameters[0].type, i32);
+ EXPECT_EQ(result->parameters[1].type, i32);
+ EXPECT_EQ(result->parameters[2].type, i32);
+}
+
+TEST_F(WgslIntrinsicTableTest, MatchFIU32AsU32) {
+ auto* u32 = create<core::type::U32>();
+ auto result = table.Lookup(wgsl::BuiltinFn::kClamp, Vector{u32, u32, u32},
+ core::EvaluationStage::kConstant);
+ ASSERT_EQ(result, Success);
+ EXPECT_EQ(result->return_type, u32);
+ ASSERT_EQ(result->parameters.Length(), 3u);
+ EXPECT_EQ(result->parameters[0].type, u32);
+ EXPECT_EQ(result->parameters[1].type, u32);
+ EXPECT_EQ(result->parameters[2].type, u32);
+}
+
+TEST_F(WgslIntrinsicTableTest, MatchFIU32AsF32) {
+ auto* f32 = create<core::type::F32>();
+ auto result = table.Lookup(wgsl::BuiltinFn::kClamp, Vector{f32, f32, f32},
+ core::EvaluationStage::kConstant);
+ ASSERT_EQ(result, Success);
+ EXPECT_EQ(result->return_type, f32);
+ ASSERT_EQ(result->parameters.Length(), 3u);
+ EXPECT_EQ(result->parameters[0].type, f32);
+ EXPECT_EQ(result->parameters[1].type, f32);
+ EXPECT_EQ(result->parameters[2].type, f32);
+}
+
+TEST_F(WgslIntrinsicTableTest, MismatchFIU32) {
+ auto* bool_ = create<core::type::Bool>();
+ auto result = table.Lookup(wgsl::BuiltinFn::kClamp, Vector{bool_, bool_, bool_},
+ core::EvaluationStage::kConstant);
+ ASSERT_NE(result, Success);
+ ASSERT_THAT(result.Failure(), HasSubstr("no matching call"));
+}
+
+TEST_F(WgslIntrinsicTableTest, MatchBool) {
+ auto* f32 = create<core::type::F32>();
+ auto* bool_ = create<core::type::Bool>();
+ auto result = table.Lookup(wgsl::BuiltinFn::kSelect, Vector{f32, f32, bool_},
+ core::EvaluationStage::kConstant);
+ ASSERT_EQ(result, Success);
+ EXPECT_EQ(result->return_type, f32);
+ ASSERT_EQ(result->parameters.Length(), 3u);
+ EXPECT_EQ(result->parameters[0].type, f32);
+ EXPECT_EQ(result->parameters[1].type, f32);
+ EXPECT_EQ(result->parameters[2].type, bool_);
+}
+
+TEST_F(WgslIntrinsicTableTest, MismatchBool) {
+ auto* f32 = create<core::type::F32>();
+ auto result = table.Lookup(wgsl::BuiltinFn::kSelect, Vector{f32, f32, f32},
+ core::EvaluationStage::kConstant);
+ ASSERT_NE(result, Success);
+ ASSERT_THAT(result.Failure(), HasSubstr("no matching call"));
+}
+
+TEST_F(WgslIntrinsicTableTest, MatchPointer) {
+ auto* i32 = create<core::type::I32>();
+ auto* atomic_i32 = create<core::type::Atomic>(i32);
+ auto* ptr = create<core::type::Pointer>(core::AddressSpace::kWorkgroup, atomic_i32,
+ core::Access::kReadWrite);
+ auto result =
+ table.Lookup(wgsl::BuiltinFn::kAtomicLoad, Vector{ptr}, core::EvaluationStage::kConstant);
+ ASSERT_EQ(result, Success);
+ EXPECT_EQ(result->return_type, i32);
+ ASSERT_EQ(result->parameters.Length(), 1u);
+ EXPECT_EQ(result->parameters[0].type, ptr);
+}
+
+TEST_F(WgslIntrinsicTableTest, MismatchPointer) {
+ auto* i32 = create<core::type::I32>();
+ auto* atomic_i32 = create<core::type::Atomic>(i32);
+ auto result = table.Lookup(wgsl::BuiltinFn::kAtomicLoad, Vector{atomic_i32},
+ core::EvaluationStage::kConstant);
+ ASSERT_NE(result, Success);
+ ASSERT_THAT(result.Failure(), HasSubstr("no matching call"));
+}
+
+TEST_F(WgslIntrinsicTableTest, MatchArray) {
+ auto* arr = create<core::type::Array>(create<core::type::U32>(),
+ create<core::type::RuntimeArrayCount>(), 4u, 4u, 4u, 4u);
+ auto* arr_ptr =
+ create<core::type::Pointer>(core::AddressSpace::kStorage, arr, core::Access::kReadWrite);
+ auto result = table.Lookup(wgsl::BuiltinFn::kArrayLength, Vector{arr_ptr},
+ core::EvaluationStage::kConstant);
+ ASSERT_EQ(result, Success);
+ EXPECT_TRUE(result->return_type->Is<core::type::U32>());
+ ASSERT_EQ(result->parameters.Length(), 1u);
+ auto* param_type = result->parameters[0].type;
+ ASSERT_TRUE(param_type->Is<core::type::Pointer>());
+ EXPECT_TRUE(param_type->As<core::type::Pointer>()->StoreType()->Is<core::type::Array>());
+}
+
+TEST_F(WgslIntrinsicTableTest, MismatchArray) {
+ auto* f32 = create<core::type::F32>();
+ auto result =
+ table.Lookup(wgsl::BuiltinFn::kArrayLength, Vector{f32}, core::EvaluationStage::kConstant);
+ ASSERT_NE(result, Success);
+ ASSERT_THAT(result.Failure(), HasSubstr("no matching call"));
+}
+
+TEST_F(WgslIntrinsicTableTest, MatchSampler) {
+ auto* f32 = create<core::type::F32>();
+ auto* vec2f = create<core::type::Vector>(f32, 2u);
+ auto* vec4f = create<core::type::Vector>(f32, 4u);
+ auto* tex = create<core::type::SampledTexture>(core::type::TextureDimension::k2d, f32);
+ auto* sampler = create<core::type::Sampler>(core::type::SamplerKind::kSampler);
+ auto result = table.Lookup(wgsl::BuiltinFn::kTextureSample, Vector{tex, sampler, vec2f},
+ core::EvaluationStage::kConstant);
+ ASSERT_EQ(result, Success);
+ EXPECT_EQ(result->return_type, vec4f);
+ ASSERT_EQ(result->parameters.Length(), 3u);
+ EXPECT_EQ(result->parameters[0].type, tex);
+ EXPECT_EQ(result->parameters[0].usage, ParameterUsage::kTexture);
+ EXPECT_EQ(result->parameters[1].type, sampler);
+ EXPECT_EQ(result->parameters[1].usage, ParameterUsage::kSampler);
+ EXPECT_EQ(result->parameters[2].type, vec2f);
+ EXPECT_EQ(result->parameters[2].usage, ParameterUsage::kCoords);
+}
+
+TEST_F(WgslIntrinsicTableTest, MismatchSampler) {
+ auto* f32 = create<core::type::F32>();
+ auto* vec2f = create<core::type::Vector>(f32, 2u);
+ auto* tex = create<core::type::SampledTexture>(core::type::TextureDimension::k2d, f32);
+ auto result = table.Lookup(wgsl::BuiltinFn::kTextureSample, Vector{tex, f32, vec2f},
+ core::EvaluationStage::kConstant);
+ ASSERT_NE(result, Success);
+ ASSERT_THAT(result.Failure(), HasSubstr("no matching call"));
+}
+
+TEST_F(WgslIntrinsicTableTest, MatchSampledTexture) {
+ auto* i32 = create<core::type::I32>();
+ auto* f32 = create<core::type::F32>();
+ auto* vec2i = create<core::type::Vector>(i32, 2u);
+ auto* vec4f = create<core::type::Vector>(f32, 4u);
+ auto* tex = create<core::type::SampledTexture>(core::type::TextureDimension::k2d, f32);
+ auto result = table.Lookup(wgsl::BuiltinFn::kTextureLoad, Vector{tex, vec2i, i32},
+ core::EvaluationStage::kConstant);
+ ASSERT_EQ(result, Success);
+ EXPECT_EQ(result->return_type, vec4f);
+ ASSERT_EQ(result->parameters.Length(), 3u);
+ EXPECT_EQ(result->parameters[0].type, tex);
+ EXPECT_EQ(result->parameters[0].usage, ParameterUsage::kTexture);
+ EXPECT_EQ(result->parameters[1].type, vec2i);
+ EXPECT_EQ(result->parameters[1].usage, ParameterUsage::kCoords);
+ EXPECT_EQ(result->parameters[2].type, i32);
+ EXPECT_EQ(result->parameters[2].usage, ParameterUsage::kLevel);
+}
+
+TEST_F(WgslIntrinsicTableTest, MatchMultisampledTexture) {
+ auto* i32 = create<core::type::I32>();
+ auto* f32 = create<core::type::F32>();
+ auto* vec2i = create<core::type::Vector>(i32, 2u);
+ auto* vec4f = create<core::type::Vector>(f32, 4u);
+ auto* tex = create<core::type::MultisampledTexture>(core::type::TextureDimension::k2d, f32);
+ auto result = table.Lookup(wgsl::BuiltinFn::kTextureLoad, Vector{tex, vec2i, i32},
+ core::EvaluationStage::kConstant);
+ ASSERT_EQ(result, Success);
+ EXPECT_EQ(result->return_type, vec4f);
+ ASSERT_EQ(result->parameters.Length(), 3u);
+ EXPECT_EQ(result->parameters[0].type, tex);
+ EXPECT_EQ(result->parameters[0].usage, ParameterUsage::kTexture);
+ EXPECT_EQ(result->parameters[1].type, vec2i);
+ EXPECT_EQ(result->parameters[1].usage, ParameterUsage::kCoords);
+ EXPECT_EQ(result->parameters[2].type, i32);
+ EXPECT_EQ(result->parameters[2].usage, ParameterUsage::kSampleIndex);
+}
+
+TEST_F(WgslIntrinsicTableTest, MatchDepthTexture) {
+ auto* f32 = create<core::type::F32>();
+ auto* i32 = create<core::type::I32>();
+ auto* vec2i = create<core::type::Vector>(i32, 2u);
+ auto* tex = create<core::type::DepthTexture>(core::type::TextureDimension::k2d);
+ auto result = table.Lookup(wgsl::BuiltinFn::kTextureLoad, Vector{tex, vec2i, i32},
+ core::EvaluationStage::kConstant);
+ ASSERT_EQ(result, Success);
+ EXPECT_EQ(result->return_type, f32);
+ ASSERT_EQ(result->parameters.Length(), 3u);
+ EXPECT_EQ(result->parameters[0].type, tex);
+ EXPECT_EQ(result->parameters[0].usage, ParameterUsage::kTexture);
+ EXPECT_EQ(result->parameters[1].type, vec2i);
+ EXPECT_EQ(result->parameters[1].usage, ParameterUsage::kCoords);
+ EXPECT_EQ(result->parameters[2].type, i32);
+ EXPECT_EQ(result->parameters[2].usage, ParameterUsage::kLevel);
+}
+
+TEST_F(WgslIntrinsicTableTest, MatchDepthMultisampledTexture) {
+ auto* f32 = create<core::type::F32>();
+ auto* i32 = create<core::type::I32>();
+ auto* vec2i = create<core::type::Vector>(i32, 2u);
+ auto* tex = create<core::type::DepthMultisampledTexture>(core::type::TextureDimension::k2d);
+ auto result = table.Lookup(wgsl::BuiltinFn::kTextureLoad, Vector{tex, vec2i, i32},
+ core::EvaluationStage::kConstant);
+ ASSERT_EQ(result, Success);
+ EXPECT_EQ(result->return_type, f32);
+ ASSERT_EQ(result->parameters.Length(), 3u);
+ EXPECT_EQ(result->parameters[0].type, tex);
+ EXPECT_EQ(result->parameters[0].usage, ParameterUsage::kTexture);
+ EXPECT_EQ(result->parameters[1].type, vec2i);
+ EXPECT_EQ(result->parameters[1].usage, ParameterUsage::kCoords);
+ EXPECT_EQ(result->parameters[2].type, i32);
+ EXPECT_EQ(result->parameters[2].usage, ParameterUsage::kSampleIndex);
+}
+
+TEST_F(WgslIntrinsicTableTest, MatchExternalTexture) {
+ auto* f32 = create<core::type::F32>();
+ auto* i32 = create<core::type::I32>();
+ auto* vec2i = create<core::type::Vector>(i32, 2u);
+ auto* vec4f = create<core::type::Vector>(f32, 4u);
+ auto* tex = create<core::type::ExternalTexture>();
+ auto result = table.Lookup(wgsl::BuiltinFn::kTextureLoad, Vector{tex, vec2i},
+ core::EvaluationStage::kConstant);
+ ASSERT_EQ(result, Success);
+ EXPECT_EQ(result->return_type, vec4f);
+ ASSERT_EQ(result->parameters.Length(), 2u);
+ EXPECT_EQ(result->parameters[0].type, tex);
+ EXPECT_EQ(result->parameters[0].usage, ParameterUsage::kTexture);
+ EXPECT_EQ(result->parameters[1].type, vec2i);
+ EXPECT_EQ(result->parameters[1].usage, ParameterUsage::kCoords);
+}
+
+TEST_F(WgslIntrinsicTableTest, MatchWOStorageTexture) {
+ auto* f32 = create<core::type::F32>();
+ auto* i32 = create<core::type::I32>();
+ auto* vec2i = create<core::type::Vector>(i32, 2u);
+ auto* vec4f = create<core::type::Vector>(f32, 4u);
+ auto* subtype = core::type::StorageTexture::SubtypeFor(core::TexelFormat::kR32Float, Types());
+ auto* tex = create<core::type::StorageTexture>(core::type::TextureDimension::k2d,
+ core::TexelFormat::kR32Float,
+ core::Access::kWrite, subtype);
+
+ auto result = table.Lookup(wgsl::BuiltinFn::kTextureStore, Vector{tex, vec2i, vec4f},
+ core::EvaluationStage::kConstant);
+ ASSERT_EQ(result, Success);
+ EXPECT_TRUE(result->return_type->Is<core::type::Void>());
+ ASSERT_EQ(result->parameters.Length(), 3u);
+ EXPECT_EQ(result->parameters[0].type, tex);
+ EXPECT_EQ(result->parameters[0].usage, ParameterUsage::kTexture);
+ EXPECT_EQ(result->parameters[1].type, vec2i);
+ EXPECT_EQ(result->parameters[1].usage, ParameterUsage::kCoords);
+ EXPECT_EQ(result->parameters[2].type, vec4f);
+ EXPECT_EQ(result->parameters[2].usage, ParameterUsage::kValue);
+}
+
+TEST_F(WgslIntrinsicTableTest, MismatchTexture) {
+ auto* f32 = create<core::type::F32>();
+ auto* i32 = create<core::type::I32>();
+ auto* vec2i = create<core::type::Vector>(i32, 2u);
+ auto result = table.Lookup(wgsl::BuiltinFn::kTextureLoad, Vector{f32, vec2i},
+ core::EvaluationStage::kConstant);
+ ASSERT_NE(result, Success);
+ ASSERT_THAT(result.Failure(), HasSubstr("no matching call"));
+}
+
+TEST_F(WgslIntrinsicTableTest, MatchTemplateType) {
+ auto* f32 = create<core::type::F32>();
+ auto result = table.Lookup(wgsl::BuiltinFn::kClamp, Vector{f32, f32, f32},
+ core::EvaluationStage::kConstant);
+ ASSERT_EQ(result, Success);
+ EXPECT_EQ(result->return_type, f32);
+ EXPECT_EQ(result->parameters[0].type, f32);
+ EXPECT_EQ(result->parameters[1].type, f32);
+ EXPECT_EQ(result->parameters[2].type, f32);
+}
+
+TEST_F(WgslIntrinsicTableTest, MismatchTemplateType) {
+ auto* f32 = create<core::type::F32>();
+ auto* u32 = create<core::type::U32>();
+ auto result = table.Lookup(wgsl::BuiltinFn::kClamp, Vector{f32, u32, f32},
+ core::EvaluationStage::kConstant);
+ ASSERT_NE(result, Success);
+ ASSERT_THAT(result.Failure(), HasSubstr("no matching call"));
+}
+
+TEST_F(WgslIntrinsicTableTest, MatchOpenSizeVector) {
+ auto* f32 = create<core::type::F32>();
+ auto* vec2f = create<core::type::Vector>(f32, 2u);
+ auto result = table.Lookup(wgsl::BuiltinFn::kClamp, Vector{vec2f, vec2f, vec2f},
+ core::EvaluationStage::kConstant);
+ ASSERT_EQ(result, Success);
+ EXPECT_EQ(result->return_type, vec2f);
+ ASSERT_EQ(result->parameters.Length(), 3u);
+ EXPECT_EQ(result->parameters[0].type, vec2f);
+ EXPECT_EQ(result->parameters[1].type, vec2f);
+ EXPECT_EQ(result->parameters[2].type, vec2f);
+}
+
+TEST_F(WgslIntrinsicTableTest, MismatchOpenSizeVector) {
+ auto* f32 = create<core::type::F32>();
+ auto* u32 = create<core::type::U32>();
+ auto* vec2f = create<core::type::Vector>(f32, 2u);
+ auto result = table.Lookup(wgsl::BuiltinFn::kClamp, Vector{vec2f, u32, vec2f},
+ core::EvaluationStage::kConstant);
+ ASSERT_NE(result, Success);
+ ASSERT_THAT(result.Failure(), HasSubstr("no matching call"));
+}
+
+TEST_F(WgslIntrinsicTableTest, MatchOpenSizeMatrix) {
+ auto* f32 = create<core::type::F32>();
+ auto* vec3f = create<core::type::Vector>(f32, 3u);
+ auto* mat3x3f = create<core::type::Matrix>(vec3f, 3u);
+ auto result = table.Lookup(wgsl::BuiltinFn::kDeterminant, Vector{mat3x3f},
+ core::EvaluationStage::kConstant);
+ ASSERT_EQ(result, Success);
+ EXPECT_EQ(result->return_type, f32);
+ ASSERT_EQ(result->parameters.Length(), 1u);
+ EXPECT_EQ(result->parameters[0].type, mat3x3f);
+}
+
+TEST_F(WgslIntrinsicTableTest, MismatchOpenSizeMatrix) {
+ auto* f32 = create<core::type::F32>();
+ auto* vec2f = create<core::type::Vector>(f32, 2u);
+ auto* mat3x2f = create<core::type::Matrix>(vec2f, 3u);
+ auto result = table.Lookup(wgsl::BuiltinFn::kDeterminant, Vector{mat3x2f},
+ core::EvaluationStage::kConstant);
+ ASSERT_NE(result, Success);
+ ASSERT_THAT(result.Failure(), HasSubstr("no matching call"));
+}
+
+TEST_F(WgslIntrinsicTableTest, MatchDifferentArgsElementType_Builtin_ConstantEval) {
+ auto* af = create<core::type::AbstractFloat>();
+ auto* bool_ = create<core::type::Bool>();
+ auto result = table.Lookup(wgsl::BuiltinFn::kSelect, Vector{af, af, bool_},
+ core::EvaluationStage::kConstant);
+ ASSERT_EQ(result, Success);
+ EXPECT_NE(result->const_eval_fn, nullptr);
+ EXPECT_EQ(result->return_type, af);
+ ASSERT_EQ(result->parameters.Length(), 3u);
+ EXPECT_EQ(result->parameters[0].type, af);
+ EXPECT_EQ(result->parameters[1].type, af);
+ EXPECT_EQ(result->parameters[2].type, bool_);
+}
+
+TEST_F(WgslIntrinsicTableTest, MatchDifferentArgsElementType_Builtin_RuntimeEval) {
+ auto* af = create<core::type::AbstractFloat>();
+ auto result = table.Lookup(wgsl::BuiltinFn::kSelect, Vector{af, af, create<core::type::Bool>()},
+ core::EvaluationStage::kRuntime);
+ ASSERT_EQ(result, Success);
+ EXPECT_NE(result->const_eval_fn, nullptr);
+ EXPECT_TRUE(result->return_type->Is<core::type::F32>());
+ ASSERT_EQ(result->parameters.Length(), 3u);
+ EXPECT_TRUE(result->parameters[0].type->Is<core::type::F32>());
+ EXPECT_TRUE(result->parameters[1].type->Is<core::type::F32>());
+ EXPECT_TRUE(result->parameters[2].type->Is<core::type::Bool>());
+}
+
+TEST_F(WgslIntrinsicTableTest, MatchDifferentArgsElementType_Binary_ConstantEval) {
+ auto* ai = create<core::type::AbstractInt>();
+ auto* u32 = create<core::type::U32>();
+ auto result =
+ table.Lookup(core::BinaryOp::kShiftLeft, ai, u32, core::EvaluationStage::kConstant, false);
+ ASSERT_EQ(result, Success);
+ ASSERT_NE(result->const_eval_fn, nullptr) << Diagnostics();
+ EXPECT_EQ(result->return_type, ai);
+ EXPECT_EQ(result->parameters[0].type, ai);
+ EXPECT_EQ(result->parameters[1].type, u32);
+}
+
+TEST_F(WgslIntrinsicTableTest, MatchDifferentArgsElementType_Binary_RuntimeEval) {
+ auto* ai = create<core::type::AbstractInt>();
+ auto* u32 = create<core::type::U32>();
+ auto result =
+ table.Lookup(core::BinaryOp::kShiftLeft, ai, u32, core::EvaluationStage::kRuntime, false);
+ ASSERT_EQ(result, Success);
+ ASSERT_NE(result->const_eval_fn, nullptr) << Diagnostics();
+ EXPECT_TRUE(result->return_type->Is<core::type::I32>());
+ EXPECT_TRUE(result->parameters[0].type->Is<core::type::I32>());
+ EXPECT_TRUE(result->parameters[1].type->Is<core::type::U32>());
+}
+
+TEST_F(WgslIntrinsicTableTest, OverloadOrderByNumberOfParameters) {
+ // None of the arguments match, so expect the overloads with 2 parameters to
+ // come first
+ auto* bool_ = create<core::type::Bool>();
+ auto result = table.Lookup(wgsl::BuiltinFn::kTextureDimensions, Vector{bool_, bool_},
+ core::EvaluationStage::kConstant);
+ ASSERT_NE(result, Success);
+ ASSERT_EQ(result.Failure(),
+ R"(no matching call to textureDimensions(bool, bool)
+
+27 candidate functions:
+ textureDimensions(texture: texture_1d<T>, level: L) -> u32 where: T is f32, i32 or u32, L is i32 or u32
+ textureDimensions(texture: texture_2d<T>, level: L) -> vec2<u32> where: T is f32, i32 or u32, L is i32 or u32
+ textureDimensions(texture: texture_2d_array<T>, level: L) -> vec2<u32> where: T is f32, i32 or u32, L is i32 or u32
+ textureDimensions(texture: texture_3d<T>, level: L) -> vec3<u32> where: T is f32, i32 or u32, L is i32 or u32
+ textureDimensions(texture: texture_cube<T>, level: L) -> vec2<u32> where: T is f32, i32 or u32, L is i32 or u32
+ textureDimensions(texture: texture_cube_array<T>, level: L) -> vec2<u32> where: T is f32, i32 or u32, L is i32 or u32
+ textureDimensions(texture: texture_depth_2d, level: L) -> vec2<u32> where: L is i32 or u32
+ textureDimensions(texture: texture_depth_2d_array, level: L) -> vec2<u32> where: L is i32 or u32
+ textureDimensions(texture: texture_depth_cube, level: L) -> vec2<u32> where: L is i32 or u32
+ textureDimensions(texture: texture_depth_cube_array, level: L) -> vec2<u32> where: L is i32 or u32
+ textureDimensions(texture: texture_1d<T>) -> u32 where: T is f32, i32 or u32
+ textureDimensions(texture: texture_2d<T>) -> vec2<u32> where: T is f32, i32 or u32
+ textureDimensions(texture: texture_2d_array<T>) -> vec2<u32> where: T is f32, i32 or u32
+ textureDimensions(texture: texture_3d<T>) -> vec3<u32> where: T is f32, i32 or u32
+ textureDimensions(texture: texture_cube<T>) -> vec2<u32> where: T is f32, i32 or u32
+ textureDimensions(texture: texture_cube_array<T>) -> vec2<u32> where: T is f32, i32 or u32
+ textureDimensions(texture: texture_multisampled_2d<T>) -> vec2<u32> where: T is f32, i32 or u32
+ textureDimensions(texture: texture_depth_2d) -> vec2<u32>
+ textureDimensions(texture: texture_depth_2d_array) -> vec2<u32>
+ textureDimensions(texture: texture_depth_cube) -> vec2<u32>
+ textureDimensions(texture: texture_depth_cube_array) -> vec2<u32>
+ textureDimensions(texture: texture_depth_multisampled_2d) -> vec2<u32>
+ textureDimensions(texture: texture_storage_1d<F, A>) -> u32
+ textureDimensions(texture: texture_storage_2d<F, A>) -> vec2<u32>
+ textureDimensions(texture: texture_storage_2d_array<F, A>) -> vec2<u32>
+ textureDimensions(texture: texture_storage_3d<F, A>) -> vec3<u32>
+ textureDimensions(texture: texture_external) -> vec2<u32>
+)");
+}
+
+TEST_F(WgslIntrinsicTableTest, OverloadOrderByMatchingParameter) {
+ auto* tex = create<core::type::DepthTexture>(core::type::TextureDimension::k2d);
+ auto* bool_ = create<core::type::Bool>();
+ auto result = table.Lookup(wgsl::BuiltinFn::kTextureDimensions, Vector{tex, bool_},
+ core::EvaluationStage::kConstant);
+ ASSERT_NE(result, Success);
+ ASSERT_EQ(result.Failure(),
+ R"(no matching call to textureDimensions(texture_depth_2d, bool)
+
+27 candidate functions:
+ textureDimensions(texture: texture_depth_2d, level: L) -> vec2<u32> where: L is i32 or u32
+ textureDimensions(texture: texture_1d<T>, level: L) -> u32 where: T is f32, i32 or u32, L is i32 or u32
+ textureDimensions(texture: texture_2d<T>, level: L) -> vec2<u32> where: T is f32, i32 or u32, L is i32 or u32
+ textureDimensions(texture: texture_2d_array<T>, level: L) -> vec2<u32> where: T is f32, i32 or u32, L is i32 or u32
+ textureDimensions(texture: texture_3d<T>, level: L) -> vec3<u32> where: T is f32, i32 or u32, L is i32 or u32
+ textureDimensions(texture: texture_cube<T>, level: L) -> vec2<u32> where: T is f32, i32 or u32, L is i32 or u32
+ textureDimensions(texture: texture_cube_array<T>, level: L) -> vec2<u32> where: T is f32, i32 or u32, L is i32 or u32
+ textureDimensions(texture: texture_depth_2d_array, level: L) -> vec2<u32> where: L is i32 or u32
+ textureDimensions(texture: texture_depth_cube, level: L) -> vec2<u32> where: L is i32 or u32
+ textureDimensions(texture: texture_depth_cube_array, level: L) -> vec2<u32> where: L is i32 or u32
+ textureDimensions(texture: texture_depth_2d) -> vec2<u32>
+ textureDimensions(texture: texture_1d<T>) -> u32 where: T is f32, i32 or u32
+ textureDimensions(texture: texture_2d<T>) -> vec2<u32> where: T is f32, i32 or u32
+ textureDimensions(texture: texture_2d_array<T>) -> vec2<u32> where: T is f32, i32 or u32
+ textureDimensions(texture: texture_3d<T>) -> vec3<u32> where: T is f32, i32 or u32
+ textureDimensions(texture: texture_cube<T>) -> vec2<u32> where: T is f32, i32 or u32
+ textureDimensions(texture: texture_cube_array<T>) -> vec2<u32> where: T is f32, i32 or u32
+ textureDimensions(texture: texture_multisampled_2d<T>) -> vec2<u32> where: T is f32, i32 or u32
+ textureDimensions(texture: texture_depth_2d_array) -> vec2<u32>
+ textureDimensions(texture: texture_depth_cube) -> vec2<u32>
+ textureDimensions(texture: texture_depth_cube_array) -> vec2<u32>
+ textureDimensions(texture: texture_depth_multisampled_2d) -> vec2<u32>
+ textureDimensions(texture: texture_storage_1d<F, A>) -> u32
+ textureDimensions(texture: texture_storage_2d<F, A>) -> vec2<u32>
+ textureDimensions(texture: texture_storage_2d_array<F, A>) -> vec2<u32>
+ textureDimensions(texture: texture_storage_3d<F, A>) -> vec3<u32>
+ textureDimensions(texture: texture_external) -> vec2<u32>
+)");
+}
+
+TEST_F(WgslIntrinsicTableTest, MatchUnaryOp) {
+ auto* i32 = create<core::type::I32>();
+ auto* vec3i = create<core::type::Vector>(i32, 3u);
+ auto result = table.Lookup(core::UnaryOp::kNegation, vec3i, core::EvaluationStage::kConstant);
+ ASSERT_EQ(result, Success);
+ EXPECT_EQ(result->return_type, vec3i);
+}
+
+TEST_F(WgslIntrinsicTableTest, MismatchUnaryOp) {
+ auto* bool_ = create<core::type::Bool>();
+ auto result = table.Lookup(core::UnaryOp::kNegation, bool_, core::EvaluationStage::kConstant);
+ ASSERT_NE(result, Success);
+ EXPECT_EQ(result.Failure(), R"(no matching overload for operator - (bool)
+
+2 candidate operators:
+ operator - (T) -> T where: T is abstract-float, abstract-int, f32, i32 or f16
+ operator - (vecN<T>) -> vecN<T> where: T is abstract-float, abstract-int, f32, i32 or f16
+)");
+}
+
+TEST_F(WgslIntrinsicTableTest, MatchUnaryOp_Constant) {
+ auto* ai = create<core::type::AbstractInt>();
+ auto result = table.Lookup(core::UnaryOp::kNegation, ai, core::EvaluationStage::kConstant);
+ ASSERT_EQ(result, Success);
+ EXPECT_EQ(result->return_type, ai);
+}
+
+TEST_F(WgslIntrinsicTableTest, MatchUnaryOp_Runtime) {
+ auto* ai = create<core::type::AbstractInt>();
+ auto result = table.Lookup(core::UnaryOp::kNegation, ai, core::EvaluationStage::kRuntime);
+ ASSERT_EQ(result, Success);
+ EXPECT_NE(result->return_type, ai);
+ EXPECT_TRUE(result->return_type->Is<core::type::I32>());
+}
+
+TEST_F(WgslIntrinsicTableTest, MatchBinaryOp) {
+ auto* i32 = create<core::type::I32>();
+ auto* vec3i = create<core::type::Vector>(i32, 3u);
+ auto result =
+ table.Lookup(core::BinaryOp::kMultiply, i32, vec3i, core::EvaluationStage::kConstant,
+ /* is_compound */ false);
+ ASSERT_EQ(result, Success);
+ EXPECT_EQ(result->return_type, vec3i);
+ EXPECT_EQ(result->parameters[0].type, i32);
+ EXPECT_EQ(result->parameters[1].type, vec3i);
+}
+
+TEST_F(WgslIntrinsicTableTest, MismatchBinaryOp) {
+ auto* f32 = create<core::type::F32>();
+ auto* bool_ = create<core::type::Bool>();
+ auto result =
+ table.Lookup(core::BinaryOp::kMultiply, f32, bool_, core::EvaluationStage::kConstant,
+ /* is_compound */ false);
+ ASSERT_NE(result, Success);
+ EXPECT_EQ(result.Failure(), R"(no matching overload for operator * (f32, bool)
+
+9 candidate operators:
+ operator * (T, T) -> T where: T is abstract-float, abstract-int, f32, i32, u32 or f16
+ operator * (vecN<T>, T) -> vecN<T> where: T is abstract-float, abstract-int, f32, i32, u32 or f16
+ operator * (T, vecN<T>) -> vecN<T> where: T is abstract-float, abstract-int, f32, i32, u32 or f16
+ operator * (T, matNxM<T>) -> matNxM<T> where: T is abstract-float, f32 or f16
+ operator * (matNxM<T>, T) -> matNxM<T> where: T is abstract-float, f32 or f16
+ operator * (vecN<T>, vecN<T>) -> vecN<T> where: T is abstract-float, abstract-int, f32, i32, u32 or f16
+ operator * (matCxR<T>, vecC<T>) -> vecR<T> where: T is abstract-float, f32 or f16
+ operator * (vecR<T>, matCxR<T>) -> vecC<T> where: T is abstract-float, f32 or f16
+ operator * (matKxR<T>, matCxK<T>) -> matCxR<T> where: T is abstract-float, f32 or f16
+)");
+}
+
+TEST_F(WgslIntrinsicTableTest, MatchCompoundOp) {
+ auto* i32 = create<core::type::I32>();
+ auto* vec3i = create<core::type::Vector>(i32, 3u);
+ auto result =
+ table.Lookup(core::BinaryOp::kMultiply, i32, vec3i, core::EvaluationStage::kConstant,
+ /* is_compound */ true);
+ ASSERT_EQ(result, Success);
+ EXPECT_EQ(result->return_type, vec3i);
+ EXPECT_EQ(result->parameters[0].type, i32);
+ EXPECT_EQ(result->parameters[1].type, vec3i);
+}
+
+TEST_F(WgslIntrinsicTableTest, MismatchCompoundOp) {
+ auto* f32 = create<core::type::F32>();
+ auto* bool_ = create<core::type::Bool>();
+ auto result =
+ table.Lookup(core::BinaryOp::kMultiply, f32, bool_, core::EvaluationStage::kConstant,
+ /* is_compound */ true);
+ ASSERT_NE(result, Success);
+ EXPECT_EQ(result.Failure(), R"(no matching overload for operator *= (f32, bool)
+
+9 candidate operators:
+ operator *= (T, T) -> T where: T is abstract-float, abstract-int, f32, i32, u32 or f16
+ operator *= (vecN<T>, T) -> vecN<T> where: T is abstract-float, abstract-int, f32, i32, u32 or f16
+ operator *= (T, vecN<T>) -> vecN<T> where: T is abstract-float, abstract-int, f32, i32, u32 or f16
+ operator *= (T, matNxM<T>) -> matNxM<T> where: T is abstract-float, f32 or f16
+ operator *= (matNxM<T>, T) -> matNxM<T> where: T is abstract-float, f32 or f16
+ operator *= (vecN<T>, vecN<T>) -> vecN<T> where: T is abstract-float, abstract-int, f32, i32, u32 or f16
+ operator *= (matCxR<T>, vecC<T>) -> vecR<T> where: T is abstract-float, f32 or f16
+ operator *= (vecR<T>, matCxR<T>) -> vecC<T> where: T is abstract-float, f32 or f16
+ operator *= (matKxR<T>, matCxK<T>) -> matCxR<T> where: T is abstract-float, f32 or f16
+)");
+}
+
+TEST_F(WgslIntrinsicTableTest, MatchTypeInitializerImplicit) {
+ auto* i32 = create<core::type::I32>();
+ auto* vec3i = create<core::type::Vector>(i32, 3u);
+ auto result = table.Lookup(CtorConv::kVec3, nullptr, Vector{i32, i32, i32},
+ core::EvaluationStage::kConstant);
+ ASSERT_EQ(result, Success);
+ EXPECT_EQ(result->return_type, vec3i);
+ EXPECT_TRUE(result->info->flags.Contains(OverloadFlag::kIsConstructor));
+ ASSERT_EQ(result->parameters.Length(), 3u);
+ EXPECT_EQ(result->parameters[0].type, i32);
+ EXPECT_EQ(result->parameters[1].type, i32);
+ EXPECT_EQ(result->parameters[2].type, i32);
+ EXPECT_NE(result->const_eval_fn, nullptr);
+}
+
+TEST_F(WgslIntrinsicTableTest, MatchTypeInitializerExplicit) {
+ auto* i32 = create<core::type::I32>();
+ auto* vec3i = create<core::type::Vector>(i32, 3u);
+ auto result =
+ table.Lookup(CtorConv::kVec3, i32, Vector{i32, i32, i32}, core::EvaluationStage::kConstant);
+ ASSERT_EQ(result, Success);
+ EXPECT_EQ(result->return_type, vec3i);
+ EXPECT_TRUE(result->info->flags.Contains(OverloadFlag::kIsConstructor));
+ ASSERT_EQ(result->parameters.Length(), 3u);
+ EXPECT_EQ(result->parameters[0].type, i32);
+ EXPECT_EQ(result->parameters[1].type, i32);
+ EXPECT_EQ(result->parameters[2].type, i32);
+ EXPECT_NE(result->const_eval_fn, nullptr);
+}
+
+TEST_F(WgslIntrinsicTableTest, MismatchTypeInitializerImplicit) {
+ auto* i32 = create<core::type::I32>();
+ auto* f32 = create<core::type::F32>();
+ auto result = table.Lookup(CtorConv::kVec3, nullptr, Vector{i32, f32, i32},
+ core::EvaluationStage::kConstant);
+ ASSERT_NE(result, Success);
+ EXPECT_EQ(result.Failure(),
+ R"(no matching constructor for vec3(i32, f32, i32)
+
+7 candidate constructors:
+ vec3(x: T, y: T, z: T) -> vec3<T> where: T is abstract-int, abstract-float, f32, f16, i32, u32 or bool
+ vec3(xy: vec2<T>, z: T) -> vec3<T> where: T is abstract-int, abstract-float, f32, f16, i32, u32 or bool
+ vec3(x: T, yz: vec2<T>) -> vec3<T> where: T is abstract-int, abstract-float, f32, f16, i32, u32 or bool
+ vec3(T) -> vec3<T> where: T is abstract-int, abstract-float, f32, f16, i32, u32 or bool
+ vec3(vec3<T>) -> vec3<T> where: T is abstract-int, abstract-float, f32, f16, i32, u32 or bool
+ vec3() -> vec3<abstract-int>
+ vec3<T>() -> vec3<T> where: T is f32, f16, i32, u32 or bool
+
+5 candidate conversions:
+ vec3<T>(vec3<U>) -> vec3<f32> where: T is f32, U is abstract-int, abstract-float, i32, f16, u32 or bool
+ vec3<T>(vec3<U>) -> vec3<f16> where: T is f16, U is abstract-int, abstract-float, f32, i32, u32 or bool
+ vec3<T>(vec3<U>) -> vec3<i32> where: T is i32, U is abstract-int, abstract-float, f32, f16, u32 or bool
+ vec3<T>(vec3<U>) -> vec3<u32> where: T is u32, U is abstract-int, abstract-float, f32, f16, i32 or bool
+ vec3<T>(vec3<U>) -> vec3<bool> where: T is bool, U is abstract-int, abstract-float, f32, f16, i32 or u32
+)");
+}
+
+TEST_F(WgslIntrinsicTableTest, MismatchTypeInitializerExplicit) {
+ auto* i32 = create<core::type::I32>();
+ auto* f32 = create<core::type::F32>();
+ auto result =
+ table.Lookup(CtorConv::kVec3, i32, Vector{i32, f32, i32}, core::EvaluationStage::kConstant);
+ ASSERT_NE(result, Success);
+ EXPECT_EQ(result.Failure(),
+ R"(no matching constructor for vec3<i32>(i32, f32, i32)
+
+7 candidate constructors:
+ vec3(x: T, y: T, z: T) -> vec3<T> where: T is abstract-int, abstract-float, f32, f16, i32, u32 or bool
+ vec3(x: T, yz: vec2<T>) -> vec3<T> where: T is abstract-int, abstract-float, f32, f16, i32, u32 or bool
+ vec3(T) -> vec3<T> where: T is abstract-int, abstract-float, f32, f16, i32, u32 or bool
+ vec3(xy: vec2<T>, z: T) -> vec3<T> where: T is abstract-int, abstract-float, f32, f16, i32, u32 or bool
+ vec3(vec3<T>) -> vec3<T> where: T is abstract-int, abstract-float, f32, f16, i32, u32 or bool
+ vec3() -> vec3<abstract-int>
+ vec3<T>() -> vec3<T> where: T is f32, f16, i32, u32 or bool
+
+5 candidate conversions:
+ vec3<T>(vec3<U>) -> vec3<f32> where: T is f32, U is abstract-int, abstract-float, i32, f16, u32 or bool
+ vec3<T>(vec3<U>) -> vec3<f16> where: T is f16, U is abstract-int, abstract-float, f32, i32, u32 or bool
+ vec3<T>(vec3<U>) -> vec3<i32> where: T is i32, U is abstract-int, abstract-float, f32, f16, u32 or bool
+ vec3<T>(vec3<U>) -> vec3<u32> where: T is u32, U is abstract-int, abstract-float, f32, f16, i32 or bool
+ vec3<T>(vec3<U>) -> vec3<bool> where: T is bool, U is abstract-int, abstract-float, f32, f16, i32 or u32
+)");
+}
+
+TEST_F(WgslIntrinsicTableTest, MatchTypeInitializerImplicitVecFromVecAbstract) {
+ auto* ai = create<core::type::AbstractInt>();
+ auto* vec3_ai = create<core::type::Vector>(ai, 3u);
+ auto result =
+ table.Lookup(CtorConv::kVec3, nullptr, Vector{vec3_ai}, core::EvaluationStage::kConstant);
+ ASSERT_EQ(result, Success);
+ EXPECT_EQ(result->return_type, vec3_ai);
+ EXPECT_TRUE(result->info->flags.Contains(OverloadFlag::kIsConstructor));
+ ASSERT_EQ(result->parameters.Length(), 1u);
+ EXPECT_EQ(result->parameters[0].type, vec3_ai);
+ EXPECT_NE(result->const_eval_fn, nullptr);
+}
+
+TEST_F(WgslIntrinsicTableTest, MatchTypeInitializerImplicitMatFromVec) {
+ auto* af = create<core::type::AbstractFloat>();
+ auto* vec2_ai = create<core::type::Vector>(create<core::type::AbstractInt>(), 2u);
+ auto* vec2_af = create<core::type::Vector>(af, 2u);
+ auto* mat2x2_af = create<core::type::Matrix>(vec2_af, 2u);
+ auto result = table.Lookup(CtorConv::kMat2x2, nullptr, Vector{vec2_ai, vec2_ai},
+ core::EvaluationStage::kConstant);
+ ASSERT_EQ(result, Success);
+ EXPECT_TYPE(result->return_type, mat2x2_af);
+ EXPECT_TRUE(result->info->flags.Contains(OverloadFlag::kIsConstructor));
+ ASSERT_EQ(result->parameters.Length(), 2u);
+ EXPECT_TYPE(result->parameters[0].type, vec2_af);
+ EXPECT_TYPE(result->parameters[1].type, vec2_af);
+ EXPECT_NE(result->const_eval_fn, nullptr);
+}
+
+TEST_F(WgslIntrinsicTableTest, MatchTypeInitializer_ConstantEval) {
+ auto* ai = create<core::type::AbstractInt>();
+ auto* vec3_ai = create<core::type::Vector>(ai, 3u);
+ auto result = table.Lookup(CtorConv::kVec3, nullptr, Vector{ai, ai, ai},
+ core::EvaluationStage::kConstant);
+ ASSERT_EQ(result, Success);
+ EXPECT_NE(result->const_eval_fn, nullptr);
+ EXPECT_EQ(result->return_type, vec3_ai);
+ EXPECT_TRUE(result->info->flags.Contains(OverloadFlag::kIsConstructor));
+ ASSERT_EQ(result->parameters.Length(), 3u);
+ EXPECT_EQ(result->parameters[0].type, ai);
+ EXPECT_EQ(result->parameters[1].type, ai);
+ EXPECT_EQ(result->parameters[2].type, ai);
+ EXPECT_NE(result->const_eval_fn, nullptr);
+}
+
+TEST_F(WgslIntrinsicTableTest, MatchTypeInitializer_RuntimeEval) {
+ auto* ai = create<core::type::AbstractInt>();
+ auto result =
+ table.Lookup(CtorConv::kVec3, nullptr, Vector{ai, ai, ai}, core::EvaluationStage::kRuntime);
+ auto* i32 = create<core::type::I32>();
+ auto* vec3i = create<core::type::Vector>(i32, 3u);
+ ASSERT_EQ(result, Success);
+ EXPECT_NE(result->const_eval_fn, nullptr);
+ EXPECT_EQ(result->return_type, vec3i);
+ EXPECT_TRUE(result->info->flags.Contains(OverloadFlag::kIsConstructor));
+ ASSERT_EQ(result->parameters.Length(), 3u);
+ EXPECT_EQ(result->parameters[0].type, i32);
+ EXPECT_EQ(result->parameters[1].type, i32);
+ EXPECT_EQ(result->parameters[2].type, i32);
+ EXPECT_NE(result->const_eval_fn, nullptr);
+}
+
+TEST_F(WgslIntrinsicTableTest, MatchTypeConversion) {
+ auto* i32 = create<core::type::I32>();
+ auto* vec3i = create<core::type::Vector>(i32, 3u);
+ auto* f32 = create<core::type::F32>();
+ auto* vec3f = create<core::type::Vector>(f32, 3u);
+ auto result =
+ table.Lookup(CtorConv::kVec3, i32, Vector{vec3f}, core::EvaluationStage::kConstant);
+ ASSERT_EQ(result, Success);
+ EXPECT_EQ(result->return_type, vec3i);
+ EXPECT_FALSE(result->info->flags.Contains(OverloadFlag::kIsConstructor));
+ ASSERT_EQ(result->parameters.Length(), 1u);
+ EXPECT_EQ(result->parameters[0].type, vec3f);
+}
+
+TEST_F(WgslIntrinsicTableTest, MismatchTypeConversion) {
+ auto* arr = create<core::type::Array>(create<core::type::U32>(),
+ create<core::type::RuntimeArrayCount>(), 4u, 4u, 4u, 4u);
+ auto* f32 = create<core::type::F32>();
+ auto result = table.Lookup(CtorConv::kVec3, f32, Vector{arr}, core::EvaluationStage::kConstant);
+ ASSERT_NE(result, Success);
+ EXPECT_EQ(result.Failure(),
+ R"(no matching constructor for vec3<f32>(array<u32>)
+
+7 candidate constructors:
+ vec3(vec3<T>) -> vec3<T> where: T is abstract-int, abstract-float, f32, f16, i32, u32 or bool
+ vec3(T) -> vec3<T> where: T is abstract-int, abstract-float, f32, f16, i32, u32 or bool
+ vec3() -> vec3<abstract-int>
+ vec3<T>() -> vec3<T> where: T is f32, f16, i32, u32 or bool
+ vec3(xy: vec2<T>, z: T) -> vec3<T> where: T is abstract-int, abstract-float, f32, f16, i32, u32 or bool
+ vec3(x: T, yz: vec2<T>) -> vec3<T> where: T is abstract-int, abstract-float, f32, f16, i32, u32 or bool
+ vec3(x: T, y: T, z: T) -> vec3<T> where: T is abstract-int, abstract-float, f32, f16, i32, u32 or bool
+
+5 candidate conversions:
+ vec3<T>(vec3<U>) -> vec3<f32> where: T is f32, U is abstract-int, abstract-float, i32, f16, u32 or bool
+ vec3<T>(vec3<U>) -> vec3<f16> where: T is f16, U is abstract-int, abstract-float, f32, i32, u32 or bool
+ vec3<T>(vec3<U>) -> vec3<i32> where: T is i32, U is abstract-int, abstract-float, f32, f16, u32 or bool
+ vec3<T>(vec3<U>) -> vec3<u32> where: T is u32, U is abstract-int, abstract-float, f32, f16, i32 or bool
+ vec3<T>(vec3<U>) -> vec3<bool> where: T is bool, U is abstract-int, abstract-float, f32, f16, i32 or u32
+)");
+}
+
+TEST_F(WgslIntrinsicTableTest, MatchTypeConversion_ConstantEval) {
+ auto* ai = create<core::type::AbstractInt>();
+ auto* af = create<core::type::AbstractFloat>();
+ auto* vec3_ai = create<core::type::Vector>(ai, 3u);
+ auto* f32 = create<core::type::F32>();
+ auto* vec3f = create<core::type::Vector>(f32, 3u);
+ auto result =
+ table.Lookup(CtorConv::kVec3, af, Vector{vec3_ai}, core::EvaluationStage::kConstant);
+ ASSERT_EQ(result, Success);
+ EXPECT_NE(result->const_eval_fn, nullptr);
+ // NOTE: Conversions are explicit, so there's no way to have it return abstracts
+ EXPECT_EQ(result->return_type, vec3f);
+ EXPECT_FALSE(result->info->flags.Contains(OverloadFlag::kIsConstructor));
+ ASSERT_EQ(result->parameters.Length(), 1u);
+ EXPECT_EQ(result->parameters[0].type, vec3_ai);
+}
+
+TEST_F(WgslIntrinsicTableTest, MatchTypeConversion_RuntimeEval) {
+ auto* ai = create<core::type::AbstractInt>();
+ auto* af = create<core::type::AbstractFloat>();
+ auto* vec3_ai = create<core::type::Vector>(ai, 3u);
+ auto* vec3f = create<core::type::Vector>(create<core::type::F32>(), 3u);
+ auto* vec3i = create<core::type::Vector>(create<core::type::I32>(), 3u);
+ auto result =
+ table.Lookup(CtorConv::kVec3, af, Vector{vec3_ai}, core::EvaluationStage::kRuntime);
+ ASSERT_EQ(result, Success);
+ EXPECT_NE(result->const_eval_fn, nullptr);
+ EXPECT_EQ(result->return_type, vec3f);
+ EXPECT_FALSE(result->info->flags.Contains(OverloadFlag::kIsConstructor));
+ ASSERT_EQ(result->parameters.Length(), 1u);
+ EXPECT_EQ(result->parameters[0].type, vec3i);
+}
+
+TEST_F(WgslIntrinsicTableTest, Err257Arguments) { // crbug.com/1323605
+ auto* f32 = create<core::type::F32>();
+ Vector<const core::type::Type*, 0> arg_tys;
+ arg_tys.Resize(257, f32);
+ auto result =
+ table.Lookup(wgsl::BuiltinFn::kAbs, std::move(arg_tys), core::EvaluationStage::kConstant);
+ ASSERT_NE(result, Success);
+ ASSERT_THAT(result.Failure(), HasSubstr("no matching call"));
+}
+
+TEST_F(WgslIntrinsicTableTest, OverloadResolution) {
+ // i32(abstract-int) produces candidates for both:
+ // ctor i32(i32) -> i32
+ // conv i32<T: scalar_no_i32>(T) -> i32
+ // The first should win overload resolution.
+ auto* ai = create<core::type::AbstractInt>();
+ auto* i32 = create<core::type::I32>();
+ auto result =
+ table.Lookup(CtorConv::kI32, nullptr, Vector{ai}, core::EvaluationStage::kConstant);
+ ASSERT_EQ(result, Success);
+ EXPECT_EQ(result->return_type, i32);
+ EXPECT_EQ(result->parameters.Length(), 1u);
+ EXPECT_EQ(result->parameters[0].type, ai);
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// AbstractBinaryTests
+////////////////////////////////////////////////////////////////////////////////
+namespace AbstractBinaryTests {
+struct Case {
+ template <typename RESULT,
+ typename PARAM_LHS,
+ typename PARAM_RHS,
+ typename ARG_LHS,
+ typename ARG_RHS>
+ static Case Create(bool match = true) {
+ return {
+ match, //
+ resolver::builder::DataType<RESULT>::Sem, //
+ resolver::builder::DataType<PARAM_LHS>::Sem, //
+ resolver::builder::DataType<PARAM_RHS>::Sem, //
+ resolver::builder::DataType<ARG_LHS>::Sem, //
+ resolver::builder::DataType<ARG_RHS>::Sem, //
+ };
+ }
+ bool expected_match;
+ resolver::builder::sem_type_func_ptr expected_result;
+ resolver::builder::sem_type_func_ptr expected_param_lhs;
+ resolver::builder::sem_type_func_ptr expected_param_rhs;
+ resolver::builder::sem_type_func_ptr arg_lhs;
+ resolver::builder::sem_type_func_ptr arg_rhs;
+};
+
+struct IntrinsicTableAbstractBinaryTest : public resolver::ResolverTestWithParam<Case> {
+ core::intrinsic::Table<Dialect> table{Types(), Symbols()};
+};
+
+TEST_P(IntrinsicTableAbstractBinaryTest, MatchAdd) {
+ auto* arg_lhs = GetParam().arg_lhs(*this);
+ auto* arg_rhs = GetParam().arg_rhs(*this);
+ auto result =
+ table.Lookup(core::BinaryOp::kAdd, arg_lhs, arg_rhs, core::EvaluationStage::kConstant,
+ /* is_compound */ false);
+
+ bool matched = result == Success;
+ bool expected_match = GetParam().expected_match;
+ EXPECT_EQ(matched, expected_match) << Diagnostics();
+
+ if (matched) {
+ auto* expected_result = GetParam().expected_result(*this);
+ EXPECT_TYPE(result->return_type, expected_result);
+
+ auto* expected_param_lhs = GetParam().expected_param_lhs(*this);
+ EXPECT_TYPE(result->parameters[0].type, expected_param_lhs);
+
+ auto* expected_param_rhs = GetParam().expected_param_rhs(*this);
+ EXPECT_TYPE(result->parameters[1].type, expected_param_rhs);
+ }
+}
+
+INSTANTIATE_TEST_SUITE_P(AFloat_AInt,
+ IntrinsicTableAbstractBinaryTest,
+ testing::Values( // clang-format off
+// result | param lhs | param rhs | arg lhs | arg rhs
+Case::Create<AFloat, AFloat, AFloat, AFloat, AFloat>(),
+Case::Create<AFloat, AFloat, AFloat, AFloat, AInt>(),
+Case::Create<AFloat, AFloat, AFloat, AInt, AFloat>(),
+Case::Create<AInt, AInt, AInt, AInt, AInt>()
+ )); // clang-format on
+
+INSTANTIATE_TEST_SUITE_P(
+ VecAFloat_VecAInt,
+ IntrinsicTableAbstractBinaryTest,
+ testing::Values( // clang-format off
+// result | param lhs | param rhs | arg lhs | arg rhs
+Case::Create<AFloatV, AFloatV, AFloatV, AFloatV, AFloatV>(),
+Case::Create<AFloatV, AFloatV, AFloatV, AFloatV, AIntV>(),
+Case::Create<AFloatV, AFloatV, AFloatV, AIntV, AFloatV>(),
+Case::Create<AIntV, AIntV, AIntV, AIntV, AIntV>()
+ )); // clang-format on
+
+INSTANTIATE_TEST_SUITE_P(AFloat_f32,
+ IntrinsicTableAbstractBinaryTest,
+ testing::Values( // clang-format off
+// result | param lhs | param rhs | arg lhs | arg rhs
+Case::Create<f32, f32, f32, AFloat, f32>(),
+Case::Create<f32, f32, f32, f32, AFloat>()
+ )); // clang-format on
+
+INSTANTIATE_TEST_SUITE_P(VecAFloat_Vecf32,
+ IntrinsicTableAbstractBinaryTest,
+ testing::Values( // clang-format off
+// result | param lhs | param rhs | arg lhs | arg rhs
+Case::Create<f32V, f32V, f32V, AFloatV, f32V>(),
+Case::Create<f32V, f32V, f32V, f32V, AFloatV>()
+ )); // clang-format on
+
+INSTANTIATE_TEST_SUITE_P(
+ AFloat_i32,
+ IntrinsicTableAbstractBinaryTest,
+ testing::Values( // clang-format off
+// result | param lhs | param rhs | arg lhs | arg rhs
+Case::Create<void, void, void, AFloat, i32>(false),
+Case::Create<void, void, void, i32, AFloat>(false)
+ )); // clang-format on
+
+INSTANTIATE_TEST_SUITE_P(
+ VecAFloat_Veci32,
+ IntrinsicTableAbstractBinaryTest,
+ testing::Values( // clang-format off
+// result | param lhs | param rhs | arg lhs | arg rhs
+Case::Create<void, void, void, AFloatV, i32V>(false),
+Case::Create<void, void, void, i32V, AFloatV>(false)
+ )); // clang-format on
+
+INSTANTIATE_TEST_SUITE_P(
+ AFloat_u32,
+ IntrinsicTableAbstractBinaryTest,
+ testing::Values( // clang-format off
+// result | param lhs | param rhs | arg lhs | arg rhs
+Case::Create<void, void, void, AFloat, u32>(false),
+Case::Create<void, void, void, u32, AFloat>(false)
+ )); // clang-format on
+
+INSTANTIATE_TEST_SUITE_P(
+ VecAFloat_Vecu32,
+ IntrinsicTableAbstractBinaryTest,
+ testing::Values( // clang-format off
+// result | param lhs | param rhs | arg lhs | arg rhs
+Case::Create<void, void, void, AFloatV, u32V>(false),
+Case::Create<void, void, void, u32V, AFloatV>(false)
+ )); // clang-format on
+
+INSTANTIATE_TEST_SUITE_P(AInt_f32,
+ IntrinsicTableAbstractBinaryTest,
+ testing::Values( // clang-format off
+// result | param lhs | param rhs | arg lhs | arg rhs
+Case::Create<f32, f32, f32, AInt, f32>(),
+Case::Create<f32, f32, f32, f32, AInt>()
+ )); // clang-format on
+
+INSTANTIATE_TEST_SUITE_P(VecAInt_Vecf32,
+ IntrinsicTableAbstractBinaryTest,
+ testing::Values( // clang-format off
+// result | param lhs | param rhs | arg lhs | arg rhs
+Case::Create<f32V, f32V, f32V, AIntV, f32V>(),
+Case::Create<f32V, f32V, f32V, f32V, AIntV>()
+ )); // clang-format on
+
+INSTANTIATE_TEST_SUITE_P(AInt_i32,
+ IntrinsicTableAbstractBinaryTest,
+ testing::Values( // clang-format off
+// result | param lhs | param rhs | arg lhs | arg rhs
+Case::Create<i32, i32, i32, AInt, i32>(),
+Case::Create<i32, i32, i32, i32, AInt>()
+ )); // clang-format on
+
+INSTANTIATE_TEST_SUITE_P(VecAInt_Veci32,
+ IntrinsicTableAbstractBinaryTest,
+ testing::Values( // clang-format off
+// result | param lhs | param rhs | arg lhs | arg rhs
+Case::Create<i32V, i32V, i32V, AIntV, i32V>(),
+Case::Create<i32V, i32V, i32V, i32V, AIntV>()
+ )); // clang-format on
+
+INSTANTIATE_TEST_SUITE_P(AInt_u32,
+ IntrinsicTableAbstractBinaryTest,
+ testing::Values( // clang-format off
+// result | param lhs | param rhs | arg lhs | arg rhs
+Case::Create<u32, u32, u32, AInt, u32>(),
+Case::Create<u32, u32, u32, u32, AInt>()
+ )); // clang-format on
+
+INSTANTIATE_TEST_SUITE_P(VecAInt_Vecu32,
+ IntrinsicTableAbstractBinaryTest,
+ testing::Values( // clang-format off
+// result | param lhs | param rhs | arg lhs | arg rhs
+Case::Create<u32V, u32V, u32V, AIntV, u32V>(),
+Case::Create<u32V, u32V, u32V, u32V, AIntV>()
+ )); // clang-format on
+
+} // namespace AbstractBinaryTests
+
+////////////////////////////////////////////////////////////////////////////////
+// AbstractTernaryTests
+////////////////////////////////////////////////////////////////////////////////
+namespace AbstractTernaryTests {
+struct Case {
+ template <typename RESULT,
+ typename PARAM_A,
+ typename PARAM_B,
+ typename PARAM_C,
+ typename ARG_A,
+ typename ARG_B,
+ typename ARG_C>
+ static Case Create(bool match = true) {
+ return {
+ match,
+ resolver::builder::DataType<RESULT>::Sem, //
+ resolver::builder::DataType<PARAM_A>::Sem, //
+ resolver::builder::DataType<PARAM_B>::Sem, //
+ resolver::builder::DataType<PARAM_C>::Sem, //
+ resolver::builder::DataType<ARG_A>::Sem, //
+ resolver::builder::DataType<ARG_B>::Sem, //
+ resolver::builder::DataType<ARG_C>::Sem, //
+ };
+ }
+ bool expected_match;
+ resolver::builder::sem_type_func_ptr expected_result;
+ resolver::builder::sem_type_func_ptr expected_param_a;
+ resolver::builder::sem_type_func_ptr expected_param_b;
+ resolver::builder::sem_type_func_ptr expected_param_c;
+ resolver::builder::sem_type_func_ptr arg_a;
+ resolver::builder::sem_type_func_ptr arg_b;
+ resolver::builder::sem_type_func_ptr arg_c;
+};
+
+struct IntrinsicTableAbstractTernaryTest : public resolver::ResolverTestWithParam<Case> {
+ core::intrinsic::Table<Dialect> table{Types(), Symbols()};
+};
+
+TEST_P(IntrinsicTableAbstractTernaryTest, MatchClamp) {
+ auto* arg_a = GetParam().arg_a(*this);
+ auto* arg_b = GetParam().arg_b(*this);
+ auto* arg_c = GetParam().arg_c(*this);
+ auto builtin = table.Lookup(wgsl::BuiltinFn::kClamp, Vector{arg_a, arg_b, arg_c},
+ core::EvaluationStage::kConstant);
+
+ bool expected_match = GetParam().expected_match;
+ EXPECT_EQ(builtin == Success, expected_match) << Diagnostics();
+
+ auto* result = builtin == Success ? builtin->return_type : nullptr;
+ auto* expected_result = GetParam().expected_result(*this);
+ EXPECT_TYPE(result, expected_result);
+
+ auto* param_a = builtin == Success ? builtin->parameters[0].type : nullptr;
+ auto* expected_param_a = GetParam().expected_param_a(*this);
+ EXPECT_TYPE(param_a, expected_param_a);
+
+ auto* param_b = builtin == Success ? builtin->parameters[1].type : nullptr;
+ auto* expected_param_b = GetParam().expected_param_b(*this);
+ EXPECT_TYPE(param_b, expected_param_b);
+
+ auto* param_c = builtin == Success ? builtin->parameters[2].type : nullptr;
+ auto* expected_param_c = GetParam().expected_param_c(*this);
+ EXPECT_TYPE(param_c, expected_param_c);
+}
+
+INSTANTIATE_TEST_SUITE_P(
+ AFloat_AInt,
+ IntrinsicTableAbstractTernaryTest,
+ testing::Values( // clang-format off
+// result | param a | param b | param c | arg a | arg b | arg c
+Case::Create<AFloat, AFloat, AFloat, AFloat, AFloat, AFloat, AFloat>(),
+Case::Create<AFloat, AFloat, AFloat, AFloat, AFloat, AFloat, AInt>(),
+Case::Create<AFloat, AFloat, AFloat, AFloat, AFloat, AInt, AFloat>(),
+Case::Create<AFloat, AFloat, AFloat, AFloat, AFloat, AInt, AInt>(),
+Case::Create<AFloat, AFloat, AFloat, AFloat, AInt, AFloat, AFloat>(),
+Case::Create<AFloat, AFloat, AFloat, AFloat, AInt, AFloat, AInt>(),
+Case::Create<AFloat, AFloat, AFloat, AFloat, AInt, AInt, AFloat>(),
+Case::Create<AInt, AInt, AInt, AInt, AInt, AInt, AInt>()
+ // clang-format on
+ ));
+
+INSTANTIATE_TEST_SUITE_P(
+ VecAFloat_VecAInt,
+ IntrinsicTableAbstractTernaryTest,
+ testing::Values( // clang-format off
+// result | param a | param b | param c | arg a | arg b | arg c
+Case::Create<AFloatV, AFloatV, AFloatV, AFloatV, AFloatV, AFloatV, AFloatV>(),
+Case::Create<AFloatV, AFloatV, AFloatV, AFloatV, AFloatV, AFloatV, AIntV>(),
+Case::Create<AFloatV, AFloatV, AFloatV, AFloatV, AFloatV, AIntV, AFloatV>(),
+Case::Create<AFloatV, AFloatV, AFloatV, AFloatV, AFloatV, AIntV, AIntV>(),
+Case::Create<AFloatV, AFloatV, AFloatV, AFloatV, AIntV, AFloatV, AFloatV>(),
+Case::Create<AFloatV, AFloatV, AFloatV, AFloatV, AIntV, AFloatV, AIntV>(),
+Case::Create<AFloatV, AFloatV, AFloatV, AFloatV, AIntV, AIntV, AFloatV>(),
+Case::Create<AIntV, AIntV, AIntV, AIntV, AIntV, AIntV, AIntV>()
+ // clang-format on
+ ));
+
+INSTANTIATE_TEST_SUITE_P(
+ AFloat_f32,
+ IntrinsicTableAbstractTernaryTest,
+ testing::Values( // clang-format off
+// result | param a | param b | param c | arg a | arg b | arg c
+Case::Create<f32, f32, f32, f32, AFloat, AFloat, f32>(),
+Case::Create<f32, f32, f32, f32, AFloat, f32, AFloat>(),
+Case::Create<f32, f32, f32, f32, AFloat, f32, f32>(),
+Case::Create<f32, f32, f32, f32, f32, AFloat, AFloat>(),
+Case::Create<f32, f32, f32, f32, f32, AFloat, f32>(),
+Case::Create<f32, f32, f32, f32, f32, f32, AFloat>()
+ // clang-format on
+ ));
+
+INSTANTIATE_TEST_SUITE_P(
+ VecAFloat_Vecf32,
+ IntrinsicTableAbstractTernaryTest,
+ testing::Values( // clang-format off
+// result | param a | param b | param c | arg a | arg b | arg c
+Case::Create<f32V, f32V, f32V, f32V, AFloatV, AFloatV, f32V>(),
+Case::Create<f32V, f32V, f32V, f32V, AFloatV, f32V, AFloatV>(),
+Case::Create<f32V, f32V, f32V, f32V, AFloatV, f32V, f32V>(),
+Case::Create<f32V, f32V, f32V, f32V, f32V, AFloatV, AFloatV>(),
+Case::Create<f32V, f32V, f32V, f32V, f32V, AFloatV, f32V>(),
+Case::Create<f32V, f32V, f32V, f32V, f32V, f32V, AFloatV> ()
+ // clang-format on
+ ));
+
+INSTANTIATE_TEST_SUITE_P(
+ AFloat_i32,
+ IntrinsicTableAbstractTernaryTest,
+ testing::Values( // clang-format off
+// result | param a | param b | param c | arg a | arg b | arg c
+Case::Create<void, void, void, void, AFloat, AFloat, i32>(false),
+Case::Create<void, void, void, void, AFloat, i32, AFloat>(false),
+Case::Create<void, void, void, void, AFloat, i32, i32>(false),
+Case::Create<void, void, void, void, i32, AFloat, AFloat>(false),
+Case::Create<void, void, void, void, i32, AFloat, i32>(false),
+Case::Create<void, void, void, void, i32, i32, AFloat>(false)
+ // clang-format on
+ ));
+
+INSTANTIATE_TEST_SUITE_P(
+ VecAFloat_Veci32,
+ IntrinsicTableAbstractTernaryTest,
+ testing::Values( // clang-format off
+// result | param a | param b | param c | arg a | arg b | arg c
+Case::Create<void, void, void, void, AFloatV, AFloatV, i32V>(false),
+Case::Create<void, void, void, void, AFloatV, i32V, AFloatV>(false),
+Case::Create<void, void, void, void, AFloatV, i32V, i32V>(false),
+Case::Create<void, void, void, void, i32V, AFloatV, AFloatV>(false),
+Case::Create<void, void, void, void, i32V, AFloatV, i32V>(false),
+Case::Create<void, void, void, void, i32V, i32V, AFloatV>(false)
+ // clang-format on
+ ));
+
+INSTANTIATE_TEST_SUITE_P(
+ AFloat_u32,
+ IntrinsicTableAbstractTernaryTest,
+ testing::Values( // clang-format off
+// result | param a | param b | param c | arg a | arg b | arg c
+Case::Create<void, void, void, void, AFloat, AFloat, u32>(false),
+Case::Create<void, void, void, void, AFloat, u32, AFloat>(false),
+Case::Create<void, void, void, void, AFloat, u32, u32>(false),
+Case::Create<void, void, void, void, u32, AFloat, AFloat>(false),
+Case::Create<void, void, void, void, u32, AFloat, u32>(false),
+Case::Create<void, void, void, void, u32, u32, AFloat>(false)
+ // clang-format on
+ ));
+
+INSTANTIATE_TEST_SUITE_P(
+ VecAFloat_Vecu32,
+ IntrinsicTableAbstractTernaryTest,
+ testing::Values( // clang-format off
+// result | param a | param b | param c | arg a | arg b | arg c
+Case::Create<void, void, void, void, AFloatV, AFloatV, u32V>(false),
+Case::Create<void, void, void, void, AFloatV, u32V, AFloatV>(false),
+Case::Create<void, void, void, void, AFloatV, u32V, u32V>(false),
+Case::Create<void, void, void, void, u32V, AFloatV, AFloatV>(false),
+Case::Create<void, void, void, void, u32V, AFloatV, u32V>(false),
+Case::Create<void, void, void, void, u32V, u32V, AFloatV>(false)
+ // clang-format on
+ ));
+
+INSTANTIATE_TEST_SUITE_P(
+ AInt_f32,
+ IntrinsicTableAbstractTernaryTest,
+ testing::Values( // clang-format off
+// result | param a | param b | param c | arg a | arg b | arg c
+Case::Create<f32, f32, f32, f32, AInt, AInt, f32>(),
+Case::Create<f32, f32, f32, f32, AInt, f32, AInt>(),
+Case::Create<f32, f32, f32, f32, AInt, f32, f32>(),
+Case::Create<f32, f32, f32, f32, f32, AInt, AInt>(),
+Case::Create<f32, f32, f32, f32, f32, AInt, f32>(),
+Case::Create<f32, f32, f32, f32, f32, f32, AInt>()
+ // clang-format on
+ ));
+
+INSTANTIATE_TEST_SUITE_P(
+ VecAInt_Vecf32,
+ IntrinsicTableAbstractTernaryTest,
+ testing::Values( // clang-format off
+// result | param a | param b | param c | arg a | arg b | arg c
+Case::Create<f32V, f32V, f32V, f32V, AIntV, AIntV, f32V>(),
+Case::Create<f32V, f32V, f32V, f32V, AIntV, f32V, AIntV>(),
+Case::Create<f32V, f32V, f32V, f32V, AIntV, f32V, f32V>(),
+Case::Create<f32V, f32V, f32V, f32V, f32V, AIntV, AIntV>(),
+Case::Create<f32V, f32V, f32V, f32V, f32V, AIntV, f32V>(),
+Case::Create<f32V, f32V, f32V, f32V, f32V, f32V, AIntV>()
+ // clang-format on
+ ));
+
+INSTANTIATE_TEST_SUITE_P(
+ AInt_i32,
+ IntrinsicTableAbstractTernaryTest,
+ testing::Values( // clang-format off
+// result | param a | param b | param c | arg a | arg b | arg c
+Case::Create<i32, i32, i32, i32, AInt, AInt, i32>(),
+Case::Create<i32, i32, i32, i32, AInt, i32, AInt>(),
+Case::Create<i32, i32, i32, i32, AInt, i32, i32>(),
+Case::Create<i32, i32, i32, i32, i32, AInt, AInt>(),
+Case::Create<i32, i32, i32, i32, i32, AInt, i32>(),
+Case::Create<i32, i32, i32, i32, i32, i32, AInt>()
+ // clang-format on
+ ));
+
+INSTANTIATE_TEST_SUITE_P(
+ VecAInt_Veci32,
+ IntrinsicTableAbstractTernaryTest,
+ testing::Values( // clang-format off
+// result | param a | param b | param c | arg a | arg b | arg c
+Case::Create<i32V, i32V, i32V, i32V, AIntV, AIntV, i32V>(),
+Case::Create<i32V, i32V, i32V, i32V, AIntV, i32V, AIntV>(),
+Case::Create<i32V, i32V, i32V, i32V, AIntV, i32V, i32V>(),
+Case::Create<i32V, i32V, i32V, i32V, i32V, AIntV, AIntV>(),
+Case::Create<i32V, i32V, i32V, i32V, i32V, AIntV, i32V>(),
+Case::Create<i32V, i32V, i32V, i32V, i32V, i32V, AIntV>()
+ // clang-format on
+ ));
+
+INSTANTIATE_TEST_SUITE_P(
+ AInt_u32,
+ IntrinsicTableAbstractTernaryTest,
+ testing::Values( // clang-format off
+// result | param a | param b | param c | arg a | arg b | arg c
+Case::Create<u32, u32, u32, u32, AInt, AInt, u32>(),
+Case::Create<u32, u32, u32, u32, AInt, u32, AInt>(),
+Case::Create<u32, u32, u32, u32, AInt, u32, u32>(),
+Case::Create<u32, u32, u32, u32, u32, AInt, AInt>(),
+Case::Create<u32, u32, u32, u32, u32, AInt, u32>(),
+Case::Create<u32, u32, u32, u32, u32, u32, AInt>()
+ // clang-format on
+ ));
+
+INSTANTIATE_TEST_SUITE_P(
+ VecAInt_Vecu32,
+ IntrinsicTableAbstractTernaryTest,
+ testing::Values( // clang-format off
+// result | param a | param b | param c | arg a | arg b | arg c
+Case::Create<u32V, u32V, u32V, u32V, AIntV, AIntV, u32V>(),
+Case::Create<u32V, u32V, u32V, u32V, AIntV, u32V, AIntV>(),
+Case::Create<u32V, u32V, u32V, u32V, AIntV, u32V, u32V>(),
+Case::Create<u32V, u32V, u32V, u32V, u32V, AIntV, AIntV>(),
+Case::Create<u32V, u32V, u32V, u32V, u32V, AIntV, u32V>(),
+Case::Create<u32V, u32V, u32V, u32V, u32V, u32V, AIntV>()
+ // clang-format on
+ ));
+
+} // namespace AbstractTernaryTests
+
+} // namespace
+} // namespace tint::wgsl::intrinsic
diff --git a/src/tint/utils/diagnostic/diagnostic_test.cc b/src/tint/utils/diagnostic/diagnostic_test.cc
index 07c44fb..3d76f1e 100644
--- a/src/tint/utils/diagnostic/diagnostic_test.cc
+++ b/src/tint/utils/diagnostic/diagnostic_test.cc
@@ -45,7 +45,7 @@
Diagnostic err_a, err_b;
err_a.severity = Severity::Error;
err_b.severity = Severity::Fatal;
- List list(Vector{err_a, err_b});
+ List list{Vector{err_a, err_b}};
EXPECT_EQ(list.Count(), 2u);
}