From 8800d885e76533b27ef1bfd791863a0e21335717 Mon Sep 17 00:00:00 2001 From: Antonio Maiorano Date: Wed, 5 Oct 2022 01:39:53 +0000 Subject: [PATCH] tint: const eval of 'select' builtin Bug: tint:1581 Change-Id: I222433acb6a30245ab319a15081811f691aca9ff Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/104440 Commit-Queue: Antonio Maiorano Reviewed-by: Ben Clayton Kokoro: Kokoro --- src/tint/intrinsics.def | 6 +- src/tint/resolver/builtin_test.cc | 30 +- src/tint/resolver/const_eval.cc | 62 +- src/tint/resolver/const_eval.h | 18 + src/tint/resolver/const_eval_test.cc | 49 +- src/tint/resolver/intrinsic_table.inl | 7962 ++++++++--------- src/tint/resolver/intrinsic_table_test.cc | 3 +- src/tint/traits.h | 15 +- .../glsl/generator_impl_builtin_test.cc | 12 +- .../hlsl/generator_impl_builtin_test.cc | 12 +- .../select/00b848.wgsl.expected.dxc.hlsl | 2 +- .../select/00b848.wgsl.expected.fxc.hlsl | 2 +- .../literal/select/00b848.wgsl.expected.glsl | 6 +- .../literal/select/00b848.wgsl.expected.msl | 2 +- .../select/00b848.wgsl.expected.spvasm | 37 +- .../select/01e2cd.wgsl.expected.dxc.hlsl | 2 +- .../select/01e2cd.wgsl.expected.fxc.hlsl | 2 +- .../literal/select/01e2cd.wgsl.expected.glsl | 6 +- .../literal/select/01e2cd.wgsl.expected.msl | 2 +- .../select/01e2cd.wgsl.expected.spvasm | 37 +- .../select/087ea4.wgsl.expected.dxc.hlsl | 2 +- .../select/087ea4.wgsl.expected.fxc.hlsl | 2 +- .../literal/select/087ea4.wgsl.expected.glsl | 6 +- .../literal/select/087ea4.wgsl.expected.msl | 2 +- .../select/087ea4.wgsl.expected.spvasm | 40 +- .../builtins/gen/literal/select/089657.wgsl | 43 + .../select/089657.wgsl.expected.dxc.hlsl | 30 + .../select/089657.wgsl.expected.fxc.hlsl | 30 + .../literal/select/089657.wgsl.expected.glsl | 49 + .../literal/select/089657.wgsl.expected.msl | 33 + .../select/089657.wgsl.expected.spvasm | 68 + .../literal/select/089657.wgsl.expected.wgsl | 19 + .../select/10e73b.wgsl.expected.dxc.hlsl | 2 +- .../literal/select/10e73b.wgsl.expected.glsl | 6 +- .../literal/select/10e73b.wgsl.expected.msl | 2 +- .../select/10e73b.wgsl.expected.spvasm | 35 +- .../builtins/gen/literal/select/17441a.wgsl | 43 + .../select/17441a.wgsl.expected.dxc.hlsl | 30 + .../select/17441a.wgsl.expected.fxc.hlsl | 30 + .../literal/select/17441a.wgsl.expected.glsl | 49 + .../literal/select/17441a.wgsl.expected.msl | 33 + .../select/17441a.wgsl.expected.spvasm | 68 + .../literal/select/17441a.wgsl.expected.wgsl | 19 + .../select/1ada2a.wgsl.expected.dxc.hlsl | 2 +- .../literal/select/1ada2a.wgsl.expected.glsl | 6 +- .../literal/select/1ada2a.wgsl.expected.msl | 2 +- .../select/1ada2a.wgsl.expected.spvasm | 38 +- .../select/1e960b.wgsl.expected.dxc.hlsl | 2 +- .../select/1e960b.wgsl.expected.fxc.hlsl | 2 +- .../literal/select/1e960b.wgsl.expected.glsl | 6 +- .../literal/select/1e960b.wgsl.expected.msl | 2 +- .../select/1e960b.wgsl.expected.spvasm | 37 +- .../builtins/gen/literal/select/1f4d93.wgsl | 43 + .../select/1f4d93.wgsl.expected.dxc.hlsl | 30 + .../select/1f4d93.wgsl.expected.fxc.hlsl | 30 + .../literal/select/1f4d93.wgsl.expected.glsl | 49 + .../literal/select/1f4d93.wgsl.expected.msl | 33 + .../select/1f4d93.wgsl.expected.spvasm | 68 + .../literal/select/1f4d93.wgsl.expected.wgsl | 19 + .../select/266aff.wgsl.expected.dxc.hlsl | 2 +- .../select/266aff.wgsl.expected.fxc.hlsl | 2 +- .../literal/select/266aff.wgsl.expected.glsl | 6 +- .../literal/select/266aff.wgsl.expected.msl | 2 +- .../select/266aff.wgsl.expected.spvasm | 37 +- .../select/28a27e.wgsl.expected.dxc.hlsl | 2 +- .../select/28a27e.wgsl.expected.fxc.hlsl | 2 +- .../literal/select/28a27e.wgsl.expected.glsl | 6 +- .../literal/select/28a27e.wgsl.expected.msl | 2 +- .../select/28a27e.wgsl.expected.spvasm | 37 +- .../builtins/gen/literal/select/2c96d4.wgsl | 43 + .../select/2c96d4.wgsl.expected.dxc.hlsl | 30 + .../select/2c96d4.wgsl.expected.fxc.hlsl | 30 + .../literal/select/2c96d4.wgsl.expected.glsl | 49 + .../literal/select/2c96d4.wgsl.expected.msl | 33 + .../select/2c96d4.wgsl.expected.spvasm | 68 + .../literal/select/2c96d4.wgsl.expected.wgsl | 19 + .../builtins/gen/literal/select/3a14be.wgsl | 43 + .../select/3a14be.wgsl.expected.dxc.hlsl | 30 + .../select/3a14be.wgsl.expected.fxc.hlsl | 30 + .../literal/select/3a14be.wgsl.expected.glsl | 49 + .../literal/select/3a14be.wgsl.expected.msl | 33 + .../select/3a14be.wgsl.expected.spvasm | 66 + .../literal/select/3a14be.wgsl.expected.wgsl | 19 + .../select/3c25ce.wgsl.expected.dxc.hlsl | 2 +- .../select/3c25ce.wgsl.expected.fxc.hlsl | 2 +- .../literal/select/3c25ce.wgsl.expected.glsl | 6 +- .../literal/select/3c25ce.wgsl.expected.msl | 2 +- .../select/3c25ce.wgsl.expected.spvasm | 37 +- .../select/416e14.wgsl.expected.dxc.hlsl | 2 +- .../select/416e14.wgsl.expected.fxc.hlsl | 2 +- .../literal/select/416e14.wgsl.expected.glsl | 6 +- .../literal/select/416e14.wgsl.expected.msl | 2 +- .../select/416e14.wgsl.expected.spvasm | 31 +- .../builtins/gen/literal/select/431dfb.wgsl | 43 + .../select/431dfb.wgsl.expected.dxc.hlsl | 30 + .../select/431dfb.wgsl.expected.fxc.hlsl | 30 + .../literal/select/431dfb.wgsl.expected.glsl | 49 + .../literal/select/431dfb.wgsl.expected.msl | 33 + .../select/431dfb.wgsl.expected.spvasm | 66 + .../literal/select/431dfb.wgsl.expected.wgsl | 19 + .../builtins/gen/literal/select/43741e.wgsl | 43 + .../select/43741e.wgsl.expected.dxc.hlsl | 30 + .../select/43741e.wgsl.expected.fxc.hlsl | 30 + .../literal/select/43741e.wgsl.expected.glsl | 49 + .../literal/select/43741e.wgsl.expected.msl | 33 + .../select/43741e.wgsl.expected.spvasm | 68 + .../literal/select/43741e.wgsl.expected.wgsl | 19 + .../builtins/gen/literal/select/494051.wgsl | 43 + .../select/494051.wgsl.expected.dxc.hlsl | 30 + .../select/494051.wgsl.expected.fxc.hlsl | 30 + .../literal/select/494051.wgsl.expected.glsl | 49 + .../literal/select/494051.wgsl.expected.msl | 33 + .../select/494051.wgsl.expected.spvasm | 66 + .../literal/select/494051.wgsl.expected.wgsl | 19 + .../builtins/gen/literal/select/4c4738.wgsl | 43 + .../select/4c4738.wgsl.expected.dxc.hlsl | 30 + .../select/4c4738.wgsl.expected.fxc.hlsl | 30 + .../literal/select/4c4738.wgsl.expected.glsl | 49 + .../literal/select/4c4738.wgsl.expected.msl | 33 + .../select/4c4738.wgsl.expected.spvasm | 64 + .../literal/select/4c4738.wgsl.expected.wgsl | 19 + .../builtins/gen/literal/select/4e60da.wgsl | 43 + .../select/4e60da.wgsl.expected.dxc.hlsl | 30 + .../select/4e60da.wgsl.expected.fxc.hlsl | 30 + .../literal/select/4e60da.wgsl.expected.glsl | 49 + .../literal/select/4e60da.wgsl.expected.msl | 33 + .../select/4e60da.wgsl.expected.spvasm | 68 + .../literal/select/4e60da.wgsl.expected.wgsl | 19 + .../select/51b047.wgsl.expected.dxc.hlsl | 2 +- .../select/51b047.wgsl.expected.fxc.hlsl | 2 +- .../literal/select/51b047.wgsl.expected.glsl | 6 +- .../literal/select/51b047.wgsl.expected.msl | 2 +- .../select/51b047.wgsl.expected.spvasm | 40 +- .../select/53d518.wgsl.expected.dxc.hlsl | 2 +- .../literal/select/53d518.wgsl.expected.glsl | 6 +- .../literal/select/53d518.wgsl.expected.msl | 2 +- .../select/53d518.wgsl.expected.spvasm | 35 +- .../select/713567.wgsl.expected.dxc.hlsl | 2 +- .../select/713567.wgsl.expected.fxc.hlsl | 2 +- .../literal/select/713567.wgsl.expected.glsl | 6 +- .../literal/select/713567.wgsl.expected.msl | 2 +- .../select/713567.wgsl.expected.spvasm | 36 +- .../select/78be5f.wgsl.expected.dxc.hlsl | 2 +- .../select/78be5f.wgsl.expected.fxc.hlsl | 2 +- .../literal/select/78be5f.wgsl.expected.glsl | 6 +- .../literal/select/78be5f.wgsl.expected.msl | 2 +- .../select/78be5f.wgsl.expected.spvasm | 40 +- .../select/80a9a9.wgsl.expected.dxc.hlsl | 2 +- .../select/80a9a9.wgsl.expected.fxc.hlsl | 2 +- .../literal/select/80a9a9.wgsl.expected.glsl | 6 +- .../literal/select/80a9a9.wgsl.expected.msl | 2 +- .../select/80a9a9.wgsl.expected.spvasm | 33 +- .../select/830dd9.wgsl.expected.dxc.hlsl | 2 +- .../literal/select/830dd9.wgsl.expected.glsl | 6 +- .../literal/select/830dd9.wgsl.expected.msl | 2 +- .../select/830dd9.wgsl.expected.spvasm | 38 +- .../select/86f9bd.wgsl.expected.dxc.hlsl | 2 +- .../literal/select/86f9bd.wgsl.expected.glsl | 6 +- .../literal/select/86f9bd.wgsl.expected.msl | 2 +- .../select/86f9bd.wgsl.expected.spvasm | 38 +- .../select/8fa62c.wgsl.expected.dxc.hlsl | 2 +- .../select/8fa62c.wgsl.expected.fxc.hlsl | 2 +- .../literal/select/8fa62c.wgsl.expected.glsl | 6 +- .../literal/select/8fa62c.wgsl.expected.msl | 2 +- .../select/8fa62c.wgsl.expected.spvasm | 40 +- .../select/99f883.wgsl.expected.dxc.hlsl | 2 +- .../select/99f883.wgsl.expected.fxc.hlsl | 2 +- .../literal/select/99f883.wgsl.expected.glsl | 6 +- .../literal/select/99f883.wgsl.expected.msl | 2 +- .../select/99f883.wgsl.expected.spvasm | 35 +- .../builtins/gen/literal/select/9b478d.wgsl | 43 + .../select/9b478d.wgsl.expected.dxc.hlsl | 30 + .../select/9b478d.wgsl.expected.fxc.hlsl | 30 + .../literal/select/9b478d.wgsl.expected.glsl | 49 + .../literal/select/9b478d.wgsl.expected.msl | 33 + .../select/9b478d.wgsl.expected.spvasm | 63 + .../literal/select/9b478d.wgsl.expected.wgsl | 19 + .../select/a081f1.wgsl.expected.dxc.hlsl | 2 +- .../literal/select/a081f1.wgsl.expected.glsl | 6 +- .../literal/select/a081f1.wgsl.expected.msl | 2 +- .../select/a081f1.wgsl.expected.spvasm | 35 +- .../select/a2860e.wgsl.expected.dxc.hlsl | 2 +- .../select/a2860e.wgsl.expected.fxc.hlsl | 2 +- .../literal/select/a2860e.wgsl.expected.glsl | 6 +- .../literal/select/a2860e.wgsl.expected.msl | 2 +- .../select/a2860e.wgsl.expected.spvasm | 37 +- .../select/ab069f.wgsl.expected.dxc.hlsl | 2 +- .../select/ab069f.wgsl.expected.fxc.hlsl | 2 +- .../literal/select/ab069f.wgsl.expected.glsl | 6 +- .../literal/select/ab069f.wgsl.expected.msl | 2 +- .../select/ab069f.wgsl.expected.spvasm | 40 +- .../select/b04721.wgsl.expected.dxc.hlsl | 2 +- .../select/b04721.wgsl.expected.fxc.hlsl | 2 +- .../literal/select/b04721.wgsl.expected.glsl | 6 +- .../literal/select/b04721.wgsl.expected.msl | 2 +- .../select/b04721.wgsl.expected.spvasm | 40 +- .../builtins/gen/literal/select/b93806.wgsl | 43 + .../select/b93806.wgsl.expected.dxc.hlsl | 30 + .../select/b93806.wgsl.expected.fxc.hlsl | 30 + .../literal/select/b93806.wgsl.expected.glsl | 49 + .../literal/select/b93806.wgsl.expected.msl | 33 + .../select/b93806.wgsl.expected.spvasm | 66 + .../literal/select/b93806.wgsl.expected.wgsl | 19 + .../select/bb447f.wgsl.expected.dxc.hlsl | 2 +- .../select/bb447f.wgsl.expected.fxc.hlsl | 2 +- .../literal/select/bb447f.wgsl.expected.glsl | 6 +- .../literal/select/bb447f.wgsl.expected.msl | 2 +- .../select/bb447f.wgsl.expected.spvasm | 40 +- .../select/bb8aae.wgsl.expected.dxc.hlsl | 2 +- .../select/bb8aae.wgsl.expected.fxc.hlsl | 2 +- .../literal/select/bb8aae.wgsl.expected.glsl | 6 +- .../literal/select/bb8aae.wgsl.expected.msl | 2 +- .../select/bb8aae.wgsl.expected.spvasm | 33 +- .../select/bf3d29.wgsl.expected.dxc.hlsl | 2 +- .../select/bf3d29.wgsl.expected.fxc.hlsl | 2 +- .../literal/select/bf3d29.wgsl.expected.glsl | 6 +- .../literal/select/bf3d29.wgsl.expected.msl | 2 +- .../select/bf3d29.wgsl.expected.spvasm | 40 +- .../select/c31f9e.wgsl.expected.dxc.hlsl | 2 +- .../select/c31f9e.wgsl.expected.fxc.hlsl | 2 +- .../literal/select/c31f9e.wgsl.expected.glsl | 6 +- .../literal/select/c31f9e.wgsl.expected.msl | 2 +- .../select/c31f9e.wgsl.expected.spvasm | 31 +- .../select/c41bd1.wgsl.expected.dxc.hlsl | 2 +- .../select/c41bd1.wgsl.expected.fxc.hlsl | 2 +- .../literal/select/c41bd1.wgsl.expected.glsl | 6 +- .../literal/select/c41bd1.wgsl.expected.msl | 2 +- .../select/c41bd1.wgsl.expected.spvasm | 37 +- .../select/c4a4ef.wgsl.expected.dxc.hlsl | 2 +- .../select/c4a4ef.wgsl.expected.fxc.hlsl | 2 +- .../literal/select/c4a4ef.wgsl.expected.glsl | 6 +- .../literal/select/c4a4ef.wgsl.expected.msl | 2 +- .../select/c4a4ef.wgsl.expected.spvasm | 37 +- .../select/cb9301.wgsl.expected.dxc.hlsl | 2 +- .../select/cb9301.wgsl.expected.fxc.hlsl | 2 +- .../literal/select/cb9301.wgsl.expected.glsl | 6 +- .../literal/select/cb9301.wgsl.expected.msl | 2 +- .../select/cb9301.wgsl.expected.spvasm | 33 +- .../builtins/gen/literal/select/dfab3b.wgsl | 43 + .../select/dfab3b.wgsl.expected.dxc.hlsl | 30 + .../select/dfab3b.wgsl.expected.fxc.hlsl | 30 + .../literal/select/dfab3b.wgsl.expected.glsl | 49 + .../literal/select/dfab3b.wgsl.expected.msl | 33 + .../select/dfab3b.wgsl.expected.spvasm | 66 + .../literal/select/dfab3b.wgsl.expected.wgsl | 19 + .../builtins/gen/literal/select/e381c3.wgsl | 43 + .../select/e381c3.wgsl.expected.dxc.hlsl | 30 + .../select/e381c3.wgsl.expected.fxc.hlsl | 30 + .../literal/select/e381c3.wgsl.expected.glsl | 49 + .../literal/select/e381c3.wgsl.expected.msl | 33 + .../select/e381c3.wgsl.expected.spvasm | 64 + .../literal/select/e381c3.wgsl.expected.wgsl | 19 + .../select/e3e028.wgsl.expected.dxc.hlsl | 2 +- .../select/e3e028.wgsl.expected.fxc.hlsl | 2 +- .../literal/select/e3e028.wgsl.expected.glsl | 6 +- .../literal/select/e3e028.wgsl.expected.msl | 2 +- .../select/e3e028.wgsl.expected.spvasm | 33 +- .../select/ebfea2.wgsl.expected.dxc.hlsl | 2 +- .../select/ebfea2.wgsl.expected.fxc.hlsl | 2 +- .../literal/select/ebfea2.wgsl.expected.glsl | 6 +- .../literal/select/ebfea2.wgsl.expected.msl | 2 +- .../select/ebfea2.wgsl.expected.spvasm | 37 +- .../select/ed7c13.wgsl.expected.dxc.hlsl | 2 +- .../literal/select/ed7c13.wgsl.expected.glsl | 6 +- .../literal/select/ed7c13.wgsl.expected.msl | 2 +- .../select/ed7c13.wgsl.expected.spvasm | 35 +- .../select/ed8a15.wgsl.expected.dxc.hlsl | 2 +- .../select/ed8a15.wgsl.expected.fxc.hlsl | 2 +- .../literal/select/ed8a15.wgsl.expected.glsl | 6 +- .../literal/select/ed8a15.wgsl.expected.msl | 2 +- .../select/ed8a15.wgsl.expected.spvasm | 35 +- .../select/fb7e53.wgsl.expected.dxc.hlsl | 2 +- .../select/fb7e53.wgsl.expected.fxc.hlsl | 2 +- .../literal/select/fb7e53.wgsl.expected.glsl | 6 +- .../literal/select/fb7e53.wgsl.expected.msl | 2 +- .../select/fb7e53.wgsl.expected.spvasm | 37 +- test/tint/builtins/gen/var/select/089657.wgsl | 46 + .../var/select/089657.wgsl.expected.dxc.hlsl | 31 + .../var/select/089657.wgsl.expected.fxc.hlsl | 31 + .../gen/var/select/089657.wgsl.expected.glsl | 52 + .../gen/var/select/089657.wgsl.expected.msl | 34 + .../var/select/089657.wgsl.expected.spvasm | 82 + .../gen/var/select/089657.wgsl.expected.wgsl | 22 + test/tint/builtins/gen/var/select/17441a.wgsl | 46 + .../var/select/17441a.wgsl.expected.dxc.hlsl | 31 + .../var/select/17441a.wgsl.expected.fxc.hlsl | 31 + .../gen/var/select/17441a.wgsl.expected.glsl | 52 + .../gen/var/select/17441a.wgsl.expected.msl | 34 + .../var/select/17441a.wgsl.expected.spvasm | 82 + .../gen/var/select/17441a.wgsl.expected.wgsl | 22 + test/tint/builtins/gen/var/select/1f4d93.wgsl | 46 + .../var/select/1f4d93.wgsl.expected.dxc.hlsl | 31 + .../var/select/1f4d93.wgsl.expected.fxc.hlsl | 31 + .../gen/var/select/1f4d93.wgsl.expected.glsl | 52 + .../gen/var/select/1f4d93.wgsl.expected.msl | 34 + .../var/select/1f4d93.wgsl.expected.spvasm | 79 + .../gen/var/select/1f4d93.wgsl.expected.wgsl | 22 + test/tint/builtins/gen/var/select/2c96d4.wgsl | 46 + .../var/select/2c96d4.wgsl.expected.dxc.hlsl | 31 + .../var/select/2c96d4.wgsl.expected.fxc.hlsl | 31 + .../gen/var/select/2c96d4.wgsl.expected.glsl | 52 + .../gen/var/select/2c96d4.wgsl.expected.msl | 34 + .../var/select/2c96d4.wgsl.expected.spvasm | 79 + .../gen/var/select/2c96d4.wgsl.expected.wgsl | 22 + test/tint/builtins/gen/var/select/3a14be.wgsl | 46 + .../var/select/3a14be.wgsl.expected.dxc.hlsl | 31 + .../var/select/3a14be.wgsl.expected.fxc.hlsl | 31 + .../gen/var/select/3a14be.wgsl.expected.glsl | 52 + .../gen/var/select/3a14be.wgsl.expected.msl | 34 + .../var/select/3a14be.wgsl.expected.spvasm | 80 + .../gen/var/select/3a14be.wgsl.expected.wgsl | 22 + test/tint/builtins/gen/var/select/431dfb.wgsl | 46 + .../var/select/431dfb.wgsl.expected.dxc.hlsl | 31 + .../var/select/431dfb.wgsl.expected.fxc.hlsl | 31 + .../gen/var/select/431dfb.wgsl.expected.glsl | 52 + .../gen/var/select/431dfb.wgsl.expected.msl | 34 + .../var/select/431dfb.wgsl.expected.spvasm | 77 + .../gen/var/select/431dfb.wgsl.expected.wgsl | 22 + test/tint/builtins/gen/var/select/43741e.wgsl | 46 + .../var/select/43741e.wgsl.expected.dxc.hlsl | 31 + .../var/select/43741e.wgsl.expected.fxc.hlsl | 31 + .../gen/var/select/43741e.wgsl.expected.glsl | 52 + .../gen/var/select/43741e.wgsl.expected.msl | 34 + .../var/select/43741e.wgsl.expected.spvasm | 79 + .../gen/var/select/43741e.wgsl.expected.wgsl | 22 + test/tint/builtins/gen/var/select/494051.wgsl | 46 + .../var/select/494051.wgsl.expected.dxc.hlsl | 31 + .../var/select/494051.wgsl.expected.fxc.hlsl | 31 + .../gen/var/select/494051.wgsl.expected.glsl | 52 + .../gen/var/select/494051.wgsl.expected.msl | 34 + .../var/select/494051.wgsl.expected.spvasm | 75 + .../gen/var/select/494051.wgsl.expected.wgsl | 22 + test/tint/builtins/gen/var/select/4c4738.wgsl | 46 + .../var/select/4c4738.wgsl.expected.dxc.hlsl | 31 + .../var/select/4c4738.wgsl.expected.fxc.hlsl | 31 + .../gen/var/select/4c4738.wgsl.expected.glsl | 52 + .../gen/var/select/4c4738.wgsl.expected.msl | 34 + .../var/select/4c4738.wgsl.expected.spvasm | 75 + .../gen/var/select/4c4738.wgsl.expected.wgsl | 22 + test/tint/builtins/gen/var/select/4e60da.wgsl | 46 + .../var/select/4e60da.wgsl.expected.dxc.hlsl | 31 + .../var/select/4e60da.wgsl.expected.fxc.hlsl | 31 + .../gen/var/select/4e60da.wgsl.expected.glsl | 52 + .../gen/var/select/4e60da.wgsl.expected.msl | 34 + .../var/select/4e60da.wgsl.expected.spvasm | 82 + .../gen/var/select/4e60da.wgsl.expected.wgsl | 22 + test/tint/builtins/gen/var/select/9b478d.wgsl | 46 + .../var/select/9b478d.wgsl.expected.dxc.hlsl | 31 + .../var/select/9b478d.wgsl.expected.fxc.hlsl | 31 + .../gen/var/select/9b478d.wgsl.expected.glsl | 52 + .../gen/var/select/9b478d.wgsl.expected.msl | 34 + .../var/select/9b478d.wgsl.expected.spvasm | 72 + .../gen/var/select/9b478d.wgsl.expected.wgsl | 22 + test/tint/builtins/gen/var/select/b93806.wgsl | 46 + .../var/select/b93806.wgsl.expected.dxc.hlsl | 31 + .../var/select/b93806.wgsl.expected.fxc.hlsl | 31 + .../gen/var/select/b93806.wgsl.expected.glsl | 52 + .../gen/var/select/b93806.wgsl.expected.msl | 34 + .../var/select/b93806.wgsl.expected.spvasm | 77 + .../gen/var/select/b93806.wgsl.expected.wgsl | 22 + test/tint/builtins/gen/var/select/dfab3b.wgsl | 46 + .../var/select/dfab3b.wgsl.expected.dxc.hlsl | 31 + .../var/select/dfab3b.wgsl.expected.fxc.hlsl | 31 + .../gen/var/select/dfab3b.wgsl.expected.glsl | 52 + .../gen/var/select/dfab3b.wgsl.expected.msl | 34 + .../var/select/dfab3b.wgsl.expected.spvasm | 80 + .../gen/var/select/dfab3b.wgsl.expected.wgsl | 22 + test/tint/builtins/gen/var/select/e381c3.wgsl | 46 + .../var/select/e381c3.wgsl.expected.dxc.hlsl | 31 + .../var/select/e381c3.wgsl.expected.fxc.hlsl | 31 + .../gen/var/select/e381c3.wgsl.expected.glsl | 52 + .../gen/var/select/e381c3.wgsl.expected.msl | 34 + .../var/select/e381c3.wgsl.expected.spvasm | 78 + .../gen/var/select/e381c3.wgsl.expected.wgsl | 22 + 374 files changed, 12808 insertions(+), 4954 deletions(-) create mode 100644 test/tint/builtins/gen/literal/select/089657.wgsl create mode 100644 test/tint/builtins/gen/literal/select/089657.wgsl.expected.dxc.hlsl create mode 100644 test/tint/builtins/gen/literal/select/089657.wgsl.expected.fxc.hlsl create mode 100644 test/tint/builtins/gen/literal/select/089657.wgsl.expected.glsl create mode 100644 test/tint/builtins/gen/literal/select/089657.wgsl.expected.msl create mode 100644 test/tint/builtins/gen/literal/select/089657.wgsl.expected.spvasm create mode 100644 test/tint/builtins/gen/literal/select/089657.wgsl.expected.wgsl create mode 100644 test/tint/builtins/gen/literal/select/17441a.wgsl create mode 100644 test/tint/builtins/gen/literal/select/17441a.wgsl.expected.dxc.hlsl create mode 100644 test/tint/builtins/gen/literal/select/17441a.wgsl.expected.fxc.hlsl create mode 100644 test/tint/builtins/gen/literal/select/17441a.wgsl.expected.glsl create mode 100644 test/tint/builtins/gen/literal/select/17441a.wgsl.expected.msl create mode 100644 test/tint/builtins/gen/literal/select/17441a.wgsl.expected.spvasm create mode 100644 test/tint/builtins/gen/literal/select/17441a.wgsl.expected.wgsl create mode 100644 test/tint/builtins/gen/literal/select/1f4d93.wgsl create mode 100644 test/tint/builtins/gen/literal/select/1f4d93.wgsl.expected.dxc.hlsl create mode 100644 test/tint/builtins/gen/literal/select/1f4d93.wgsl.expected.fxc.hlsl create mode 100644 test/tint/builtins/gen/literal/select/1f4d93.wgsl.expected.glsl create mode 100644 test/tint/builtins/gen/literal/select/1f4d93.wgsl.expected.msl create mode 100644 test/tint/builtins/gen/literal/select/1f4d93.wgsl.expected.spvasm create mode 100644 test/tint/builtins/gen/literal/select/1f4d93.wgsl.expected.wgsl create mode 100644 test/tint/builtins/gen/literal/select/2c96d4.wgsl create mode 100644 test/tint/builtins/gen/literal/select/2c96d4.wgsl.expected.dxc.hlsl create mode 100644 test/tint/builtins/gen/literal/select/2c96d4.wgsl.expected.fxc.hlsl create mode 100644 test/tint/builtins/gen/literal/select/2c96d4.wgsl.expected.glsl create mode 100644 test/tint/builtins/gen/literal/select/2c96d4.wgsl.expected.msl create mode 100644 test/tint/builtins/gen/literal/select/2c96d4.wgsl.expected.spvasm create mode 100644 test/tint/builtins/gen/literal/select/2c96d4.wgsl.expected.wgsl create mode 100644 test/tint/builtins/gen/literal/select/3a14be.wgsl create mode 100644 test/tint/builtins/gen/literal/select/3a14be.wgsl.expected.dxc.hlsl create mode 100644 test/tint/builtins/gen/literal/select/3a14be.wgsl.expected.fxc.hlsl create mode 100644 test/tint/builtins/gen/literal/select/3a14be.wgsl.expected.glsl create mode 100644 test/tint/builtins/gen/literal/select/3a14be.wgsl.expected.msl create mode 100644 test/tint/builtins/gen/literal/select/3a14be.wgsl.expected.spvasm create mode 100644 test/tint/builtins/gen/literal/select/3a14be.wgsl.expected.wgsl create mode 100644 test/tint/builtins/gen/literal/select/431dfb.wgsl create mode 100644 test/tint/builtins/gen/literal/select/431dfb.wgsl.expected.dxc.hlsl create mode 100644 test/tint/builtins/gen/literal/select/431dfb.wgsl.expected.fxc.hlsl create mode 100644 test/tint/builtins/gen/literal/select/431dfb.wgsl.expected.glsl create mode 100644 test/tint/builtins/gen/literal/select/431dfb.wgsl.expected.msl create mode 100644 test/tint/builtins/gen/literal/select/431dfb.wgsl.expected.spvasm create mode 100644 test/tint/builtins/gen/literal/select/431dfb.wgsl.expected.wgsl create mode 100644 test/tint/builtins/gen/literal/select/43741e.wgsl create mode 100644 test/tint/builtins/gen/literal/select/43741e.wgsl.expected.dxc.hlsl create mode 100644 test/tint/builtins/gen/literal/select/43741e.wgsl.expected.fxc.hlsl create mode 100644 test/tint/builtins/gen/literal/select/43741e.wgsl.expected.glsl create mode 100644 test/tint/builtins/gen/literal/select/43741e.wgsl.expected.msl create mode 100644 test/tint/builtins/gen/literal/select/43741e.wgsl.expected.spvasm create mode 100644 test/tint/builtins/gen/literal/select/43741e.wgsl.expected.wgsl create mode 100644 test/tint/builtins/gen/literal/select/494051.wgsl create mode 100644 test/tint/builtins/gen/literal/select/494051.wgsl.expected.dxc.hlsl create mode 100644 test/tint/builtins/gen/literal/select/494051.wgsl.expected.fxc.hlsl create mode 100644 test/tint/builtins/gen/literal/select/494051.wgsl.expected.glsl create mode 100644 test/tint/builtins/gen/literal/select/494051.wgsl.expected.msl create mode 100644 test/tint/builtins/gen/literal/select/494051.wgsl.expected.spvasm create mode 100644 test/tint/builtins/gen/literal/select/494051.wgsl.expected.wgsl create mode 100644 test/tint/builtins/gen/literal/select/4c4738.wgsl create mode 100644 test/tint/builtins/gen/literal/select/4c4738.wgsl.expected.dxc.hlsl create mode 100644 test/tint/builtins/gen/literal/select/4c4738.wgsl.expected.fxc.hlsl create mode 100644 test/tint/builtins/gen/literal/select/4c4738.wgsl.expected.glsl create mode 100644 test/tint/builtins/gen/literal/select/4c4738.wgsl.expected.msl create mode 100644 test/tint/builtins/gen/literal/select/4c4738.wgsl.expected.spvasm create mode 100644 test/tint/builtins/gen/literal/select/4c4738.wgsl.expected.wgsl create mode 100644 test/tint/builtins/gen/literal/select/4e60da.wgsl create mode 100644 test/tint/builtins/gen/literal/select/4e60da.wgsl.expected.dxc.hlsl create mode 100644 test/tint/builtins/gen/literal/select/4e60da.wgsl.expected.fxc.hlsl create mode 100644 test/tint/builtins/gen/literal/select/4e60da.wgsl.expected.glsl create mode 100644 test/tint/builtins/gen/literal/select/4e60da.wgsl.expected.msl create mode 100644 test/tint/builtins/gen/literal/select/4e60da.wgsl.expected.spvasm create mode 100644 test/tint/builtins/gen/literal/select/4e60da.wgsl.expected.wgsl create mode 100644 test/tint/builtins/gen/literal/select/9b478d.wgsl create mode 100644 test/tint/builtins/gen/literal/select/9b478d.wgsl.expected.dxc.hlsl create mode 100644 test/tint/builtins/gen/literal/select/9b478d.wgsl.expected.fxc.hlsl create mode 100644 test/tint/builtins/gen/literal/select/9b478d.wgsl.expected.glsl create mode 100644 test/tint/builtins/gen/literal/select/9b478d.wgsl.expected.msl create mode 100644 test/tint/builtins/gen/literal/select/9b478d.wgsl.expected.spvasm create mode 100644 test/tint/builtins/gen/literal/select/9b478d.wgsl.expected.wgsl create mode 100644 test/tint/builtins/gen/literal/select/b93806.wgsl create mode 100644 test/tint/builtins/gen/literal/select/b93806.wgsl.expected.dxc.hlsl create mode 100644 test/tint/builtins/gen/literal/select/b93806.wgsl.expected.fxc.hlsl create mode 100644 test/tint/builtins/gen/literal/select/b93806.wgsl.expected.glsl create mode 100644 test/tint/builtins/gen/literal/select/b93806.wgsl.expected.msl create mode 100644 test/tint/builtins/gen/literal/select/b93806.wgsl.expected.spvasm create mode 100644 test/tint/builtins/gen/literal/select/b93806.wgsl.expected.wgsl create mode 100644 test/tint/builtins/gen/literal/select/dfab3b.wgsl create mode 100644 test/tint/builtins/gen/literal/select/dfab3b.wgsl.expected.dxc.hlsl create mode 100644 test/tint/builtins/gen/literal/select/dfab3b.wgsl.expected.fxc.hlsl create mode 100644 test/tint/builtins/gen/literal/select/dfab3b.wgsl.expected.glsl create mode 100644 test/tint/builtins/gen/literal/select/dfab3b.wgsl.expected.msl create mode 100644 test/tint/builtins/gen/literal/select/dfab3b.wgsl.expected.spvasm create mode 100644 test/tint/builtins/gen/literal/select/dfab3b.wgsl.expected.wgsl create mode 100644 test/tint/builtins/gen/literal/select/e381c3.wgsl create mode 100644 test/tint/builtins/gen/literal/select/e381c3.wgsl.expected.dxc.hlsl create mode 100644 test/tint/builtins/gen/literal/select/e381c3.wgsl.expected.fxc.hlsl create mode 100644 test/tint/builtins/gen/literal/select/e381c3.wgsl.expected.glsl create mode 100644 test/tint/builtins/gen/literal/select/e381c3.wgsl.expected.msl create mode 100644 test/tint/builtins/gen/literal/select/e381c3.wgsl.expected.spvasm create mode 100644 test/tint/builtins/gen/literal/select/e381c3.wgsl.expected.wgsl create mode 100644 test/tint/builtins/gen/var/select/089657.wgsl create mode 100644 test/tint/builtins/gen/var/select/089657.wgsl.expected.dxc.hlsl create mode 100644 test/tint/builtins/gen/var/select/089657.wgsl.expected.fxc.hlsl create mode 100644 test/tint/builtins/gen/var/select/089657.wgsl.expected.glsl create mode 100644 test/tint/builtins/gen/var/select/089657.wgsl.expected.msl create mode 100644 test/tint/builtins/gen/var/select/089657.wgsl.expected.spvasm create mode 100644 test/tint/builtins/gen/var/select/089657.wgsl.expected.wgsl create mode 100644 test/tint/builtins/gen/var/select/17441a.wgsl create mode 100644 test/tint/builtins/gen/var/select/17441a.wgsl.expected.dxc.hlsl create mode 100644 test/tint/builtins/gen/var/select/17441a.wgsl.expected.fxc.hlsl create mode 100644 test/tint/builtins/gen/var/select/17441a.wgsl.expected.glsl create mode 100644 test/tint/builtins/gen/var/select/17441a.wgsl.expected.msl create mode 100644 test/tint/builtins/gen/var/select/17441a.wgsl.expected.spvasm create mode 100644 test/tint/builtins/gen/var/select/17441a.wgsl.expected.wgsl create mode 100644 test/tint/builtins/gen/var/select/1f4d93.wgsl create mode 100644 test/tint/builtins/gen/var/select/1f4d93.wgsl.expected.dxc.hlsl create mode 100644 test/tint/builtins/gen/var/select/1f4d93.wgsl.expected.fxc.hlsl create mode 100644 test/tint/builtins/gen/var/select/1f4d93.wgsl.expected.glsl create mode 100644 test/tint/builtins/gen/var/select/1f4d93.wgsl.expected.msl create mode 100644 test/tint/builtins/gen/var/select/1f4d93.wgsl.expected.spvasm create mode 100644 test/tint/builtins/gen/var/select/1f4d93.wgsl.expected.wgsl create mode 100644 test/tint/builtins/gen/var/select/2c96d4.wgsl create mode 100644 test/tint/builtins/gen/var/select/2c96d4.wgsl.expected.dxc.hlsl create mode 100644 test/tint/builtins/gen/var/select/2c96d4.wgsl.expected.fxc.hlsl create mode 100644 test/tint/builtins/gen/var/select/2c96d4.wgsl.expected.glsl create mode 100644 test/tint/builtins/gen/var/select/2c96d4.wgsl.expected.msl create mode 100644 test/tint/builtins/gen/var/select/2c96d4.wgsl.expected.spvasm create mode 100644 test/tint/builtins/gen/var/select/2c96d4.wgsl.expected.wgsl create mode 100644 test/tint/builtins/gen/var/select/3a14be.wgsl create mode 100644 test/tint/builtins/gen/var/select/3a14be.wgsl.expected.dxc.hlsl create mode 100644 test/tint/builtins/gen/var/select/3a14be.wgsl.expected.fxc.hlsl create mode 100644 test/tint/builtins/gen/var/select/3a14be.wgsl.expected.glsl create mode 100644 test/tint/builtins/gen/var/select/3a14be.wgsl.expected.msl create mode 100644 test/tint/builtins/gen/var/select/3a14be.wgsl.expected.spvasm create mode 100644 test/tint/builtins/gen/var/select/3a14be.wgsl.expected.wgsl create mode 100644 test/tint/builtins/gen/var/select/431dfb.wgsl create mode 100644 test/tint/builtins/gen/var/select/431dfb.wgsl.expected.dxc.hlsl create mode 100644 test/tint/builtins/gen/var/select/431dfb.wgsl.expected.fxc.hlsl create mode 100644 test/tint/builtins/gen/var/select/431dfb.wgsl.expected.glsl create mode 100644 test/tint/builtins/gen/var/select/431dfb.wgsl.expected.msl create mode 100644 test/tint/builtins/gen/var/select/431dfb.wgsl.expected.spvasm create mode 100644 test/tint/builtins/gen/var/select/431dfb.wgsl.expected.wgsl create mode 100644 test/tint/builtins/gen/var/select/43741e.wgsl create mode 100644 test/tint/builtins/gen/var/select/43741e.wgsl.expected.dxc.hlsl create mode 100644 test/tint/builtins/gen/var/select/43741e.wgsl.expected.fxc.hlsl create mode 100644 test/tint/builtins/gen/var/select/43741e.wgsl.expected.glsl create mode 100644 test/tint/builtins/gen/var/select/43741e.wgsl.expected.msl create mode 100644 test/tint/builtins/gen/var/select/43741e.wgsl.expected.spvasm create mode 100644 test/tint/builtins/gen/var/select/43741e.wgsl.expected.wgsl create mode 100644 test/tint/builtins/gen/var/select/494051.wgsl create mode 100644 test/tint/builtins/gen/var/select/494051.wgsl.expected.dxc.hlsl create mode 100644 test/tint/builtins/gen/var/select/494051.wgsl.expected.fxc.hlsl create mode 100644 test/tint/builtins/gen/var/select/494051.wgsl.expected.glsl create mode 100644 test/tint/builtins/gen/var/select/494051.wgsl.expected.msl create mode 100644 test/tint/builtins/gen/var/select/494051.wgsl.expected.spvasm create mode 100644 test/tint/builtins/gen/var/select/494051.wgsl.expected.wgsl create mode 100644 test/tint/builtins/gen/var/select/4c4738.wgsl create mode 100644 test/tint/builtins/gen/var/select/4c4738.wgsl.expected.dxc.hlsl create mode 100644 test/tint/builtins/gen/var/select/4c4738.wgsl.expected.fxc.hlsl create mode 100644 test/tint/builtins/gen/var/select/4c4738.wgsl.expected.glsl create mode 100644 test/tint/builtins/gen/var/select/4c4738.wgsl.expected.msl create mode 100644 test/tint/builtins/gen/var/select/4c4738.wgsl.expected.spvasm create mode 100644 test/tint/builtins/gen/var/select/4c4738.wgsl.expected.wgsl create mode 100644 test/tint/builtins/gen/var/select/4e60da.wgsl create mode 100644 test/tint/builtins/gen/var/select/4e60da.wgsl.expected.dxc.hlsl create mode 100644 test/tint/builtins/gen/var/select/4e60da.wgsl.expected.fxc.hlsl create mode 100644 test/tint/builtins/gen/var/select/4e60da.wgsl.expected.glsl create mode 100644 test/tint/builtins/gen/var/select/4e60da.wgsl.expected.msl create mode 100644 test/tint/builtins/gen/var/select/4e60da.wgsl.expected.spvasm create mode 100644 test/tint/builtins/gen/var/select/4e60da.wgsl.expected.wgsl create mode 100644 test/tint/builtins/gen/var/select/9b478d.wgsl create mode 100644 test/tint/builtins/gen/var/select/9b478d.wgsl.expected.dxc.hlsl create mode 100644 test/tint/builtins/gen/var/select/9b478d.wgsl.expected.fxc.hlsl create mode 100644 test/tint/builtins/gen/var/select/9b478d.wgsl.expected.glsl create mode 100644 test/tint/builtins/gen/var/select/9b478d.wgsl.expected.msl create mode 100644 test/tint/builtins/gen/var/select/9b478d.wgsl.expected.spvasm create mode 100644 test/tint/builtins/gen/var/select/9b478d.wgsl.expected.wgsl create mode 100644 test/tint/builtins/gen/var/select/b93806.wgsl create mode 100644 test/tint/builtins/gen/var/select/b93806.wgsl.expected.dxc.hlsl create mode 100644 test/tint/builtins/gen/var/select/b93806.wgsl.expected.fxc.hlsl create mode 100644 test/tint/builtins/gen/var/select/b93806.wgsl.expected.glsl create mode 100644 test/tint/builtins/gen/var/select/b93806.wgsl.expected.msl create mode 100644 test/tint/builtins/gen/var/select/b93806.wgsl.expected.spvasm create mode 100644 test/tint/builtins/gen/var/select/b93806.wgsl.expected.wgsl create mode 100644 test/tint/builtins/gen/var/select/dfab3b.wgsl create mode 100644 test/tint/builtins/gen/var/select/dfab3b.wgsl.expected.dxc.hlsl create mode 100644 test/tint/builtins/gen/var/select/dfab3b.wgsl.expected.fxc.hlsl create mode 100644 test/tint/builtins/gen/var/select/dfab3b.wgsl.expected.glsl create mode 100644 test/tint/builtins/gen/var/select/dfab3b.wgsl.expected.msl create mode 100644 test/tint/builtins/gen/var/select/dfab3b.wgsl.expected.spvasm create mode 100644 test/tint/builtins/gen/var/select/dfab3b.wgsl.expected.wgsl create mode 100644 test/tint/builtins/gen/var/select/e381c3.wgsl create mode 100644 test/tint/builtins/gen/var/select/e381c3.wgsl.expected.dxc.hlsl create mode 100644 test/tint/builtins/gen/var/select/e381c3.wgsl.expected.fxc.hlsl create mode 100644 test/tint/builtins/gen/var/select/e381c3.wgsl.expected.glsl create mode 100644 test/tint/builtins/gen/var/select/e381c3.wgsl.expected.msl create mode 100644 test/tint/builtins/gen/var/select/e381c3.wgsl.expected.spvasm create mode 100644 test/tint/builtins/gen/var/select/e381c3.wgsl.expected.wgsl diff --git a/src/tint/intrinsics.def b/src/tint/intrinsics.def index 5864fb034d..debfa0e11b 100644 --- a/src/tint/intrinsics.def +++ b/src/tint/intrinsics.def @@ -510,9 +510,9 @@ fn round(T) -> T fn round(vec) -> vec fn saturate(T) -> T fn saturate(vec) -> vec -fn select(T, T, bool) -> T -fn select(vec, vec, bool) -> vec -fn select(vec, vec, vec) -> vec +@const("select_bool") fn select(T, T, bool) -> T +@const("select_bool") fn select(vec, vec, bool) -> vec +@const("select_boolvec") fn select(vec, vec, vec) -> vec fn sign(T) -> T fn sign(vec) -> vec fn sin(T) -> T diff --git a/src/tint/resolver/builtin_test.cc b/src/tint/resolver/builtin_test.cc index 69a42f8213..f3ae845283 100644 --- a/src/tint/resolver/builtin_test.cc +++ b/src/tint/resolver/builtin_test.cc @@ -131,9 +131,9 @@ TEST_F(ResolverBuiltinTest, Select_Error_NoParams) { R"(error: no matching call to select() 3 candidate functions: - select(T, T, bool) -> T where: T is f32, f16, i32, u32 or bool - select(vecN, vecN, bool) -> vecN where: T is f32, f16, i32, u32 or bool - select(vecN, vecN, vecN) -> vecN where: T is f32, f16, i32, u32 or bool + select(T, T, bool) -> T where: T is abstract-int, abstract-float, f32, f16, i32, u32 or bool + select(vecN, vecN, bool) -> vecN where: T is abstract-int, abstract-float, f32, f16, i32, u32 or bool + select(vecN, vecN, vecN) -> vecN where: T is abstract-int, abstract-float, f32, f16, i32, u32 or bool )"); } @@ -147,9 +147,9 @@ TEST_F(ResolverBuiltinTest, Select_Error_SelectorInt) { R"(error: no matching call to select(i32, i32, i32) 3 candidate functions: - select(T, T, bool) -> T where: T is f32, f16, i32, u32 or bool - select(vecN, vecN, bool) -> vecN where: T is f32, f16, i32, u32 or bool - select(vecN, vecN, vecN) -> vecN where: T is f32, f16, i32, u32 or bool + select(T, T, bool) -> T where: T is abstract-int, abstract-float, f32, f16, i32, u32 or bool + select(vecN, vecN, bool) -> vecN where: T is abstract-int, abstract-float, f32, f16, i32, u32 or bool + select(vecN, vecN, vecN) -> vecN where: T is abstract-int, abstract-float, f32, f16, i32, u32 or bool )"); } @@ -164,9 +164,9 @@ TEST_F(ResolverBuiltinTest, Select_Error_Matrix) { R"(error: no matching call to select(mat2x2, mat2x2, bool) 3 candidate functions: - select(T, T, bool) -> T where: T is f32, f16, i32, u32 or bool - select(vecN, vecN, bool) -> vecN where: T is f32, f16, i32, u32 or bool - select(vecN, vecN, vecN) -> vecN where: T is f32, f16, i32, u32 or bool + select(T, T, bool) -> T where: T is abstract-int, abstract-float, f32, f16, i32, u32 or bool + select(vecN, vecN, bool) -> vecN where: T is abstract-int, abstract-float, f32, f16, i32, u32 or bool + select(vecN, vecN, vecN) -> vecN where: T is abstract-int, abstract-float, f32, f16, i32, u32 or bool )"); } @@ -180,9 +180,9 @@ TEST_F(ResolverBuiltinTest, Select_Error_MismatchTypes) { R"(error: no matching call to select(f32, vec2, bool) 3 candidate functions: - select(T, T, bool) -> T where: T is f32, f16, i32, u32 or bool - select(vecN, vecN, bool) -> vecN where: T is f32, f16, i32, u32 or bool - select(vecN, vecN, vecN) -> vecN where: T is f32, f16, i32, u32 or bool + select(T, T, bool) -> T where: T is abstract-int, abstract-float, f32, f16, i32, u32 or bool + select(vecN, vecN, bool) -> vecN where: T is abstract-int, abstract-float, f32, f16, i32, u32 or bool + select(vecN, vecN, vecN) -> vecN where: T is abstract-int, abstract-float, f32, f16, i32, u32 or bool )"); } @@ -196,9 +196,9 @@ TEST_F(ResolverBuiltinTest, Select_Error_MismatchVectorSize) { R"(error: no matching call to select(vec2, vec3, bool) 3 candidate functions: - select(T, T, bool) -> T where: T is f32, f16, i32, u32 or bool - select(vecN, vecN, bool) -> vecN where: T is f32, f16, i32, u32 or bool - select(vecN, vecN, vecN) -> vecN where: T is f32, f16, i32, u32 or bool + select(T, T, bool) -> T where: T is abstract-int, abstract-float, f32, f16, i32, u32 or bool + select(vecN, vecN, bool) -> vecN where: T is abstract-int, abstract-float, f32, f16, i32, u32 or bool + select(vecN, vecN, vecN) -> vecN where: T is abstract-int, abstract-float, f32, f16, i32, u32 or bool )"); } diff --git a/src/tint/resolver/const_eval.cc b/src/tint/resolver/const_eval.cc index 62e011c187..abc7ad46c3 100644 --- a/src/tint/resolver/const_eval.cc +++ b/src/tint/resolver/const_eval.cc @@ -503,25 +503,30 @@ const ImplConstant* CreateComposite(ProgramBuilder& builder, } } -/// TransformElements constructs a new constant of type `composite_ty` by applying the -/// transformation function 'f' on each of the most deeply nested elements of 'cs'. Assumes that all -/// input constants `cs` are of the same type. +namespace detail { +/// Implementation of TransformElements template ImplResult TransformElements(ProgramBuilder& builder, const sem::Type* composite_ty, F&& f, + size_t index, CONSTANTS&&... cs) { uint32_t n = 0; auto* ty = First(cs...)->Type(); auto* el_ty = sem::Type::ElementOf(ty, &n); if (el_ty == ty) { - return f(cs...); + constexpr bool kHasIndexParam = traits::IsType>; + if constexpr (kHasIndexParam) { + return f(cs..., index); + } else { + return f(cs...); + } } utils::Vector els; els.Reserve(n); for (uint32_t i = 0; i < n; i++) { - if (auto el = TransformElements(builder, sem::Type::ElementOf(composite_ty), - std::forward(f), cs->Index(i)...)) { + if (auto el = detail::TransformElements(builder, sem::Type::ElementOf(composite_ty), + std::forward(f), index + i, cs->Index(i)...)) { els.Push(el.Get()); } else { @@ -530,10 +535,24 @@ ImplResult TransformElements(ProgramBuilder& builder, } return CreateComposite(builder, composite_ty, std::move(els)); } +} // namespace detail + +/// TransformElements constructs a new constant of type `composite_ty` by applying the +/// transformation function `f` on each of the most deeply nested elements of 'cs'. Assumes that all +/// input constants `cs` are of the same arity (all scalars or all vectors of the same size). +/// If `f`'s last argument is a `size_t`, then the index of the most deeply nested element inside +/// the most deeply nested aggregate type will be passed in. +template +ImplResult TransformElements(ProgramBuilder& builder, + const sem::Type* composite_ty, + F&& f, + CONSTANTS&&... cs) { + return detail::TransformElements(builder, composite_ty, f, 0, cs...); +} /// TransformBinaryElements constructs a new constant of type `composite_ty` by applying the /// transformation function 'f' on each of the most deeply nested elements of both `c0` and `c1`. -/// Unlike TransformElements, this function handles the constants being of different types, e.g. +/// Unlike TransformElements, this function handles the constants being of different arity, e.g. /// vector-scalar, scalar-vector. template ImplResult TransformBinaryElements(ProgramBuilder& builder, @@ -1516,6 +1535,35 @@ ConstEval::Result ConstEval::clamp(const sem::Type* ty, return TransformElements(builder, ty, transform, args[0], args[1], args[2]); } +ConstEval::Result ConstEval::select_bool(const sem::Type* ty, + utils::VectorRef args, + const Source&) { + auto cond = args[2]->As(); + auto transform = [&](const sem::Constant* c0, const sem::Constant* c1) { + auto create = [&](auto f, auto t) -> ImplResult { + return CreateElement(builder, sem::Type::DeepestElementOf(ty), cond ? t : f); + }; + return Dispatch_fia_fiu32_f16_bool(create, c0, c1); + }; + + return TransformElements(builder, ty, transform, args[0], args[1]); +} + +ConstEval::Result ConstEval::select_boolvec(const sem::Type* ty, + utils::VectorRef args, + const Source&) { + auto transform = [&](const sem::Constant* c0, const sem::Constant* c1, size_t index) { + auto create = [&](auto f, auto t) -> ImplResult { + // Get corresponding bool value at the current vector value index + auto cond = args[2]->Index(index)->As(); + return CreateElement(builder, sem::Type::DeepestElementOf(ty), cond ? t : f); + }; + return Dispatch_fia_fiu32_f16_bool(create, c0, c1); + }; + + return TransformElements(builder, ty, transform, args[0], args[1]); +} + ConstEval::Result ConstEval::Convert(const sem::Type* target_ty, const sem::Constant* value, const Source& source) { diff --git a/src/tint/resolver/const_eval.h b/src/tint/resolver/const_eval.h index 81ec3f7a4b..b58ed41ba1 100644 --- a/src/tint/resolver/const_eval.h +++ b/src/tint/resolver/const_eval.h @@ -395,6 +395,24 @@ class ConstEval { utils::VectorRef args, const Source& source); + /// select builtin with single bool third arg + /// @param ty the expression type + /// @param args the input arguments + /// @param source the source location of the conversion + /// @return the result value, or null if the value cannot be calculated + Result select_bool(const sem::Type* ty, + utils::VectorRef args, + const Source& source); + + /// select builtin with vector of bool third arg + /// @param ty the expression type + /// @param args the input arguments + /// @param source the source location of the conversion + /// @return the result value, or null if the value cannot be calculated + Result select_boolvec(const sem::Type* ty, + utils::VectorRef args, + const Source& source); + private: /// Adds the given error message to the diagnostics void AddError(const std::string& msg, const Source& source) const; diff --git a/src/tint/resolver/const_eval_test.cc b/src/tint/resolver/const_eval_test.cc index ef7891aa88..8bded4caab 100644 --- a/src/tint/resolver/const_eval_test.cc +++ b/src/tint/resolver/const_eval_test.cc @@ -2879,6 +2879,7 @@ using Types = std::variant< // Value>, Value>, Value>, + Value>, Value>, Value>, @@ -2886,6 +2887,7 @@ using Types = std::variant< // Value>, Value>, Value>, + Value>, Value>, Value>, @@ -4088,7 +4090,6 @@ static std::ostream& operator<<(std::ostream& o, const Case& c) { } /// Creates a Case with Values for args and result -// template static Case C(std::initializer_list args, Types result) { return Case{utils::Vector{args}, std::move(result)}; } @@ -4287,6 +4288,52 @@ INSTANTIATE_TEST_SUITE_P( // ClampCases(), ClampCases())))); +template +std::vector SelectCases() { + return { + C({Val(T{1}), Val(T{2}), Val(false)}, Val(T{1})), + C({Val(T{1}), Val(T{2}), Val(true)}, Val(T{2})), + + C({Val(T{2}), Val(T{1}), Val(false)}, Val(T{2})), + C({Val(T{2}), Val(T{1}), Val(true)}, Val(T{1})), + + C({Vec(T{1}, T{2}), Vec(T{3}, T{4}), Vec(false, false)}, Vec(T{1}, T{2})), + C({Vec(T{1}, T{2}), Vec(T{3}, T{4}), Vec(false, true)}, Vec(T{1}, T{4})), + C({Vec(T{1}, T{2}), Vec(T{3}, T{4}), Vec(true, false)}, Vec(T{3}, T{2})), + C({Vec(T{1}, T{2}), Vec(T{3}, T{4}), Vec(true, true)}, Vec(T{3}, T{4})), + + C({Vec(T{1}, T{1}, T{2}, T{2}), // + Vec(T{2}, T{2}, T{1}, T{1}), // + Vec(false, true, false, true)}, // + Vec(T{1}, T{2}, T{2}, T{1})), // + }; +} +static std::vector SelectBoolCases() { + return { + C({Val(true), Val(false), Val(false)}, Val(true)), + C({Val(true), Val(false), Val(true)}, Val(false)), + + C({Val(false), Val(true), Val(true)}, Val(true)), + C({Val(false), Val(true), Val(false)}, Val(false)), + + C({Vec(true, true, false, false), // + Vec(false, false, true, true), // + Vec(false, true, true, false)}, // + Vec(true, false, true, false)), // + }; +} +INSTANTIATE_TEST_SUITE_P( // + Select, + ResolverConstEvalBuiltinTest, + testing::Combine(testing::Values(sem::BuiltinType::kSelect), + testing::ValuesIn(Concat(SelectCases(), // + SelectCases(), + SelectCases(), + SelectCases(), + SelectCases(), + SelectCases(), + SelectBoolCases())))); + } // namespace builtin } // namespace diff --git a/src/tint/resolver/intrinsic_table.inl b/src/tint/resolver/intrinsic_table.inl index 78175150e9..a589e5a40e 100644 --- a/src/tint/resolver/intrinsic_table.inl +++ b/src/tint/resolver/intrinsic_table.inl @@ -2737,21 +2737,21 @@ constexpr MatcherIndex kMatcherIndices[] = { /* [27] */ 1, /* [28] */ 2, /* [29] */ 0, - /* [30] */ 21, - /* [31] */ 0, - /* [32] */ 0, - /* [33] */ 43, - /* [34] */ 5, - /* [35] */ 6, + /* [30] */ 43, + /* [31] */ 5, + /* [32] */ 6, + /* [33] */ 21, + /* [34] */ 0, + /* [35] */ 0, /* [36] */ 42, /* [37] */ 5, /* [38] */ 6, - /* [39] */ 21, - /* [40] */ 0, - /* [41] */ 2, - /* [42] */ 41, - /* [43] */ 5, - /* [44] */ 6, + /* [39] */ 41, + /* [40] */ 5, + /* [41] */ 6, + /* [42] */ 21, + /* [43] */ 0, + /* [44] */ 2, /* [45] */ 40, /* [46] */ 5, /* [47] */ 6, @@ -2767,54 +2767,54 @@ constexpr MatcherIndex kMatcherIndices[] = { /* [57] */ 41, /* [58] */ 4, /* [59] */ 6, - /* [60] */ 21, - /* [61] */ 0, - /* [62] */ 7, - /* [63] */ 40, - /* [64] */ 4, - /* [65] */ 6, + /* [60] */ 40, + /* [61] */ 4, + /* [62] */ 6, + /* [63] */ 21, + /* [64] */ 0, + /* [65] */ 7, /* [66] */ 43, /* [67] */ 3, /* [68] */ 6, - /* [69] */ 21, - /* [70] */ 1, - /* [71] */ 0, - /* [72] */ 42, - /* [73] */ 3, - /* [74] */ 6, + /* [69] */ 42, + /* [70] */ 3, + /* [71] */ 6, + /* [72] */ 21, + /* [73] */ 1, + /* [74] */ 0, /* [75] */ 41, /* [76] */ 3, /* [77] */ 6, - /* [78] */ 48, - /* [79] */ 0, - /* [80] */ 0, - /* [81] */ 43, + /* [78] */ 40, + /* [79] */ 3, + /* [80] */ 6, + /* [81] */ 48, /* [82] */ 0, - /* [83] */ 1, - /* [84] */ 41, + /* [83] */ 0, + /* [84] */ 43, /* [85] */ 0, /* [86] */ 1, - /* [87] */ 40, + /* [87] */ 41, /* [88] */ 0, /* [89] */ 1, - /* [90] */ 21, + /* [90] */ 40, /* [91] */ 0, - /* [92] */ 5, + /* [92] */ 1, /* [93] */ 21, /* [94] */ 0, - /* [95] */ 6, + /* [95] */ 5, /* [96] */ 21, /* [97] */ 0, - /* [98] */ 3, - /* [99] */ 46, + /* [98] */ 6, + /* [99] */ 21, /* [100] */ 0, - /* [101] */ 0, - /* [102] */ 40, - /* [103] */ 3, - /* [104] */ 6, - /* [105] */ 9, - /* [106] */ 5, - /* [107] */ 18, + /* [101] */ 3, + /* [102] */ 46, + /* [103] */ 0, + /* [104] */ 0, + /* [105] */ 11, + /* [106] */ 7, + /* [107] */ 10, /* [108] */ 0, /* [109] */ 10, /* [110] */ 1, @@ -2823,113 +2823,113 @@ constexpr MatcherIndex kMatcherIndices[] = { /* [113] */ 9, /* [114] */ 0, /* [115] */ 10, - /* [116] */ 0, + /* [116] */ 8, /* [117] */ 10, - /* [118] */ 8, + /* [118] */ 5, /* [119] */ 10, - /* [120] */ 5, - /* [121] */ 10, - /* [122] */ 6, + /* [120] */ 6, + /* [121] */ 9, + /* [122] */ 2, /* [123] */ 9, - /* [124] */ 2, - /* [125] */ 9, - /* [126] */ 1, - /* [127] */ 10, - /* [128] */ 2, - /* [129] */ 11, - /* [130] */ 0, + /* [124] */ 1, + /* [125] */ 10, + /* [126] */ 2, + /* [127] */ 11, + /* [128] */ 0, + /* [129] */ 9, + /* [130] */ 6, /* [131] */ 9, - /* [132] */ 6, + /* [132] */ 5, /* [133] */ 9, /* [134] */ 8, - /* [135] */ 11, + /* [135] */ 9, /* [136] */ 7, - /* [137] */ 9, - /* [138] */ 7, - /* [139] */ 45, + /* [137] */ 45, + /* [138] */ 0, + /* [139] */ 28, /* [140] */ 0, - /* [141] */ 28, + /* [141] */ 29, /* [142] */ 0, - /* [143] */ 29, + /* [143] */ 30, /* [144] */ 0, - /* [145] */ 30, - /* [146] */ 0, + /* [145] */ 11, + /* [146] */ 1, /* [147] */ 31, /* [148] */ 0, - /* [149] */ 11, - /* [150] */ 1, - /* [151] */ 32, + /* [149] */ 32, + /* [150] */ 0, + /* [151] */ 33, /* [152] */ 0, - /* [153] */ 33, - /* [154] */ 0, + /* [153] */ 11, + /* [154] */ 8, /* [155] */ 34, /* [156] */ 0, /* [157] */ 11, - /* [158] */ 8, + /* [158] */ 5, /* [159] */ 11, - /* [160] */ 5, + /* [160] */ 6, /* [161] */ 11, - /* [162] */ 6, - /* [163] */ 11, - /* [164] */ 2, + /* [162] */ 2, + /* [163] */ 12, + /* [164] */ 0, /* [165] */ 12, - /* [166] */ 0, + /* [166] */ 7, /* [167] */ 12, - /* [168] */ 7, - /* [169] */ 12, - /* [170] */ 8, + /* [168] */ 8, + /* [169] */ 13, + /* [170] */ 0, /* [171] */ 13, - /* [172] */ 0, - /* [173] */ 13, - /* [174] */ 7, + /* [172] */ 7, + /* [173] */ 47, + /* [174] */ 0, /* [175] */ 13, /* [176] */ 8, - /* [177] */ 47, + /* [177] */ 14, /* [178] */ 0, /* [179] */ 14, - /* [180] */ 0, + /* [180] */ 7, /* [181] */ 14, - /* [182] */ 7, - /* [183] */ 14, - /* [184] */ 8, + /* [182] */ 8, + /* [183] */ 15, + /* [184] */ 0, /* [185] */ 15, - /* [186] */ 0, + /* [186] */ 7, /* [187] */ 15, - /* [188] */ 7, - /* [189] */ 15, - /* [190] */ 8, + /* [188] */ 8, + /* [189] */ 16, + /* [190] */ 0, /* [191] */ 16, - /* [192] */ 0, + /* [192] */ 7, /* [193] */ 16, - /* [194] */ 7, - /* [195] */ 16, - /* [196] */ 8, + /* [194] */ 8, + /* [195] */ 17, + /* [196] */ 0, /* [197] */ 17, - /* [198] */ 0, + /* [198] */ 7, /* [199] */ 17, - /* [200] */ 7, - /* [201] */ 17, - /* [202] */ 8, + /* [200] */ 8, + /* [201] */ 18, + /* [202] */ 0, /* [203] */ 18, /* [204] */ 7, /* [205] */ 18, /* [206] */ 8, /* [207] */ 19, /* [208] */ 0, - /* [209] */ 28, - /* [210] */ 7, - /* [211] */ 49, - /* [212] */ 0, + /* [209] */ 49, + /* [210] */ 0, + /* [211] */ 28, + /* [212] */ 7, /* [213] */ 29, /* [214] */ 7, /* [215] */ 30, /* [216] */ 7, - /* [217] */ 31, + /* [217] */ 19, /* [218] */ 7, /* [219] */ 19, - /* [220] */ 7, - /* [221] */ 19, - /* [222] */ 8, + /* [220] */ 8, + /* [221] */ 31, + /* [222] */ 7, /* [223] */ 32, /* [224] */ 7, /* [225] */ 33, @@ -3295,57 +3295,57 @@ constexpr ParameterInfo kParameters[] = { { /* [67] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], + /* matcher indices */ &kMatcherIndices[135], }, { /* [68] */ /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[34], + /* matcher indices */ &kMatcherIndices[31], }, { /* [69] */ /* usage */ ParameterUsage::kDdx, - /* matcher indices */ &kMatcherIndices[137], + /* matcher indices */ &kMatcherIndices[135], }, { /* [70] */ /* usage */ ParameterUsage::kDdy, - /* matcher indices */ &kMatcherIndices[137], + /* matcher indices */ &kMatcherIndices[135], }, { /* [71] */ /* usage */ ParameterUsage::kOffset, - /* matcher indices */ &kMatcherIndices[105], + /* matcher indices */ &kMatcherIndices[131], }, { /* [72] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[213], }, { /* [73] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* usage */ ParameterUsage::kSampler, + /* matcher indices */ &kMatcherIndices[233], }, { /* [74] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[135], }, { /* [75] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* usage */ ParameterUsage::kDdx, + /* matcher indices */ &kMatcherIndices[135], }, { /* [76] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* usage */ ParameterUsage::kDdy, + /* matcher indices */ &kMatcherIndices[135], }, { /* [77] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* usage */ ParameterUsage::kOffset, + /* matcher indices */ &kMatcherIndices[131], }, { /* [78] */ @@ -3360,87 +3360,87 @@ constexpr ParameterInfo kParameters[] = { { /* [80] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], + /* matcher indices */ &kMatcherIndices[135], }, { /* [81] */ /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[34], + /* matcher indices */ &kMatcherIndices[31], }, { /* [82] */ - /* usage */ ParameterUsage::kBias, - /* matcher indices */ &kMatcherIndices[4], + /* usage */ ParameterUsage::kDdx, + /* matcher indices */ &kMatcherIndices[135], }, { /* [83] */ - /* usage */ ParameterUsage::kOffset, - /* matcher indices */ &kMatcherIndices[105], + /* usage */ ParameterUsage::kDdy, + /* matcher indices */ &kMatcherIndices[135], }, { /* [84] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[215], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[1], }, { /* [85] */ - /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[233], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[1], }, { /* [86] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[1], }, { /* [87] */ - /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[34], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[1], }, { /* [88] */ - /* usage */ ParameterUsage::kLevel, - /* matcher indices */ &kMatcherIndices[4], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[1], }, { /* [89] */ - /* usage */ ParameterUsage::kOffset, - /* matcher indices */ &kMatcherIndices[105], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[1], }, { /* [90] */ - /* usage */ ParameterUsage::kComponent, - /* matcher indices */ &kMatcherIndices[34], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[221], }, { /* [91] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[145], - }, - { - /* [92] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[233], }, { - /* [93] */ + /* [92] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], + /* matcher indices */ &kMatcherIndices[111], + }, + { + /* [93] */ + /* usage */ ParameterUsage::kDdx, + /* matcher indices */ &kMatcherIndices[111], }, { /* [94] */ - /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[34], + /* usage */ ParameterUsage::kDdy, + /* matcher indices */ &kMatcherIndices[111], }, { /* [95] */ /* usage */ ParameterUsage::kOffset, - /* matcher indices */ &kMatcherIndices[105], + /* matcher indices */ &kMatcherIndices[117], }, { /* [96] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[225], + /* matcher indices */ &kMatcherIndices[237], }, { /* [97] */ @@ -3450,27 +3450,27 @@ constexpr ParameterInfo kParameters[] = { { /* [98] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[111], + /* matcher indices */ &kMatcherIndices[135], }, { /* [99] */ /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[34], + /* matcher indices */ &kMatcherIndices[31], }, { /* [100] */ - /* usage */ ParameterUsage::kDdx, - /* matcher indices */ &kMatcherIndices[111], + /* usage */ ParameterUsage::kLevel, + /* matcher indices */ &kMatcherIndices[31], }, { /* [101] */ - /* usage */ ParameterUsage::kDdy, - /* matcher indices */ &kMatcherIndices[111], + /* usage */ ParameterUsage::kOffset, + /* matcher indices */ &kMatcherIndices[131], }, { /* [102] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[237], + /* matcher indices */ &kMatcherIndices[215], }, { /* [103] */ @@ -3480,52 +3480,52 @@ constexpr ParameterInfo kParameters[] = { { /* [104] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], + /* matcher indices */ &kMatcherIndices[135], }, { /* [105] */ /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[34], + /* matcher indices */ &kMatcherIndices[31], }, { /* [106] */ /* usage */ ParameterUsage::kLevel, - /* matcher indices */ &kMatcherIndices[34], + /* matcher indices */ &kMatcherIndices[4], }, { /* [107] */ /* usage */ ParameterUsage::kOffset, - /* matcher indices */ &kMatcherIndices[105], + /* matcher indices */ &kMatcherIndices[131], }, { /* [108] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[217], + /* matcher indices */ &kMatcherIndices[237], }, { /* [109] */ /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[233], + /* matcher indices */ &kMatcherIndices[234], }, { /* [110] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[111], + /* matcher indices */ &kMatcherIndices[135], }, { /* [111] */ - /* usage */ ParameterUsage::kDdx, - /* matcher indices */ &kMatcherIndices[111], + /* usage */ ParameterUsage::kArrayIndex, + /* matcher indices */ &kMatcherIndices[31], }, { /* [112] */ - /* usage */ ParameterUsage::kDdy, - /* matcher indices */ &kMatcherIndices[111], + /* usage */ ParameterUsage::kDepthRef, + /* matcher indices */ &kMatcherIndices[4], }, { /* [113] */ /* usage */ ParameterUsage::kOffset, - /* matcher indices */ &kMatcherIndices[119], + /* matcher indices */ &kMatcherIndices[131], }, { /* [114] */ @@ -3560,32 +3560,32 @@ constexpr ParameterInfo kParameters[] = { { /* [120] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[215], + /* matcher indices */ &kMatcherIndices[237], }, { /* [121] */ /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[233], + /* matcher indices */ &kMatcherIndices[234], }, { /* [122] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], + /* matcher indices */ &kMatcherIndices[135], }, { /* [123] */ /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[34], + /* matcher indices */ &kMatcherIndices[31], }, { /* [124] */ - /* usage */ ParameterUsage::kDdx, - /* matcher indices */ &kMatcherIndices[137], + /* usage */ ParameterUsage::kDepthRef, + /* matcher indices */ &kMatcherIndices[4], }, { /* [125] */ - /* usage */ ParameterUsage::kDdy, - /* matcher indices */ &kMatcherIndices[137], + /* usage */ ParameterUsage::kOffset, + /* matcher indices */ &kMatcherIndices[131], }, { /* [126] */ @@ -3600,12 +3600,12 @@ constexpr ParameterInfo kParameters[] = { { /* [128] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], + /* matcher indices */ &kMatcherIndices[135], }, { /* [129] */ /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[34], + /* matcher indices */ &kMatcherIndices[31], }, { /* [130] */ @@ -3615,12 +3615,12 @@ constexpr ParameterInfo kParameters[] = { { /* [131] */ /* usage */ ParameterUsage::kOffset, - /* matcher indices */ &kMatcherIndices[105], + /* matcher indices */ &kMatcherIndices[131], }, { /* [132] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[213], + /* matcher indices */ &kMatcherIndices[215], }, { /* [133] */ @@ -3630,82 +3630,82 @@ constexpr ParameterInfo kParameters[] = { { /* [134] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], + /* matcher indices */ &kMatcherIndices[135], }, { /* [135] */ - /* usage */ ParameterUsage::kDdx, - /* matcher indices */ &kMatcherIndices[137], + /* usage */ ParameterUsage::kArrayIndex, + /* matcher indices */ &kMatcherIndices[31], }, { /* [136] */ - /* usage */ ParameterUsage::kDdy, - /* matcher indices */ &kMatcherIndices[137], + /* usage */ ParameterUsage::kBias, + /* matcher indices */ &kMatcherIndices[4], }, { /* [137] */ /* usage */ ParameterUsage::kOffset, - /* matcher indices */ &kMatcherIndices[105], + /* matcher indices */ &kMatcherIndices[131], }, { /* [138] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[237], + /* matcher indices */ &kMatcherIndices[225], }, { /* [139] */ /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[234], + /* matcher indices */ &kMatcherIndices[233], }, { /* [140] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], + /* matcher indices */ &kMatcherIndices[111], }, { /* [141] */ /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[34], + /* matcher indices */ &kMatcherIndices[31], }, { /* [142] */ - /* usage */ ParameterUsage::kDepthRef, - /* matcher indices */ &kMatcherIndices[4], + /* usage */ ParameterUsage::kDdx, + /* matcher indices */ &kMatcherIndices[111], }, { /* [143] */ - /* usage */ ParameterUsage::kOffset, - /* matcher indices */ &kMatcherIndices[105], + /* usage */ ParameterUsage::kDdy, + /* matcher indices */ &kMatcherIndices[111], }, { /* [144] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[237], + /* usage */ ParameterUsage::kComponent, + /* matcher indices */ &kMatcherIndices[31], }, { /* [145] */ - /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[234], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[143], }, { /* [146] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], + /* usage */ ParameterUsage::kSampler, + /* matcher indices */ &kMatcherIndices[233], }, { /* [147] */ - /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[34], + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[135], }, { /* [148] */ - /* usage */ ParameterUsage::kDepthRef, - /* matcher indices */ &kMatcherIndices[4], + /* usage */ ParameterUsage::kArrayIndex, + /* matcher indices */ &kMatcherIndices[31], }, { /* [149] */ /* usage */ ParameterUsage::kOffset, - /* matcher indices */ &kMatcherIndices[105], + /* matcher indices */ &kMatcherIndices[131], }, { /* [150] */ @@ -3720,72 +3720,72 @@ constexpr ParameterInfo kParameters[] = { { /* [152] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], + /* matcher indices */ &kMatcherIndices[135], }, { /* [153] */ /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[34], + /* matcher indices */ &kMatcherIndices[31], }, { /* [154] */ - /* usage */ ParameterUsage::kOffset, - /* matcher indices */ &kMatcherIndices[105], - }, - { - /* [155] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[237], - }, - { - /* [156] */ - /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[234], - }, - { - /* [157] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], - }, - { - /* [158] */ - /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[34], - }, - { - /* [159] */ - /* usage */ ParameterUsage::kDepthRef, - /* matcher indices */ &kMatcherIndices[4], - }, - { - /* [160] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[213], - }, - { - /* [161] */ - /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[233], - }, - { - /* [162] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], - }, - { - /* [163] */ /* usage */ ParameterUsage::kBias, /* matcher indices */ &kMatcherIndices[4], }, { - /* [164] */ + /* [155] */ + /* usage */ ParameterUsage::kComponent, + /* matcher indices */ &kMatcherIndices[31], + }, + { + /* [156] */ + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[141], + }, + { + /* [157] */ + /* usage */ ParameterUsage::kSampler, + /* matcher indices */ &kMatcherIndices[233], + }, + { + /* [158] */ + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[135], + }, + { + /* [159] */ /* usage */ ParameterUsage::kOffset, - /* matcher indices */ &kMatcherIndices[105], + /* matcher indices */ &kMatcherIndices[131], + }, + { + /* [160] */ + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[235], + }, + { + /* [161] */ + /* usage */ ParameterUsage::kSampler, + /* matcher indices */ &kMatcherIndices[234], + }, + { + /* [162] */ + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[111], + }, + { + /* [163] */ + /* usage */ ParameterUsage::kArrayIndex, + /* matcher indices */ &kMatcherIndices[31], + }, + { + /* [164] */ + /* usage */ ParameterUsage::kDepthRef, + /* matcher indices */ &kMatcherIndices[4], }, { /* [165] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[217], + /* matcher indices */ &kMatcherIndices[237], }, { /* [166] */ @@ -3795,22 +3795,22 @@ constexpr ParameterInfo kParameters[] = { { /* [167] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[111], + /* matcher indices */ &kMatcherIndices[135], }, { /* [168] */ - /* usage */ ParameterUsage::kBias, - /* matcher indices */ &kMatcherIndices[4], + /* usage */ ParameterUsage::kArrayIndex, + /* matcher indices */ &kMatcherIndices[31], }, { /* [169] */ /* usage */ ParameterUsage::kOffset, - /* matcher indices */ &kMatcherIndices[119], + /* matcher indices */ &kMatcherIndices[131], }, { /* [170] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[225], + /* matcher indices */ &kMatcherIndices[221], }, { /* [171] */ @@ -3824,43 +3824,43 @@ constexpr ParameterInfo kParameters[] = { }, { /* [173] */ - /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[34], + /* usage */ ParameterUsage::kLevel, + /* matcher indices */ &kMatcherIndices[4], }, { /* [174] */ - /* usage */ ParameterUsage::kBias, - /* matcher indices */ &kMatcherIndices[4], + /* usage */ ParameterUsage::kOffset, + /* matcher indices */ &kMatcherIndices[117], }, { /* [175] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[238], + /* matcher indices */ &kMatcherIndices[237], }, { /* [176] */ /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[234], + /* matcher indices */ &kMatcherIndices[233], }, { /* [177] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], + /* matcher indices */ &kMatcherIndices[135], }, { /* [178] */ - /* usage */ ParameterUsage::kDepthRef, - /* matcher indices */ &kMatcherIndices[4], + /* usage */ ParameterUsage::kArrayIndex, + /* matcher indices */ &kMatcherIndices[31], }, { /* [179] */ /* usage */ ParameterUsage::kOffset, - /* matcher indices */ &kMatcherIndices[105], + /* matcher indices */ &kMatcherIndices[131], }, { /* [180] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[237], + /* matcher indices */ &kMatcherIndices[238], }, { /* [181] */ @@ -3870,17 +3870,17 @@ constexpr ParameterInfo kParameters[] = { { /* [182] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], + /* matcher indices */ &kMatcherIndices[135], }, { /* [183] */ - /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[34], + /* usage */ ParameterUsage::kDepthRef, + /* matcher indices */ &kMatcherIndices[4], }, { /* [184] */ - /* usage */ ParameterUsage::kDepthRef, - /* matcher indices */ &kMatcherIndices[4], + /* usage */ ParameterUsage::kOffset, + /* matcher indices */ &kMatcherIndices[131], }, { /* [185] */ @@ -3890,132 +3890,132 @@ constexpr ParameterInfo kParameters[] = { { /* [186] */ /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[233], + /* matcher indices */ &kMatcherIndices[234], }, { /* [187] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], + /* matcher indices */ &kMatcherIndices[135], }, { /* [188] */ /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[34], + /* matcher indices */ &kMatcherIndices[31], }, { /* [189] */ - /* usage */ ParameterUsage::kOffset, - /* matcher indices */ &kMatcherIndices[105], + /* usage */ ParameterUsage::kDepthRef, + /* matcher indices */ &kMatcherIndices[4], }, { /* [190] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[235], + /* matcher indices */ &kMatcherIndices[213], }, { /* [191] */ /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[234], + /* matcher indices */ &kMatcherIndices[233], }, { /* [192] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[111], + /* matcher indices */ &kMatcherIndices[135], }, { /* [193] */ - /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[34], + /* usage */ ParameterUsage::kBias, + /* matcher indices */ &kMatcherIndices[4], }, { /* [194] */ - /* usage */ ParameterUsage::kDepthRef, - /* matcher indices */ &kMatcherIndices[4], + /* usage */ ParameterUsage::kOffset, + /* matcher indices */ &kMatcherIndices[131], }, { /* [195] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[238], + /* matcher indices */ &kMatcherIndices[215], }, { /* [196] */ /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[234], + /* matcher indices */ &kMatcherIndices[233], }, { /* [197] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], + /* matcher indices */ &kMatcherIndices[135], }, { /* [198] */ - /* usage */ ParameterUsage::kDepthRef, - /* matcher indices */ &kMatcherIndices[4], + /* usage */ ParameterUsage::kArrayIndex, + /* matcher indices */ &kMatcherIndices[31], }, { /* [199] */ /* usage */ ParameterUsage::kOffset, - /* matcher indices */ &kMatcherIndices[105], + /* matcher indices */ &kMatcherIndices[131], }, { /* [200] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[237], + /* usage */ ParameterUsage::kComponent, + /* matcher indices */ &kMatcherIndices[31], }, { /* [201] */ - /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[234], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[151], }, { /* [202] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], - }, - { - /* [203] */ - /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[34], - }, - { - /* [204] */ - /* usage */ ParameterUsage::kDepthRef, - /* matcher indices */ &kMatcherIndices[4], - }, - { - /* [205] */ - /* usage */ ParameterUsage::kComponent, - /* matcher indices */ &kMatcherIndices[34], - }, - { - /* [206] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[153], - }, - { - /* [207] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[233], }, { - /* [208] */ + /* [203] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[111], }, { - /* [209] */ + /* [204] */ /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[34], + /* matcher indices */ &kMatcherIndices[31], + }, + { + /* [205] */ + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[225], + }, + { + /* [206] */ + /* usage */ ParameterUsage::kSampler, + /* matcher indices */ &kMatcherIndices[233], + }, + { + /* [207] */ + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[111], + }, + { + /* [208] */ + /* usage */ ParameterUsage::kArrayIndex, + /* matcher indices */ &kMatcherIndices[31], + }, + { + /* [209] */ + /* usage */ ParameterUsage::kLevel, + /* matcher indices */ &kMatcherIndices[4], }, { /* [210] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[235], + /* matcher indices */ &kMatcherIndices[221], }, { /* [211] */ /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[234], + /* matcher indices */ &kMatcherIndices[233], }, { /* [212] */ @@ -4024,18 +4024,18 @@ constexpr ParameterInfo kParameters[] = { }, { /* [213] */ - /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[34], + /* usage */ ParameterUsage::kBias, + /* matcher indices */ &kMatcherIndices[4], }, { /* [214] */ - /* usage */ ParameterUsage::kDepthRef, - /* matcher indices */ &kMatcherIndices[4], + /* usage */ ParameterUsage::kOffset, + /* matcher indices */ &kMatcherIndices[117], }, { /* [215] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[213], + /* matcher indices */ &kMatcherIndices[238], }, { /* [216] */ @@ -4045,17 +4045,17 @@ constexpr ParameterInfo kParameters[] = { { /* [217] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], + /* matcher indices */ &kMatcherIndices[135], }, { /* [218] */ - /* usage */ ParameterUsage::kDdx, - /* matcher indices */ &kMatcherIndices[137], + /* usage */ ParameterUsage::kLevel, + /* matcher indices */ &kMatcherIndices[31], }, { /* [219] */ - /* usage */ ParameterUsage::kDdy, - /* matcher indices */ &kMatcherIndices[137], + /* usage */ ParameterUsage::kOffset, + /* matcher indices */ &kMatcherIndices[131], }, { /* [220] */ @@ -4075,7 +4075,7 @@ constexpr ParameterInfo kParameters[] = { { /* [223] */ /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[34], + /* matcher indices */ &kMatcherIndices[31], }, { /* [224] */ @@ -4085,57 +4085,57 @@ constexpr ParameterInfo kParameters[] = { { /* [225] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[215], + /* matcher indices */ &kMatcherIndices[238], }, { /* [226] */ /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[233], + /* matcher indices */ &kMatcherIndices[234], }, { /* [227] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], + /* matcher indices */ &kMatcherIndices[135], }, { /* [228] */ - /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[34], - }, - { - /* [229] */ - /* usage */ ParameterUsage::kBias, + /* usage */ ParameterUsage::kDepthRef, /* matcher indices */ &kMatcherIndices[4], }, + { + /* [229] */ + /* usage */ ParameterUsage::kOffset, + /* matcher indices */ &kMatcherIndices[131], + }, { /* [230] */ - /* usage */ ParameterUsage::kComponent, - /* matcher indices */ &kMatcherIndices[34], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[215], }, { /* [231] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[143], - }, - { - /* [232] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[233], }, { - /* [233] */ + /* [232] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], + /* matcher indices */ &kMatcherIndices[135], + }, + { + /* [233] */ + /* usage */ ParameterUsage::kArrayIndex, + /* matcher indices */ &kMatcherIndices[31], }, { /* [234] */ - /* usage */ ParameterUsage::kOffset, - /* matcher indices */ &kMatcherIndices[105], + /* usage */ ParameterUsage::kLevel, + /* matcher indices */ &kMatcherIndices[4], }, { /* [235] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[217], + /* matcher indices */ &kMatcherIndices[225], }, { /* [236] */ @@ -4149,48 +4149,48 @@ constexpr ParameterInfo kParameters[] = { }, { /* [238] */ - /* usage */ ParameterUsage::kDdx, - /* matcher indices */ &kMatcherIndices[111], + /* usage */ ParameterUsage::kArrayIndex, + /* matcher indices */ &kMatcherIndices[31], }, { /* [239] */ - /* usage */ ParameterUsage::kDdy, - /* matcher indices */ &kMatcherIndices[111], + /* usage */ ParameterUsage::kBias, + /* matcher indices */ &kMatcherIndices[4], }, { /* [240] */ - /* usage */ ParameterUsage::kComponent, - /* matcher indices */ &kMatcherIndices[34], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[237], }, { /* [241] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[145], - }, - { - /* [242] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[233], }, { - /* [243] */ + /* [242] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], + /* matcher indices */ &kMatcherIndices[135], + }, + { + /* [243] */ + /* usage */ ParameterUsage::kArrayIndex, + /* matcher indices */ &kMatcherIndices[31], }, { /* [244] */ - /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[34], + /* usage */ ParameterUsage::kLevel, + /* matcher indices */ &kMatcherIndices[31], }, { /* [245] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[223], + /* matcher indices */ &kMatcherIndices[235], }, { /* [246] */ /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[233], + /* matcher indices */ &kMatcherIndices[234], }, { /* [247] */ @@ -4199,118 +4199,118 @@ constexpr ParameterInfo kParameters[] = { }, { /* [248] */ - /* usage */ ParameterUsage::kDdx, - /* matcher indices */ &kMatcherIndices[111], + /* usage */ ParameterUsage::kArrayIndex, + /* matcher indices */ &kMatcherIndices[31], }, { /* [249] */ - /* usage */ ParameterUsage::kDdy, - /* matcher indices */ &kMatcherIndices[111], - }, - { - /* [250] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[238], - }, - { - /* [251] */ - /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[234], - }, - { - /* [252] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], - }, - { - /* [253] */ /* usage */ ParameterUsage::kDepthRef, /* matcher indices */ &kMatcherIndices[4], }, { - /* [254] */ - /* usage */ ParameterUsage::kOffset, - /* matcher indices */ &kMatcherIndices[105], - }, - { - /* [255] */ + /* [250] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[213], }, { - /* [256] */ + /* [251] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[233], }, { - /* [257] */ + /* [252] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], + /* matcher indices */ &kMatcherIndices[135], }, { - /* [258] */ - /* usage */ ParameterUsage::kLevel, - /* matcher indices */ &kMatcherIndices[4], + /* [253] */ + /* usage */ ParameterUsage::kDdx, + /* matcher indices */ &kMatcherIndices[135], }, { - /* [259] */ - /* usage */ ParameterUsage::kOffset, - /* matcher indices */ &kMatcherIndices[105], + /* [254] */ + /* usage */ ParameterUsage::kDdy, + /* matcher indices */ &kMatcherIndices[135], }, { - /* [260] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[215], - }, - { - /* [261] */ - /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[233], - }, - { - /* [262] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], - }, - { - /* [263] */ - /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[34], - }, - { - /* [264] */ - /* usage */ ParameterUsage::kLevel, - /* matcher indices */ &kMatcherIndices[4], - }, - { - /* [265] */ + /* [255] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[237], }, + { + /* [256] */ + /* usage */ ParameterUsage::kSampler, + /* matcher indices */ &kMatcherIndices[234], + }, + { + /* [257] */ + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[135], + }, + { + /* [258] */ + /* usage */ ParameterUsage::kArrayIndex, + /* matcher indices */ &kMatcherIndices[31], + }, + { + /* [259] */ + /* usage */ ParameterUsage::kDepthRef, + /* matcher indices */ &kMatcherIndices[4], + }, + { + /* [260] */ + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[238], + }, + { + /* [261] */ + /* usage */ ParameterUsage::kSampler, + /* matcher indices */ &kMatcherIndices[234], + }, + { + /* [262] */ + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[135], + }, + { + /* [263] */ + /* usage */ ParameterUsage::kDepthRef, + /* matcher indices */ &kMatcherIndices[4], + }, + { + /* [264] */ + /* usage */ ParameterUsage::kOffset, + /* matcher indices */ &kMatcherIndices[131], + }, + { + /* [265] */ + /* usage */ ParameterUsage::kComponent, + /* matcher indices */ &kMatcherIndices[31], + }, { /* [266] */ + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[143], + }, + { + /* [267] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[233], }, - { - /* [267] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], - }, { /* [268] */ - /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[34], + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[135], }, { /* [269] */ - /* usage */ ParameterUsage::kOffset, - /* matcher indices */ &kMatcherIndices[105], + /* usage */ ParameterUsage::kArrayIndex, + /* matcher indices */ &kMatcherIndices[31], }, { /* [270] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[217], + /* matcher indices */ &kMatcherIndices[221], }, { /* [271] */ @@ -4324,43 +4324,43 @@ constexpr ParameterInfo kParameters[] = { }, { /* [273] */ - /* usage */ ParameterUsage::kLevel, - /* matcher indices */ &kMatcherIndices[4], + /* usage */ ParameterUsage::kDdx, + /* matcher indices */ &kMatcherIndices[111], }, { /* [274] */ - /* usage */ ParameterUsage::kOffset, - /* matcher indices */ &kMatcherIndices[119], + /* usage */ ParameterUsage::kDdy, + /* matcher indices */ &kMatcherIndices[111], }, { /* [275] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[225], + /* matcher indices */ &kMatcherIndices[237], }, { /* [276] */ /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[233], + /* matcher indices */ &kMatcherIndices[234], }, { /* [277] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[111], + /* matcher indices */ &kMatcherIndices[135], }, { /* [278] */ /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[34], + /* matcher indices */ &kMatcherIndices[31], }, { /* [279] */ - /* usage */ ParameterUsage::kLevel, + /* usage */ ParameterUsage::kDepthRef, /* matcher indices */ &kMatcherIndices[4], }, { /* [280] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[238], + /* matcher indices */ &kMatcherIndices[223], }, { /* [281] */ @@ -4370,17 +4370,17 @@ constexpr ParameterInfo kParameters[] = { { /* [282] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], + /* matcher indices */ &kMatcherIndices[111], }, { /* [283] */ - /* usage */ ParameterUsage::kLevel, - /* matcher indices */ &kMatcherIndices[34], + /* usage */ ParameterUsage::kDdx, + /* matcher indices */ &kMatcherIndices[111], }, { /* [284] */ - /* usage */ ParameterUsage::kOffset, - /* matcher indices */ &kMatcherIndices[105], + /* usage */ ParameterUsage::kDdy, + /* matcher indices */ &kMatcherIndices[111], }, { /* [285] */ @@ -4400,17 +4400,17 @@ constexpr ParameterInfo kParameters[] = { { /* [288] */ /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[34], + /* matcher indices */ &kMatcherIndices[31], }, { /* [289] */ /* usage */ ParameterUsage::kLevel, - /* matcher indices */ &kMatcherIndices[34], + /* matcher indices */ &kMatcherIndices[31], }, { /* [290] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[237], + /* matcher indices */ &kMatcherIndices[213], }, { /* [291] */ @@ -4420,22 +4420,22 @@ constexpr ParameterInfo kParameters[] = { { /* [292] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], + /* matcher indices */ &kMatcherIndices[135], }, { /* [293] */ - /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[34], + /* usage */ ParameterUsage::kLevel, + /* matcher indices */ &kMatcherIndices[4], }, { /* [294] */ - /* usage */ ParameterUsage::kLevel, - /* matcher indices */ &kMatcherIndices[34], + /* usage */ ParameterUsage::kOffset, + /* matcher indices */ &kMatcherIndices[131], }, { /* [295] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[237], + /* matcher indices */ &kMatcherIndices[215], }, { /* [296] */ @@ -4445,57 +4445,57 @@ constexpr ParameterInfo kParameters[] = { { /* [297] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], + /* matcher indices */ &kMatcherIndices[135], }, { /* [298] */ /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[34], + /* matcher indices */ &kMatcherIndices[31], }, { /* [299] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[238], + /* matcher indices */ &kMatcherIndices[213], }, { /* [300] */ /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[234], + /* matcher indices */ &kMatcherIndices[233], }, { /* [301] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], + /* matcher indices */ &kMatcherIndices[135], }, { /* [302] */ - /* usage */ ParameterUsage::kDepthRef, + /* usage */ ParameterUsage::kLevel, /* matcher indices */ &kMatcherIndices[4], }, { /* [303] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[129], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[236], }, { /* [304] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[129], + /* usage */ ParameterUsage::kSampler, + /* matcher indices */ &kMatcherIndices[234], }, { /* [305] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[129], + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[111], }, { /* [306] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[129], + /* usage */ ParameterUsage::kDepthRef, + /* matcher indices */ &kMatcherIndices[4], }, { /* [307] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[238], + /* matcher indices */ &kMatcherIndices[213], }, { /* [308] */ @@ -4505,77 +4505,77 @@ constexpr ParameterInfo kParameters[] = { { /* [309] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], + /* matcher indices */ &kMatcherIndices[135], }, { /* [310] */ - /* usage */ ParameterUsage::kLevel, - /* matcher indices */ &kMatcherIndices[34], + /* usage */ ParameterUsage::kOffset, + /* matcher indices */ &kMatcherIndices[131], }, { /* [311] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[115], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[236], }, { /* [312] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[115], + /* usage */ ParameterUsage::kSampler, + /* matcher indices */ &kMatcherIndices[234], }, { /* [313] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[115], - }, - { - /* [314] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[115], - }, - { - /* [315] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[223], - }, - { - /* [316] */ - /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[233], - }, - { - /* [317] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[111], }, { - /* [318] */ - /* usage */ ParameterUsage::kLevel, + /* [314] */ + /* usage */ ParameterUsage::kDepthRef, /* matcher indices */ &kMatcherIndices[4], }, { - /* [319] */ + /* [315] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[113], + /* matcher indices */ &kMatcherIndices[107], + }, + { + /* [316] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[107], + }, + { + /* [317] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[107], + }, + { + /* [318] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[107], + }, + { + /* [319] */ + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[221], }, { /* [320] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[113], + /* usage */ ParameterUsage::kSampler, + /* matcher indices */ &kMatcherIndices[233], }, { /* [321] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[113], + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[111], }, { /* [322] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[113], + /* usage */ ParameterUsage::kOffset, + /* matcher indices */ &kMatcherIndices[117], }, { /* [323] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[217], + /* matcher indices */ &kMatcherIndices[225], }, { /* [324] */ @@ -4589,33 +4589,33 @@ constexpr ParameterInfo kParameters[] = { }, { /* [326] */ - /* usage */ ParameterUsage::kLevel, - /* matcher indices */ &kMatcherIndices[4], + /* usage */ ParameterUsage::kArrayIndex, + /* matcher indices */ &kMatcherIndices[31], }, { /* [327] */ - /* usage */ ParameterUsage::kComponent, - /* matcher indices */ &kMatcherIndices[34], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[238], }, { /* [328] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[151], + /* usage */ ParameterUsage::kSampler, + /* matcher indices */ &kMatcherIndices[234], }, { /* [329] */ - /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[233], + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[135], }, { /* [330] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[111], + /* usage */ ParameterUsage::kDepthRef, + /* matcher indices */ &kMatcherIndices[4], }, { /* [331] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[238], + /* matcher indices */ &kMatcherIndices[235], }, { /* [332] */ @@ -4625,32 +4625,32 @@ constexpr ParameterInfo kParameters[] = { { /* [333] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], + /* matcher indices */ &kMatcherIndices[111], }, { /* [334] */ - /* usage */ ParameterUsage::kOffset, - /* matcher indices */ &kMatcherIndices[105], + /* usage */ ParameterUsage::kArrayIndex, + /* matcher indices */ &kMatcherIndices[31], }, { /* [335] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[72], + /* matcher indices */ &kMatcherIndices[238], }, { /* [336] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[105], + /* usage */ ParameterUsage::kSampler, + /* matcher indices */ &kMatcherIndices[233], }, { /* [337] */ - /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[34], + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[135], }, { /* [338] */ - /* usage */ ParameterUsage::kValue, - /* matcher indices */ &kMatcherIndices[135], + /* usage */ ParameterUsage::kOffset, + /* matcher indices */ &kMatcherIndices[131], }, { /* [339] */ @@ -4665,17 +4665,17 @@ constexpr ParameterInfo kParameters[] = { { /* [341] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], + /* matcher indices */ &kMatcherIndices[135], }, { /* [342] */ /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[34], + /* matcher indices */ &kMatcherIndices[31], }, { /* [343] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[235], + /* matcher indices */ &kMatcherIndices[238], }, { /* [344] */ @@ -4685,97 +4685,97 @@ constexpr ParameterInfo kParameters[] = { { /* [345] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[111], + /* matcher indices */ &kMatcherIndices[135], }, { /* [346] */ - /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[34], + /* usage */ ParameterUsage::kOffset, + /* matcher indices */ &kMatcherIndices[131], }, { /* [347] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[238], + /* matcher indices */ &kMatcherIndices[237], }, { /* [348] */ /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[234], + /* matcher indices */ &kMatcherIndices[233], }, { /* [349] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], + /* matcher indices */ &kMatcherIndices[135], }, { /* [350] */ - /* usage */ ParameterUsage::kDepthRef, - /* matcher indices */ &kMatcherIndices[4], + /* usage */ ParameterUsage::kArrayIndex, + /* matcher indices */ &kMatcherIndices[31], }, { /* [351] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[213], + /* usage */ ParameterUsage::kComponent, + /* matcher indices */ &kMatcherIndices[31], }, { /* [352] */ + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[149], + }, + { + /* [353] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[233], }, - { - /* [353] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], - }, { /* [354] */ - /* usage */ ParameterUsage::kLevel, - /* matcher indices */ &kMatcherIndices[4], + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[111], }, { /* [355] */ - /* usage */ ParameterUsage::kNone, + /* usage */ ParameterUsage::kX, /* matcher indices */ &kMatcherIndices[1], }, { /* [356] */ - /* usage */ ParameterUsage::kNone, + /* usage */ ParameterUsage::kY, /* matcher indices */ &kMatcherIndices[1], }, { /* [357] */ - /* usage */ ParameterUsage::kNone, + /* usage */ ParameterUsage::kZ, /* matcher indices */ &kMatcherIndices[1], }, { /* [358] */ - /* usage */ ParameterUsage::kNone, + /* usage */ ParameterUsage::kW, /* matcher indices */ &kMatcherIndices[1], }, { /* [359] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[236], + /* matcher indices */ &kMatcherIndices[237], }, { /* [360] */ - /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[234], + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[131], }, { /* [361] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[111], + /* usage */ ParameterUsage::kArrayIndex, + /* matcher indices */ &kMatcherIndices[31], }, { /* [362] */ - /* usage */ ParameterUsage::kDepthRef, - /* matcher indices */ &kMatcherIndices[4], + /* usage */ ParameterUsage::kLevel, + /* matcher indices */ &kMatcherIndices[31], }, { /* [363] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[213], + /* matcher indices */ &kMatcherIndices[235], }, { /* [364] */ @@ -4785,37 +4785,37 @@ constexpr ParameterInfo kParameters[] = { { /* [365] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], + /* matcher indices */ &kMatcherIndices[111], }, { /* [366] */ - /* usage */ ParameterUsage::kOffset, - /* matcher indices */ &kMatcherIndices[105], + /* usage */ ParameterUsage::kArrayIndex, + /* matcher indices */ &kMatcherIndices[31], }, { /* [367] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[54], + /* usage */ ParameterUsage::kComponent, + /* matcher indices */ &kMatcherIndices[31], }, { /* [368] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[105], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[141], }, { /* [369] */ - /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[34], + /* usage */ ParameterUsage::kSampler, + /* matcher indices */ &kMatcherIndices[233], }, { /* [370] */ - /* usage */ ParameterUsage::kValue, - /* matcher indices */ &kMatcherIndices[159], + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[135], }, { /* [371] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[215], + /* matcher indices */ &kMatcherIndices[221], }, { /* [372] */ @@ -4825,17 +4825,17 @@ constexpr ParameterInfo kParameters[] = { { /* [373] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], + /* matcher indices */ &kMatcherIndices[111], }, { /* [374] */ - /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[34], + /* usage */ ParameterUsage::kLevel, + /* matcher indices */ &kMatcherIndices[4], }, { /* [375] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[217], + /* matcher indices */ &kMatcherIndices[213], }, { /* [376] */ @@ -4845,17 +4845,17 @@ constexpr ParameterInfo kParameters[] = { { /* [377] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[111], + /* matcher indices */ &kMatcherIndices[135], }, { /* [378] */ - /* usage */ ParameterUsage::kOffset, - /* matcher indices */ &kMatcherIndices[119], + /* usage */ ParameterUsage::kBias, + /* matcher indices */ &kMatcherIndices[4], }, { /* [379] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[225], + /* matcher indices */ &kMatcherIndices[223], }, { /* [380] */ @@ -4869,13 +4869,13 @@ constexpr ParameterInfo kParameters[] = { }, { /* [382] */ - /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[34], + /* usage */ ParameterUsage::kLevel, + /* matcher indices */ &kMatcherIndices[4], }, { /* [383] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[238], + /* matcher indices */ &kMatcherIndices[221], }, { /* [384] */ @@ -4885,77 +4885,77 @@ constexpr ParameterInfo kParameters[] = { { /* [385] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], + /* matcher indices */ &kMatcherIndices[111], }, { /* [386] */ - /* usage */ ParameterUsage::kOffset, - /* matcher indices */ &kMatcherIndices[105], + /* usage */ ParameterUsage::kBias, + /* matcher indices */ &kMatcherIndices[4], }, { /* [387] */ - /* usage */ ParameterUsage::kComponent, - /* matcher indices */ &kMatcherIndices[34], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[238], }, { /* [388] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[143], - }, - { - /* [389] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[233], }, { - /* [390] */ + /* [389] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], + /* matcher indices */ &kMatcherIndices[135], + }, + { + /* [390] */ + /* usage */ ParameterUsage::kLevel, + /* matcher indices */ &kMatcherIndices[31], }, { /* [391] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[36], + /* matcher indices */ &kMatcherIndices[223], }, { /* [392] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[105], + /* usage */ ParameterUsage::kSampler, + /* matcher indices */ &kMatcherIndices[233], }, { /* [393] */ - /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[34], + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[111], }, { /* [394] */ - /* usage */ ParameterUsage::kValue, - /* matcher indices */ &kMatcherIndices[161], + /* usage */ ParameterUsage::kBias, + /* matcher indices */ &kMatcherIndices[4], }, { /* [395] */ - /* usage */ ParameterUsage::kX, + /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[1], }, { /* [396] */ - /* usage */ ParameterUsage::kY, + /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[1], }, { /* [397] */ - /* usage */ ParameterUsage::kZ, + /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[1], }, { /* [398] */ - /* usage */ ParameterUsage::kW, + /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[1], }, { /* [399] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[236], + /* matcher indices */ &kMatcherIndices[238], }, { /* [400] */ @@ -4965,7 +4965,7 @@ constexpr ParameterInfo kParameters[] = { { /* [401] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[111], + /* matcher indices */ &kMatcherIndices[135], }, { /* [402] */ @@ -4975,7 +4975,7 @@ constexpr ParameterInfo kParameters[] = { { /* [403] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[235], + /* matcher indices */ &kMatcherIndices[236], }, { /* [404] */ @@ -4989,88 +4989,88 @@ constexpr ParameterInfo kParameters[] = { }, { /* [406] */ - /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[34], + /* usage */ ParameterUsage::kLevel, + /* matcher indices */ &kMatcherIndices[31], }, { /* [407] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[213], + /* matcher indices */ &kMatcherIndices[236], }, { /* [408] */ /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[233], + /* matcher indices */ &kMatcherIndices[234], }, { /* [409] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], + /* matcher indices */ &kMatcherIndices[111], }, { /* [410] */ - /* usage */ ParameterUsage::kBias, + /* usage */ ParameterUsage::kDepthRef, /* matcher indices */ &kMatcherIndices[4], }, { /* [411] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[145], + /* matcher indices */ &kMatcherIndices[69], }, { /* [412] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[105], + /* matcher indices */ &kMatcherIndices[131], }, { /* [413] */ /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[34], + /* matcher indices */ &kMatcherIndices[31], }, { /* [414] */ - /* usage */ ParameterUsage::kLevel, - /* matcher indices */ &kMatcherIndices[34], + /* usage */ ParameterUsage::kValue, + /* matcher indices */ &kMatcherIndices[105], }, { /* [415] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[238], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[127], }, { /* [416] */ - /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[234], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[127], }, { /* [417] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[127], }, { /* [418] */ - /* usage */ ParameterUsage::kDepthRef, - /* matcher indices */ &kMatcherIndices[4], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[127], }, { /* [419] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[236], + /* matcher indices */ &kMatcherIndices[54], }, { /* [420] */ - /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[233], + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[131], }, { /* [421] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[111], + /* usage */ ParameterUsage::kArrayIndex, + /* matcher indices */ &kMatcherIndices[31], }, { /* [422] */ - /* usage */ ParameterUsage::kLevel, - /* matcher indices */ &kMatcherIndices[34], + /* usage */ ParameterUsage::kValue, + /* matcher indices */ &kMatcherIndices[157], }, { /* [423] */ @@ -5085,157 +5085,157 @@ constexpr ParameterInfo kParameters[] = { { /* [425] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[35], + /* matcher indices */ &kMatcherIndices[32], }, { /* [426] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[35], + /* matcher indices */ &kMatcherIndices[32], }, { /* [427] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [428] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [429] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[35], + /* matcher indices */ &kMatcherIndices[32], }, { /* [430] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[35], + /* matcher indices */ &kMatcherIndices[32], }, { /* [431] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[236], + /* matcher indices */ &kMatcherIndices[36], }, { /* [432] */ - /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[234], + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[131], }, { /* [433] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[111], + /* usage */ ParameterUsage::kArrayIndex, + /* matcher indices */ &kMatcherIndices[31], }, { /* [434] */ - /* usage */ ParameterUsage::kDepthRef, - /* matcher indices */ &kMatcherIndices[4], + /* usage */ ParameterUsage::kValue, + /* matcher indices */ &kMatcherIndices[159], }, { /* [435] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[217], + /* matcher indices */ &kMatcherIndices[143], }, { /* [436] */ - /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[233], + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[131], }, { /* [437] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[111], + /* usage */ ParameterUsage::kArrayIndex, + /* matcher indices */ &kMatcherIndices[31], }, { /* [438] */ - /* usage */ ParameterUsage::kBias, - /* matcher indices */ &kMatcherIndices[4], + /* usage */ ParameterUsage::kLevel, + /* matcher indices */ &kMatcherIndices[31], }, { /* [439] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[223], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[113], }, { /* [440] */ - /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[233], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[113], }, { /* [441] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[111], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[113], }, { /* [442] */ - /* usage */ ParameterUsage::kBias, - /* matcher indices */ &kMatcherIndices[4], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[113], }, { /* [443] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[237], + /* matcher indices */ &kMatcherIndices[238], }, { /* [444] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[105], + /* usage */ ParameterUsage::kSampler, + /* matcher indices */ &kMatcherIndices[234], }, { /* [445] */ - /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[34], + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[135], }, { /* [446] */ - /* usage */ ParameterUsage::kLevel, - /* matcher indices */ &kMatcherIndices[34], + /* usage */ ParameterUsage::kDepthRef, + /* matcher indices */ &kMatcherIndices[4], }, { /* [447] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[240], + /* matcher indices */ &kMatcherIndices[141], }, { /* [448] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[105], + /* matcher indices */ &kMatcherIndices[131], }, { /* [449] */ - /* usage */ ParameterUsage::kSampleIndex, - /* matcher indices */ &kMatcherIndices[34], + /* usage */ ParameterUsage::kLevel, + /* matcher indices */ &kMatcherIndices[31], }, { /* [450] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[213], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[107], }, { /* [451] */ - /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[233], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[107], }, { /* [452] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[107], }, { /* [453] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[238], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[113], }, { /* [454] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[105], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[113], }, { /* [455] */ - /* usage */ ParameterUsage::kLevel, - /* matcher indices */ &kMatcherIndices[34], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[113], }, { /* [456] */ @@ -5250,97 +5250,97 @@ constexpr ParameterInfo kParameters[] = { { /* [458] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[20], }, { /* [459] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[155], - }, - { - /* [460] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[105], - }, - { - /* [461] */ - /* usage */ ParameterUsage::kSampleIndex, - /* matcher indices */ &kMatcherIndices[34], - }, - { - /* [462] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[147], - }, - { - /* [463] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[119], - }, - { - /* [464] */ - /* usage */ ParameterUsage::kLevel, - /* matcher indices */ &kMatcherIndices[34], - }, - { - /* [465] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[0], - }, - { - /* [466] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], - }, - { - /* [467] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], - }, - { - /* [468] */ /* usage */ ParameterUsage::kX, /* matcher indices */ &kMatcherIndices[1], }, { - /* [469] */ + /* [460] */ /* usage */ ParameterUsage::kY, /* matcher indices */ &kMatcherIndices[1], }, { - /* [470] */ + /* [461] */ + /* usage */ ParameterUsage::kZw, + /* matcher indices */ &kMatcherIndices[113], + }, + { + /* [462] */ + /* usage */ ParameterUsage::kX, + /* matcher indices */ &kMatcherIndices[1], + }, + { + /* [463] */ + /* usage */ ParameterUsage::kYz, + /* matcher indices */ &kMatcherIndices[113], + }, + { + /* [464] */ + /* usage */ ParameterUsage::kW, + /* matcher indices */ &kMatcherIndices[1], + }, + { + /* [465] */ + /* usage */ ParameterUsage::kXy, + /* matcher indices */ &kMatcherIndices[113], + }, + { + /* [466] */ /* usage */ ParameterUsage::kZ, /* matcher indices */ &kMatcherIndices[1], }, { - /* [471] */ + /* [467] */ + /* usage */ ParameterUsage::kW, + /* matcher indices */ &kMatcherIndices[1], + }, + { + /* [468] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[143], + /* matcher indices */ &kMatcherIndices[39], + }, + { + /* [469] */ + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[131], + }, + { + /* [470] */ + /* usage */ ParameterUsage::kValue, + /* matcher indices */ &kMatcherIndices[159], + }, + { + /* [471] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[1], }, { /* [472] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[105], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[1], }, { /* [473] */ - /* usage */ ParameterUsage::kLevel, - /* matcher indices */ &kMatcherIndices[34], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[1], }, { /* [474] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[141], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[33], }, { /* [475] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[34], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[33], }, { /* [476] */ - /* usage */ ParameterUsage::kLevel, - /* matcher indices */ &kMatcherIndices[34], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[33], }, { /* [477] */ @@ -5360,27 +5360,27 @@ constexpr ParameterInfo kParameters[] = { { /* [480] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [481] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [482] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [483] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [484] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [485] */ @@ -5390,7 +5390,7 @@ constexpr ParameterInfo kParameters[] = { { /* [486] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[236], + /* matcher indices */ &kMatcherIndices[238], }, { /* [487] */ @@ -5400,57 +5400,57 @@ constexpr ParameterInfo kParameters[] = { { /* [488] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[111], + /* matcher indices */ &kMatcherIndices[135], }, { /* [489] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[33], + /* matcher indices */ &kMatcherIndices[223], }, { /* [490] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[119], + /* usage */ ParameterUsage::kSampler, + /* matcher indices */ &kMatcherIndices[233], }, { /* [491] */ - /* usage */ ParameterUsage::kValue, - /* matcher indices */ &kMatcherIndices[161], + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[111], }, { /* [492] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[42], + /* usage */ ParameterUsage::kX, + /* matcher indices */ &kMatcherIndices[1], }, { /* [493] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[105], + /* usage */ ParameterUsage::kY, + /* matcher indices */ &kMatcherIndices[1], }, { /* [494] */ - /* usage */ ParameterUsage::kValue, - /* matcher indices */ &kMatcherIndices[161], + /* usage */ ParameterUsage::kZ, + /* matcher indices */ &kMatcherIndices[1], }, { /* [495] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[45], + /* matcher indices */ &kMatcherIndices[221], }, { /* [496] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[34], + /* usage */ ParameterUsage::kSampler, + /* matcher indices */ &kMatcherIndices[233], }, { /* [497] */ - /* usage */ ParameterUsage::kValue, - /* matcher indices */ &kMatcherIndices[161], + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[111], }, { /* [498] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[238], + /* matcher indices */ &kMatcherIndices[213], }, { /* [499] */ @@ -5460,137 +5460,137 @@ constexpr ParameterInfo kParameters[] = { { /* [500] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], + /* matcher indices */ &kMatcherIndices[135], }, { /* [501] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[211], }, { /* [502] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* usage */ ParameterUsage::kSampler, + /* matcher indices */ &kMatcherIndices[233], }, { /* [503] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[4], }, { /* [504] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[223], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[127], }, { /* [505] */ - /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[233], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[127], }, { /* [506] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[111], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[127], }, { /* [507] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[236], }, { /* [508] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], - }, - { - /* [509] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], - }, - { - /* [510] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[217], - }, - { - /* [511] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[233], }, { - /* [512] */ + /* [509] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[111], }, + { + /* [510] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[1], + }, + { + /* [511] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[32], + }, + { + /* [512] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[32], + }, { /* [513] */ - /* usage */ ParameterUsage::kXy, - /* matcher indices */ &kMatcherIndices[113], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[33], }, { /* [514] */ - /* usage */ ParameterUsage::kZ, - /* matcher indices */ &kMatcherIndices[1], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[32], }, { /* [515] */ - /* usage */ ParameterUsage::kW, - /* matcher indices */ &kMatcherIndices[1], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[32], }, { /* [516] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[51], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[33], }, { /* [517] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[119], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[33], }, { /* [518] */ - /* usage */ ParameterUsage::kValue, - /* matcher indices */ &kMatcherIndices[159], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[33], }, { /* [519] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[57], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[1], }, { /* [520] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[105], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[1], }, { /* [521] */ - /* usage */ ParameterUsage::kValue, - /* matcher indices */ &kMatcherIndices[159], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[1], }, { /* [522] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [523] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [524] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [525] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [526] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [527] */ @@ -5599,118 +5599,118 @@ constexpr ParameterInfo kParameters[] = { }, { /* [528] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[209], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[0], }, { /* [529] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[1], + }, + { + /* [530] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[1], + }, + { + /* [531] */ + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[236], + }, + { + /* [532] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[233], }, - { - /* [530] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[4], - }, - { - /* [531] */ - /* usage */ ParameterUsage::kX, - /* matcher indices */ &kMatcherIndices[1], - }, - { - /* [532] */ - /* usage */ ParameterUsage::kYz, - /* matcher indices */ &kMatcherIndices[113], - }, { /* [533] */ - /* usage */ ParameterUsage::kW, - /* matcher indices */ &kMatcherIndices[1], + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[111], }, { /* [534] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[63], + /* matcher indices */ &kMatcherIndices[239], }, { /* [535] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[34], + /* usage */ ParameterUsage::kSampler, + /* matcher indices */ &kMatcherIndices[233], }, { /* [536] */ - /* usage */ ParameterUsage::kValue, - /* matcher indices */ &kMatcherIndices[159], + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[135], }, { /* [537] */ - /* usage */ ParameterUsage::kX, - /* matcher indices */ &kMatcherIndices[1], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[213], }, { /* [538] */ - /* usage */ ParameterUsage::kY, - /* matcher indices */ &kMatcherIndices[1], + /* usage */ ParameterUsage::kSampler, + /* matcher indices */ &kMatcherIndices[233], }, { /* [539] */ - /* usage */ ParameterUsage::kZw, - /* matcher indices */ &kMatcherIndices[113], + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[135], }, { /* [540] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[66], + /* matcher indices */ &kMatcherIndices[239], }, { /* [541] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[119], + /* usage */ ParameterUsage::kSampler, + /* matcher indices */ &kMatcherIndices[233], }, { /* [542] */ - /* usage */ ParameterUsage::kValue, + /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[135], }, { /* [543] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[113], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[78], }, { /* [544] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[113], + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[31], }, { /* [545] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[113], + /* usage */ ParameterUsage::kValue, + /* matcher indices */ &kMatcherIndices[105], }, { /* [546] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[75], }, { /* [547] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[131], }, { /* [548] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[20], + /* usage */ ParameterUsage::kValue, + /* matcher indices */ &kMatcherIndices[105], }, { /* [549] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [550] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [551] */ @@ -5720,107 +5720,107 @@ constexpr ParameterInfo kParameters[] = { { /* [552] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [553] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [554] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[39], + /* matcher indices */ &kMatcherIndices[42], }, { /* [555] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[66], }, { /* [556] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[117], }, { /* [557] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* usage */ ParameterUsage::kValue, + /* matcher indices */ &kMatcherIndices[105], }, { /* [558] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[60], }, { /* [559] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[35], + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[31], }, { /* [560] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[35], + /* usage */ ParameterUsage::kValue, + /* matcher indices */ &kMatcherIndices[157], }, { /* [561] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[236], + /* matcher indices */ &kMatcherIndices[57], }, { /* [562] */ + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[131], + }, + { + /* [563] */ + /* usage */ ParameterUsage::kValue, + /* matcher indices */ &kMatcherIndices[157], + }, + { + /* [564] */ + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[238], + }, + { + /* [565] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[233], }, - { - /* [563] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[111], - }, - { - /* [564] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[115], - }, - { - /* [565] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[115], - }, { /* [566] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[115], + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[135], }, { /* [567] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[51], }, { /* [568] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[35], + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[117], }, { /* [569] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[35], + /* usage */ ParameterUsage::kValue, + /* matcher indices */ &kMatcherIndices[157], }, { /* [570] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[75], + /* matcher indices */ &kMatcherIndices[240], }, { /* [571] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[105], + /* matcher indices */ &kMatcherIndices[131], }, { /* [572] */ - /* usage */ ParameterUsage::kValue, - /* matcher indices */ &kMatcherIndices[135], + /* usage */ ParameterUsage::kSampleIndex, + /* matcher indices */ &kMatcherIndices[31], }, { /* [573] */ @@ -5840,192 +5840,192 @@ constexpr ParameterInfo kParameters[] = { { /* [576] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [577] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [578] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [579] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[238], + /* matcher indices */ &kMatcherIndices[45], }, { /* [580] */ - /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[233], + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[31], }, { /* [581] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], + /* usage */ ParameterUsage::kValue, + /* matcher indices */ &kMatcherIndices[159], }, { /* [582] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[129], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[238], }, { /* [583] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[129], + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[131], }, { /* [584] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[129], + /* usage */ ParameterUsage::kLevel, + /* matcher indices */ &kMatcherIndices[31], }, { /* [585] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[102], + /* matcher indices */ &kMatcherIndices[30], }, { /* [586] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[34], + /* matcher indices */ &kMatcherIndices[117], }, { /* [587] */ /* usage */ ParameterUsage::kValue, - /* matcher indices */ &kMatcherIndices[135], + /* matcher indices */ &kMatcherIndices[159], }, { /* [588] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[239], + /* matcher indices */ &kMatcherIndices[139], }, { /* [589] */ - /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[233], + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[31], }, { /* [590] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], + /* usage */ ParameterUsage::kLevel, + /* matcher indices */ &kMatcherIndices[31], }, { /* [591] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[213], + /* matcher indices */ &kMatcherIndices[155], }, { /* [592] */ - /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[233], + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[131], }, { /* [593] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], + /* usage */ ParameterUsage::kSampleIndex, + /* matcher indices */ &kMatcherIndices[31], }, { /* [594] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[239], + /* matcher indices */ &kMatcherIndices[147], }, { /* [595] */ - /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[233], + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[117], }, { /* [596] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[137], + /* usage */ ParameterUsage::kLevel, + /* matcher indices */ &kMatcherIndices[31], }, { /* [597] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[10], }, { /* [598] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [599] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[35], + /* matcher indices */ &kMatcherIndices[72], }, { /* [600] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[35], + /* matcher indices */ &kMatcherIndices[10], }, { /* [601] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[129], + /* matcher indices */ &kMatcherIndices[33], }, { /* [602] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[129], + /* matcher indices */ &kMatcherIndices[33], }, { /* [603] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[115], + /* matcher indices */ &kMatcherIndices[1], }, { /* [604] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[115], + /* matcher indices */ &kMatcherIndices[1], }, { /* [605] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[113], + /* matcher indices */ &kMatcherIndices[18], }, { /* [606] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[113], + /* matcher indices */ &kMatcherIndices[22], }, { /* [607] */ - /* usage */ ParameterUsage::kX, + /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[1], }, { /* [608] */ - /* usage */ ParameterUsage::kZyw, - /* matcher indices */ &kMatcherIndices[115], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[31], }, { /* [609] */ - /* usage */ ParameterUsage::kXyz, - /* matcher indices */ &kMatcherIndices[115], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[239], }, { /* [610] */ - /* usage */ ParameterUsage::kW, - /* matcher indices */ &kMatcherIndices[1], + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[131], }, { /* [611] */ - /* usage */ ParameterUsage::kXy, - /* matcher indices */ &kMatcherIndices[113], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[0], }, { /* [612] */ - /* usage */ ParameterUsage::kZw, - /* matcher indices */ &kMatcherIndices[113], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[1], }, { /* [613] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[0], }, { /* [614] */ @@ -6035,57 +6035,57 @@ constexpr ParameterInfo kParameters[] = { { /* [615] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[0], }, { /* [616] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[1], }, { /* [617] */ - /* usage */ ParameterUsage::kX, - /* matcher indices */ &kMatcherIndices[1], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[0], }, { /* [618] */ - /* usage */ ParameterUsage::kYz, - /* matcher indices */ &kMatcherIndices[113], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[1], }, { /* [619] */ - /* usage */ ParameterUsage::kXy, - /* matcher indices */ &kMatcherIndices[113], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[33], }, { /* [620] */ - /* usage */ ParameterUsage::kZ, - /* matcher indices */ &kMatcherIndices[1], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[33], }, { /* [621] */ - /* usage */ ParameterUsage::kX, - /* matcher indices */ &kMatcherIndices[1], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[33], }, { /* [622] */ - /* usage */ ParameterUsage::kY, + /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[1], }, { /* [623] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[141], + /* matcher indices */ &kMatcherIndices[139], }, { /* [624] */ /* usage */ ParameterUsage::kLevel, - /* matcher indices */ &kMatcherIndices[34], + /* matcher indices */ &kMatcherIndices[31], }, { /* [625] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [626] */ @@ -6095,42 +6095,42 @@ constexpr ParameterInfo kParameters[] = { { /* [627] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[143], + /* matcher indices */ &kMatcherIndices[141], }, { /* [628] */ /* usage */ ParameterUsage::kLevel, - /* matcher indices */ &kMatcherIndices[34], + /* matcher indices */ &kMatcherIndices[31], }, { /* [629] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[0], }, { /* [630] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[35], + /* matcher indices */ &kMatcherIndices[1], }, { /* [631] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[145], + /* matcher indices */ &kMatcherIndices[143], }, { /* [632] */ /* usage */ ParameterUsage::kLevel, - /* matcher indices */ &kMatcherIndices[34], + /* matcher indices */ &kMatcherIndices[31], }, { /* [633] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[0], }, { /* [634] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[96], + /* matcher indices */ &kMatcherIndices[1], }, { /* [635] */ @@ -6140,47 +6140,47 @@ constexpr ParameterInfo kParameters[] = { { /* [636] */ /* usage */ ParameterUsage::kLevel, - /* matcher indices */ &kMatcherIndices[34], + /* matcher indices */ &kMatcherIndices[31], }, { /* [637] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[0], }, { /* [638] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[67], + /* matcher indices */ &kMatcherIndices[1], }, { /* [639] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[151], + /* matcher indices */ &kMatcherIndices[149], }, { /* [640] */ /* usage */ ParameterUsage::kLevel, - /* matcher indices */ &kMatcherIndices[34], + /* matcher indices */ &kMatcherIndices[31], }, { /* [641] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[0], }, { /* [642] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[93], + /* matcher indices */ &kMatcherIndices[1], }, { /* [643] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[153], + /* matcher indices */ &kMatcherIndices[151], }, { /* [644] */ /* usage */ ParameterUsage::kLevel, - /* matcher indices */ &kMatcherIndices[34], + /* matcher indices */ &kMatcherIndices[31], }, { /* [645] */ @@ -6190,37 +6190,37 @@ constexpr ParameterInfo kParameters[] = { { /* [646] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[35], + /* matcher indices */ &kMatcherIndices[33], }, { /* [647] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[1], }, { /* [648] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[1], }, { /* [649] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[238], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[1], }, { /* [650] */ - /* usage */ ParameterUsage::kLevel, - /* matcher indices */ &kMatcherIndices[34], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[1], }, { /* [651] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[33], }, { /* [652] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[33], }, { /* [653] */ @@ -6230,17 +6230,17 @@ constexpr ParameterInfo kParameters[] = { { /* [654] */ /* usage */ ParameterUsage::kLevel, - /* matcher indices */ &kMatcherIndices[34], + /* matcher indices */ &kMatcherIndices[31], }, { /* [655] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [656] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[1], }, { /* [657] */ @@ -6250,12 +6250,12 @@ constexpr ParameterInfo kParameters[] = { { /* [658] */ /* usage */ ParameterUsage::kLevel, - /* matcher indices */ &kMatcherIndices[34], + /* matcher indices */ &kMatcherIndices[31], }, { /* [659] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[0], }, { /* [660] */ @@ -6270,37 +6270,37 @@ constexpr ParameterInfo kParameters[] = { { /* [662] */ /* usage */ ParameterUsage::kLevel, - /* matcher indices */ &kMatcherIndices[34], + /* matcher indices */ &kMatcherIndices[31], }, { /* [663] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[1], }, { /* [664] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [665] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[33], }, { /* [666] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[33], }, { /* [667] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[20], }, { /* [668] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[20], }, { /* [669] */ @@ -6315,22 +6315,22 @@ constexpr ParameterInfo kParameters[] = { { /* [671] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[33], }, { /* [672] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[33], }, { /* [673] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[42], }, { /* [674] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[42], }, { /* [675] */ @@ -6345,12 +6345,12 @@ constexpr ParameterInfo kParameters[] = { { /* [677] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[20], + /* matcher indices */ &kMatcherIndices[33], }, { /* [678] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[20], + /* matcher indices */ &kMatcherIndices[33], }, { /* [679] */ @@ -6365,12 +6365,12 @@ constexpr ParameterInfo kParameters[] = { { /* [681] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[42], }, { /* [682] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[42], }, { /* [683] */ @@ -6385,52 +6385,52 @@ constexpr ParameterInfo kParameters[] = { { /* [685] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [686] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[1], }, { /* [687] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[238], }, { /* [688] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* usage */ ParameterUsage::kLevel, + /* matcher indices */ &kMatcherIndices[31], }, { /* [689] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[39], + /* matcher indices */ &kMatcherIndices[33], }, { /* [690] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[39], + /* matcher indices */ &kMatcherIndices[33], }, { /* [691] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[20], + /* matcher indices */ &kMatcherIndices[1], }, { /* [692] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[20], + /* matcher indices */ &kMatcherIndices[1], }, { /* [693] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [694] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [695] */ @@ -6440,17 +6440,17 @@ constexpr ParameterInfo kParameters[] = { { /* [696] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[33], }, { /* [697] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[39], + /* matcher indices */ &kMatcherIndices[20], }, { /* [698] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[39], + /* matcher indices */ &kMatcherIndices[20], }, { /* [699] */ @@ -6465,12 +6465,12 @@ constexpr ParameterInfo kParameters[] = { { /* [701] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[10], }, { /* [702] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[10], }, { /* [703] */ @@ -6485,17 +6485,17 @@ constexpr ParameterInfo kParameters[] = { { /* [705] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[33], }, { /* [706] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [707] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[1], }, { /* [708] */ @@ -6505,12 +6505,12 @@ constexpr ParameterInfo kParameters[] = { { /* [709] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [710] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [711] */ @@ -6530,177 +6530,177 @@ constexpr ParameterInfo kParameters[] = { { /* [714] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[1], }, { /* [715] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [716] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[33], }, { /* [717] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[1], }, { /* [718] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[1], }, { /* [719] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[33], }, { /* [720] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[33], }, { /* [721] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[18], + /* matcher indices */ &kMatcherIndices[1], }, { /* [722] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[22], + /* matcher indices */ &kMatcherIndices[1], }, { /* [723] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[69], + /* matcher indices */ &kMatcherIndices[33], }, { /* [724] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[10], + /* matcher indices */ &kMatcherIndices[33], }, { /* [725] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[10], + /* matcher indices */ &kMatcherIndices[1], }, { /* [726] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[32], }, { /* [727] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[10], + /* matcher indices */ &kMatcherIndices[32], }, { /* [728] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[32], }, { /* [729] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[32], }, { /* [730] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[10], + /* matcher indices */ &kMatcherIndices[32], }, { /* [731] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[33], }, { /* [732] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [733] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [734] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[33], }, { /* [735] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[1], }, { /* [736] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[1], }, { /* [737] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[33], }, { /* [738] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[96], }, { /* [739] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[10], + /* matcher indices */ &kMatcherIndices[1], }, { /* [740] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[10], + /* matcher indices */ &kMatcherIndices[67], }, { /* [741] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[33], }, { /* [742] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[99], }, { /* [743] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[107], }, { /* [744] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[107], }, { /* [745] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[1], }, { /* [746] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[1], }, { /* [747] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [748] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [749] */ @@ -6710,32 +6710,32 @@ constexpr ParameterInfo kParameters[] = { { /* [750] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[32], }, { /* [751] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[10], + /* matcher indices */ &kMatcherIndices[33], }, { /* [752] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[10], + /* matcher indices */ &kMatcherIndices[96], }, { /* [753] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* usage */ ParameterUsage::kX, + /* matcher indices */ &kMatcherIndices[1], }, { /* [754] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* usage */ ParameterUsage::kY, + /* matcher indices */ &kMatcherIndices[1], }, { /* [755] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[33], }, { /* [756] */ @@ -6750,27 +6750,27 @@ constexpr ParameterInfo kParameters[] = { { /* [758] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [759] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[10], }, { /* [760] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[10], }, { /* [761] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* usage */ ParameterUsage::kXy, + /* matcher indices */ &kMatcherIndices[113], }, { /* [762] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* usage */ ParameterUsage::kZ, + /* matcher indices */ &kMatcherIndices[1], }, { /* [763] */ @@ -6784,28 +6784,28 @@ constexpr ParameterInfo kParameters[] = { }, { /* [765] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[0], + /* usage */ ParameterUsage::kX, + /* matcher indices */ &kMatcherIndices[1], }, { /* [766] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* usage */ ParameterUsage::kYz, + /* matcher indices */ &kMatcherIndices[113], }, { /* [767] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[0], + /* matcher indices */ &kMatcherIndices[33], }, { /* [768] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[33], }, { /* [769] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[0], + /* matcher indices */ &kMatcherIndices[1], }, { /* [770] */ @@ -6815,57 +6815,57 @@ constexpr ParameterInfo kParameters[] = { { /* [771] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[0], + /* matcher indices */ &kMatcherIndices[33], }, { /* [772] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[33], }, { /* [773] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[1], }, { /* [774] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[1], }, { /* [775] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[33], }, { /* [776] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[33], }, { /* [777] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [778] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[1], }, { /* [779] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[33], }, { /* [780] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[33], }, { /* [781] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[0], + /* matcher indices */ &kMatcherIndices[1], }, { /* [782] */ @@ -6874,88 +6874,88 @@ constexpr ParameterInfo kParameters[] = { }, { /* [783] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[0], + /* usage */ ParameterUsage::kXy, + /* matcher indices */ &kMatcherIndices[113], }, { /* [784] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* usage */ ParameterUsage::kZw, + /* matcher indices */ &kMatcherIndices[113], }, { /* [785] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[0], + /* usage */ ParameterUsage::kXyz, + /* matcher indices */ &kMatcherIndices[107], }, { /* [786] */ - /* usage */ ParameterUsage::kNone, + /* usage */ ParameterUsage::kW, /* matcher indices */ &kMatcherIndices[1], }, { /* [787] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[0], + /* usage */ ParameterUsage::kX, + /* matcher indices */ &kMatcherIndices[1], }, { /* [788] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* usage */ ParameterUsage::kZyw, + /* matcher indices */ &kMatcherIndices[107], }, { /* [789] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[0], + /* matcher indices */ &kMatcherIndices[33], }, { /* [790] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[33], }, { /* [791] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[239], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[113], }, { /* [792] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[105], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[113], }, { /* [793] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[107], }, { /* [794] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[90], + /* matcher indices */ &kMatcherIndices[107], }, { /* [795] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[127], }, { /* [796] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[34], + /* matcher indices */ &kMatcherIndices[127], }, { /* [797] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[115], + /* matcher indices */ &kMatcherIndices[1], }, { /* [798] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[115], + /* matcher indices */ &kMatcherIndices[10], }, { /* [799] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[10], }, { /* [800] */ @@ -6965,227 +6965,227 @@ constexpr ParameterInfo kParameters[] = { { /* [801] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[1], }, { /* [802] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [803] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [804] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [805] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[35], + /* matcher indices */ &kMatcherIndices[1], }, { /* [806] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[35], + /* matcher indices */ &kMatcherIndices[1], }, { /* [807] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[39], - }, - { - /* [808] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[240], }, + { + /* [808] */ + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[235], + }, { /* [809] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[4], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[236], }, { /* [810] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[237], }, { /* [811] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[238], }, { /* [812] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[151], }, { /* [813] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[149], }, { /* [814] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[147], }, { /* [815] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[143], }, { /* [816] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[141], }, { /* [817] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[139], }, { /* [818] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[48], }, { /* [819] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[235], }, { /* [820] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[237], }, { /* [821] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[151], }, { /* [822] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[143], }, { /* [823] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[239], }, { /* [824] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[60], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[84], }, { /* [825] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[4], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[48], }, { /* [826] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[60], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[87], }, { /* [827] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[4], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[90], }, { /* [828] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[60], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[240], }, { /* [829] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[4], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[236], }, { /* [830] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[60], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[237], }, { /* [831] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[4], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[238], }, { /* [832] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[60], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[155], }, { /* [833] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[4], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[151], }, { /* [834] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[60], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[149], }, { /* [835] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[4], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[147], }, { /* [836] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[4], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[143], }, { /* [837] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[60], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[141], }, { /* [838] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[4], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[139], }, { /* [839] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[60], + /* matcher indices */ &kMatcherIndices[32], }, { /* [840] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[32], }, { /* [841] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[14], + /* matcher indices */ &kMatcherIndices[32], }, { /* [842] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[32], }, { /* [843] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[32], }, { /* [844] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [845] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[235], }, { /* [846] */ @@ -7195,37 +7195,37 @@ constexpr ParameterInfo kParameters[] = { { /* [847] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[10], }, { /* [848] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[33], }, { /* [849] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[1], }, { /* [850] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[33], }, { /* [851] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[1], }, { /* [852] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[229], }, { /* [853] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [854] */ @@ -7235,7 +7235,7 @@ constexpr ParameterInfo kParameters[] = { { /* [855] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [856] */ @@ -7250,7 +7250,7 @@ constexpr ParameterInfo kParameters[] = { { /* [858] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [859] */ @@ -7260,7 +7260,7 @@ constexpr ParameterInfo kParameters[] = { { /* [860] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [861] */ @@ -7270,7 +7270,7 @@ constexpr ParameterInfo kParameters[] = { { /* [862] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [863] */ @@ -7280,17 +7280,17 @@ constexpr ParameterInfo kParameters[] = { { /* [864] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [865] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[1], }, { /* [866] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[137], + /* matcher indices */ &kMatcherIndices[33], }, { /* [867] */ @@ -7305,7 +7305,7 @@ constexpr ParameterInfo kParameters[] = { { /* [869] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[42], }, { /* [870] */ @@ -7315,7 +7315,7 @@ constexpr ParameterInfo kParameters[] = { { /* [871] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [872] */ @@ -7325,142 +7325,142 @@ constexpr ParameterInfo kParameters[] = { { /* [873] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [874] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[137], + /* matcher indices */ &kMatcherIndices[1], }, { /* [875] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[137], + /* matcher indices */ &kMatcherIndices[33], }, { /* [876] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[135], + /* matcher indices */ &kMatcherIndices[1], }, { /* [877] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[135], + /* matcher indices */ &kMatcherIndices[105], }, { /* [878] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[105], }, { /* [879] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[135], }, { /* [880] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[135], }, { /* [881] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[240], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[135], }, { /* [882] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[155], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[33], }, { /* [883] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[235], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[33], }, { /* [884] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[236], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[1], }, { /* [885] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[237], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[33], }, { /* [886] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[238], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[1], }, { /* [887] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[153], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[33], }, { /* [888] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[151], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[1], }, { /* [889] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[147], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[33], }, { /* [890] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[145], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[1], }, { /* [891] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[143], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[33], }, { /* [892] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[141], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[1], }, { /* [893] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[48], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[63], }, { /* [894] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[235], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[4], }, { /* [895] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[237], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[63], }, { /* [896] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[153], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[4], }, { /* [897] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[145], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[63], }, { /* [898] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[4], }, { /* [899] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[33], }, { /* [900] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[1], }, { /* [901] */ @@ -7470,7 +7470,7 @@ constexpr ParameterInfo kParameters[] = { { /* [902] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [903] */ @@ -7480,7 +7480,7 @@ constexpr ParameterInfo kParameters[] = { { /* [904] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [905] */ @@ -7490,7 +7490,7 @@ constexpr ParameterInfo kParameters[] = { { /* [906] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [907] */ @@ -7500,7 +7500,7 @@ constexpr ParameterInfo kParameters[] = { { /* [908] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [909] */ @@ -7510,117 +7510,117 @@ constexpr ParameterInfo kParameters[] = { { /* [910] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [911] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[231], + /* matcher indices */ &kMatcherIndices[1], }, { /* [912] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[33], }, { /* [913] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[63], }, { /* [914] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[239], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[4], }, { /* [915] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[81], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[63], }, { /* [916] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[4], }, { /* [917] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[48], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[63], }, { /* [918] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[84], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[231], }, { /* [919] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[87], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[4], }, { /* [920] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[60], + /* matcher indices */ &kMatcherIndices[63], }, { /* [921] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[235], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[4], }, { /* [922] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[236], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[63], }, { /* [923] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[237], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[4], }, { /* [924] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[238], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[63], }, { /* [925] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[155], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[4], }, { /* [926] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[153], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[14], }, { /* [927] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[151], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[33], }, { /* [928] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[147], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[1], }, { /* [929] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[145], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[33], }, { /* [930] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[143], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[1], }, { /* [931] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[229], + /* matcher indices */ &kMatcherIndices[33], }, { /* [932] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[34], + /* matcher indices */ &kMatcherIndices[31], }, { /* [933] */ @@ -7630,12 +7630,12 @@ constexpr ParameterInfo kParameters[] = { { /* [934] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[227], }, { /* [935] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[35], + /* matcher indices */ &kMatcherIndices[32], }, { /* [936] */ @@ -7645,7 +7645,7 @@ constexpr ParameterInfo kParameters[] = { { /* [937] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[219], }, { /* [938] */ @@ -7660,12 +7660,12 @@ constexpr ParameterInfo kParameters[] = { { /* [940] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[227], + /* matcher indices */ &kMatcherIndices[217], }, { /* [941] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[118], + /* matcher indices */ &kMatcherIndices[116], }, { /* [942] */ @@ -7675,7 +7675,7 @@ constexpr ParameterInfo kParameters[] = { { /* [943] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[221], + /* matcher indices */ &kMatcherIndices[1], }, { /* [944] */ @@ -7690,7 +7690,7 @@ constexpr ParameterInfo kParameters[] = { { /* [946] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[219], + /* matcher indices */ &kMatcherIndices[33], }, { /* [947] */ @@ -7704,63 +7704,63 @@ constexpr ParameterInfo kParameters[] = { }, { /* [949] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[141], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[1], }, { /* [950] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[125], + /* matcher indices */ &kMatcherIndices[123], }, { /* [951] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[125], + /* matcher indices */ &kMatcherIndices[123], }, { /* [952] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[125], + /* matcher indices */ &kMatcherIndices[123], }, { /* [953] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[125], + /* matcher indices */ &kMatcherIndices[123], }, { /* [954] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[125], + /* matcher indices */ &kMatcherIndices[123], }, { /* [955] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[207], }, { /* [956] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[115], + /* matcher indices */ &kMatcherIndices[107], }, { /* [957] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[33], }, { /* [958] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[1], }, { /* [959] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[33], }, { /* [960] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[35], + /* matcher indices */ &kMatcherIndices[1], }, { /* [961] */ @@ -7790,12 +7790,12 @@ constexpr ParameterInfo kParameters[] = { { /* [966] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[207], + /* matcher indices */ &kMatcherIndices[205], }, { /* [967] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[129], + /* matcher indices */ &kMatcherIndices[127], }, { /* [968] */ @@ -7805,77 +7805,77 @@ constexpr ParameterInfo kParameters[] = { { /* [969] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[33], }, { /* [970] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[35], + /* matcher indices */ &kMatcherIndices[1], }, { /* [971] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[35], + /* matcher indices */ &kMatcherIndices[33], }, { /* [972] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[1], }, { /* [973] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[35], + /* matcher indices */ &kMatcherIndices[33], }, { /* [974] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[35], + /* matcher indices */ &kMatcherIndices[1], }, { /* [975] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [976] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[149], + /* matcher indices */ &kMatcherIndices[1], }, { /* [977] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[149], + /* matcher indices */ &kMatcherIndices[145], }, { /* [978] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[149], + /* matcher indices */ &kMatcherIndices[145], }, { /* [979] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[149], + /* matcher indices */ &kMatcherIndices[145], }, { /* [980] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[149], + /* matcher indices */ &kMatcherIndices[145], }, { /* [981] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[205], + /* matcher indices */ &kMatcherIndices[203], }, { /* [982] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[165], + /* matcher indices */ &kMatcherIndices[163], }, { /* [983] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[33], }, { /* [984] */ @@ -7885,37 +7885,37 @@ constexpr ParameterInfo kParameters[] = { { /* [985] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[167], + /* matcher indices */ &kMatcherIndices[165], }, { /* [986] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[169], + /* matcher indices */ &kMatcherIndices[167], }, { /* [987] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[203], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[155], }, { /* [988] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[171], + /* matcher indices */ &kMatcherIndices[169], }, { /* [989] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[42], }, { /* [990] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[10], + /* matcher indices */ &kMatcherIndices[20], }, { /* [991] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[173], + /* matcher indices */ &kMatcherIndices[171], }, { /* [992] */ @@ -7925,117 +7925,117 @@ constexpr ParameterInfo kParameters[] = { { /* [993] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[42], }, { /* [994] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[179], + /* matcher indices */ &kMatcherIndices[177], }, { /* [995] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[20], }, { /* [996] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[33], }, { /* [997] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[181], + /* matcher indices */ &kMatcherIndices[179], }, { /* [998] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[183], + /* matcher indices */ &kMatcherIndices[181], }, { /* [999] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[20], + /* matcher indices */ &kMatcherIndices[201], }, { /* [1000] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[185], + /* matcher indices */ &kMatcherIndices[183], }, { /* [1001] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[1], }, { /* [1002] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[33], }, { /* [1003] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[187], + /* matcher indices */ &kMatcherIndices[185], }, { /* [1004] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[189], + /* matcher indices */ &kMatcherIndices[187], }, { /* [1005] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[107], + /* matcher indices */ &kMatcherIndices[199], }, { /* [1006] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[191], + /* matcher indices */ &kMatcherIndices[189], }, { /* [1007] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[5], + /* matcher indices */ &kMatcherIndices[1], }, { /* [1008] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[39], + /* matcher indices */ &kMatcherIndices[33], }, { /* [1009] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[193], + /* matcher indices */ &kMatcherIndices[191], }, { /* [1010] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[195], + /* matcher indices */ &kMatcherIndices[193], }, { /* [1011] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[201], + /* matcher indices */ &kMatcherIndices[197], }, { /* [1012] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[197], + /* matcher indices */ &kMatcherIndices[195], }, { /* [1013] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[20], + /* matcher indices */ &kMatcherIndices[5], }, { /* [1014] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[39], + /* matcher indices */ &kMatcherIndices[1], }, { /* [1015] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[199], + /* matcher indices */ &kMatcherIndices[145], }, }; @@ -8043,32 +8043,32 @@ constexpr TemplateTypeInfo kTemplateTypes[] = { { /* [0] */ /* name */ "T", - /* matcher index */ 7, + /* matcher index */ 2, }, { /* [1] */ /* name */ "U", - /* matcher index */ 52, + /* matcher index */ 56, }, { /* [2] */ /* name */ "T", - /* matcher index */ 2, + /* matcher index */ 7, }, { /* [3] */ /* name */ "U", - /* matcher index */ 56, + /* matcher index */ 52, }, { /* [4] */ /* name */ "T", - /* matcher index */ 6, + /* matcher index */ 8, }, { /* [5] */ /* name */ "U", - /* matcher index */ 55, + /* matcher index */ 53, }, { /* [6] */ @@ -8083,22 +8083,22 @@ constexpr TemplateTypeInfo kTemplateTypes[] = { { /* [8] */ /* name */ "T", - /* matcher index */ 8, + /* matcher index */ 6, }, { /* [9] */ /* name */ "U", - /* matcher index */ 53, + /* matcher index */ 55, }, { /* [10] */ /* name */ "T", - /* matcher index */ 50, + /* matcher index */ 62, }, { /* [11] */ /* name */ "T", - /* matcher index */ 57, + /* matcher index */ 67, }, { /* [12] */ @@ -8108,7 +8108,7 @@ constexpr TemplateTypeInfo kTemplateTypes[] = { { /* [13] */ /* name */ "T", - /* matcher index */ 67, + /* matcher index */ 57, }, { /* [14] */ @@ -8123,7 +8123,7 @@ constexpr TemplateTypeInfo kTemplateTypes[] = { { /* [16] */ /* name */ "T", - /* matcher index */ 51, + /* matcher index */ 50, }, { /* [17] */ @@ -8133,42 +8133,42 @@ constexpr TemplateTypeInfo kTemplateTypes[] = { { /* [18] */ /* name */ "T", - /* matcher index */ kNoMatcher, + /* matcher index */ 51, }, { /* [19] */ /* name */ "T", - /* matcher index */ 56, + /* matcher index */ kNoMatcher, }, { /* [20] */ /* name */ "T", - /* matcher index */ 53, + /* matcher index */ 56, }, { /* [21] */ /* name */ "T", - /* matcher index */ 52, + /* matcher index */ 53, }, { /* [22] */ /* name */ "T", - /* matcher index */ 55, + /* matcher index */ 52, }, { /* [23] */ /* name */ "T", - /* matcher index */ 54, + /* matcher index */ 55, }, { /* [24] */ /* name */ "T", - /* matcher index */ 3, + /* matcher index */ 54, }, { /* [25] */ /* name */ "T", - /* matcher index */ 62, + /* matcher index */ 3, }, { /* [26] */ @@ -8205,19 +8205,19 @@ constexpr TemplateNumberInfo kTemplateNumbers[] = { }, { /* [5] */ - /* name */ "N", - /* matcher index */ kNoMatcher, - }, - { - /* [6] */ /* name */ "M", /* matcher index */ kNoMatcher, }, { - /* [7] */ + /* [6] */ /* name */ "N", /* matcher index */ kNoMatcher, }, + { + /* [7] */ + /* name */ "M", + /* matcher index */ kNoMatcher, + }, { /* [8] */ /* name */ "A", @@ -8238,8 +8238,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[17], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[949], - /* return matcher indices */ &kMatcherIndices[34], + /* parameters */ &kParameters[838], + /* return matcher indices */ &kMatcherIndices[31], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -8251,7 +8251,7 @@ constexpr OverloadInfo kOverloads[] = { /* template types */ &kTemplateTypes[17], /* template numbers */ &kTemplateNumbers[10], /* parameters */ &kParameters[623], - /* return matcher indices */ &kMatcherIndices[34], + /* return matcher indices */ &kMatcherIndices[31], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -8262,8 +8262,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[17], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[930], - /* return matcher indices */ &kMatcherIndices[105], + /* parameters */ &kParameters[837], + /* return matcher indices */ &kMatcherIndices[131], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -8275,7 +8275,7 @@ constexpr OverloadInfo kOverloads[] = { /* template types */ &kTemplateTypes[17], /* template numbers */ &kTemplateNumbers[10], /* parameters */ &kParameters[627], - /* return matcher indices */ &kMatcherIndices[105], + /* return matcher indices */ &kMatcherIndices[131], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -8286,8 +8286,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[17], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[929], - /* return matcher indices */ &kMatcherIndices[105], + /* parameters */ &kParameters[836], + /* return matcher indices */ &kMatcherIndices[131], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -8299,7 +8299,7 @@ constexpr OverloadInfo kOverloads[] = { /* template types */ &kTemplateTypes[17], /* template numbers */ &kTemplateNumbers[10], /* parameters */ &kParameters[631], - /* return matcher indices */ &kMatcherIndices[105], + /* return matcher indices */ &kMatcherIndices[131], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -8310,8 +8310,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[17], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[928], - /* return matcher indices */ &kMatcherIndices[119], + /* parameters */ &kParameters[835], + /* return matcher indices */ &kMatcherIndices[117], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -8323,7 +8323,7 @@ constexpr OverloadInfo kOverloads[] = { /* template types */ &kTemplateTypes[17], /* template numbers */ &kTemplateNumbers[10], /* parameters */ &kParameters[635], - /* return matcher indices */ &kMatcherIndices[119], + /* return matcher indices */ &kMatcherIndices[117], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -8334,8 +8334,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[17], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[927], - /* return matcher indices */ &kMatcherIndices[105], + /* parameters */ &kParameters[834], + /* return matcher indices */ &kMatcherIndices[131], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -8347,7 +8347,7 @@ constexpr OverloadInfo kOverloads[] = { /* template types */ &kTemplateTypes[17], /* template numbers */ &kTemplateNumbers[10], /* parameters */ &kParameters[639], - /* return matcher indices */ &kMatcherIndices[105], + /* return matcher indices */ &kMatcherIndices[131], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -8358,8 +8358,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[17], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[926], - /* return matcher indices */ &kMatcherIndices[105], + /* parameters */ &kParameters[833], + /* return matcher indices */ &kMatcherIndices[131], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -8371,7 +8371,7 @@ constexpr OverloadInfo kOverloads[] = { /* template types */ &kTemplateTypes[17], /* template numbers */ &kTemplateNumbers[10], /* parameters */ &kParameters[643], - /* return matcher indices */ &kMatcherIndices[105], + /* return matcher indices */ &kMatcherIndices[131], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -8382,8 +8382,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[17], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[925], - /* return matcher indices */ &kMatcherIndices[105], + /* parameters */ &kParameters[832], + /* return matcher indices */ &kMatcherIndices[131], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -8394,8 +8394,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[924], - /* return matcher indices */ &kMatcherIndices[105], + /* parameters */ &kParameters[831], + /* return matcher indices */ &kMatcherIndices[131], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -8406,8 +8406,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[649], - /* return matcher indices */ &kMatcherIndices[105], + /* parameters */ &kParameters[687], + /* return matcher indices */ &kMatcherIndices[131], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -8418,8 +8418,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[923], - /* return matcher indices */ &kMatcherIndices[105], + /* parameters */ &kParameters[830], + /* return matcher indices */ &kMatcherIndices[131], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -8431,7 +8431,7 @@ constexpr OverloadInfo kOverloads[] = { /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], /* parameters */ &kParameters[653], - /* return matcher indices */ &kMatcherIndices[105], + /* return matcher indices */ &kMatcherIndices[131], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -8442,8 +8442,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[922], - /* return matcher indices */ &kMatcherIndices[105], + /* parameters */ &kParameters[829], + /* return matcher indices */ &kMatcherIndices[131], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -8455,7 +8455,7 @@ constexpr OverloadInfo kOverloads[] = { /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], /* parameters */ &kParameters[657], - /* return matcher indices */ &kMatcherIndices[105], + /* return matcher indices */ &kMatcherIndices[131], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -8466,8 +8466,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[921], - /* return matcher indices */ &kMatcherIndices[105], + /* parameters */ &kParameters[845], + /* return matcher indices */ &kMatcherIndices[131], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -8479,7 +8479,7 @@ constexpr OverloadInfo kOverloads[] = { /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], /* parameters */ &kParameters[661], - /* return matcher indices */ &kMatcherIndices[105], + /* return matcher indices */ &kMatcherIndices[131], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -8490,8 +8490,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[808], - /* return matcher indices */ &kMatcherIndices[105], + /* parameters */ &kParameters[828], + /* return matcher indices */ &kMatcherIndices[131], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -8502,8 +8502,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 2, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[3], - /* parameters */ &kParameters[919], - /* return matcher indices */ &kMatcherIndices[34], + /* parameters */ &kParameters[827], + /* return matcher indices */ &kMatcherIndices[31], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -8514,8 +8514,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 2, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[3], - /* parameters */ &kParameters[918], - /* return matcher indices */ &kMatcherIndices[105], + /* parameters */ &kParameters[826], + /* return matcher indices */ &kMatcherIndices[131], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -8526,8 +8526,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 2, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[3], - /* parameters */ &kParameters[917], - /* return matcher indices */ &kMatcherIndices[105], + /* parameters */ &kParameters[825], + /* return matcher indices */ &kMatcherIndices[131], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -8538,8 +8538,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 2, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[3], - /* parameters */ &kParameters[915], - /* return matcher indices */ &kMatcherIndices[119], + /* parameters */ &kParameters[824], + /* return matcher indices */ &kMatcherIndices[117], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -8550,8 +8550,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[914], - /* return matcher indices */ &kMatcherIndices[105], + /* parameters */ &kParameters[823], + /* return matcher indices */ &kMatcherIndices[131], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -8562,8 +8562,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[528], - /* return matcher indices */ &kMatcherIndices[135], + /* parameters */ &kParameters[501], + /* return matcher indices */ &kMatcherIndices[105], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), /* const eval */ nullptr, }, @@ -8574,8 +8574,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[450], - /* return matcher indices */ &kMatcherIndices[135], + /* parameters */ &kParameters[498], + /* return matcher indices */ &kMatcherIndices[105], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), /* const eval */ nullptr, }, @@ -8586,8 +8586,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[363], - /* return matcher indices */ &kMatcherIndices[135], + /* parameters */ &kParameters[307], + /* return matcher indices */ &kMatcherIndices[105], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), /* const eval */ nullptr, }, @@ -8598,8 +8598,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[371], - /* return matcher indices */ &kMatcherIndices[135], + /* parameters */ &kParameters[295], + /* return matcher indices */ &kMatcherIndices[105], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), /* const eval */ nullptr, }, @@ -8610,8 +8610,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[150], - /* return matcher indices */ &kMatcherIndices[135], + /* parameters */ &kParameters[195], + /* return matcher indices */ &kMatcherIndices[105], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), /* const eval */ nullptr, }, @@ -8622,8 +8622,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[510], - /* return matcher indices */ &kMatcherIndices[135], + /* parameters */ &kParameters[495], + /* return matcher indices */ &kMatcherIndices[105], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), /* const eval */ nullptr, }, @@ -8634,8 +8634,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[375], - /* return matcher indices */ &kMatcherIndices[135], + /* parameters */ &kParameters[319], + /* return matcher indices */ &kMatcherIndices[105], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), /* const eval */ nullptr, }, @@ -8646,8 +8646,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[504], - /* return matcher indices */ &kMatcherIndices[135], + /* parameters */ &kParameters[489], + /* return matcher indices */ &kMatcherIndices[105], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), /* const eval */ nullptr, }, @@ -8658,8 +8658,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[379], - /* return matcher indices */ &kMatcherIndices[135], + /* parameters */ &kParameters[323], + /* return matcher indices */ &kMatcherIndices[105], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), /* const eval */ nullptr, }, @@ -8670,59 +8670,59 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[498], - /* return matcher indices */ &kMatcherIndices[4], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), - /* const eval */ nullptr, - }, - { - /* [37] */ - /* num parameters */ 4, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[383], - /* return matcher indices */ &kMatcherIndices[4], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), - /* const eval */ nullptr, - }, - { - /* [38] */ - /* num parameters */ 4, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[295], - /* return matcher indices */ &kMatcherIndices[4], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), - /* const eval */ nullptr, - }, - { - /* [39] */ - /* num parameters */ 5, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[185], - /* return matcher indices */ &kMatcherIndices[4], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), - /* const eval */ nullptr, - }, - { - /* [40] */ - /* num parameters */ 3, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], /* parameters */ &kParameters[486], /* return matcher indices */ &kMatcherIndices[4], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), /* const eval */ nullptr, }, + { + /* [37] */ + /* num parameters */ 4, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[335], + /* return matcher indices */ &kMatcherIndices[4], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), + /* const eval */ nullptr, + }, + { + /* [38] */ + /* num parameters */ 4, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[347], + /* return matcher indices */ &kMatcherIndices[4], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), + /* const eval */ nullptr, + }, + { + /* [39] */ + /* num parameters */ 5, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[165], + /* return matcher indices */ &kMatcherIndices[4], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), + /* const eval */ nullptr, + }, + { + /* [40] */ + /* num parameters */ 3, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[531], + /* return matcher indices */ &kMatcherIndices[4], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), + /* const eval */ nullptr, + }, { /* [41] */ /* num parameters */ 4, @@ -8730,349 +8730,169 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[363], + /* return matcher indices */ &kMatcherIndices[4], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), + /* const eval */ nullptr, + }, + { + /* [42] */ + /* num parameters */ 4, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[299], + /* return matcher indices */ &kMatcherIndices[105], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ nullptr, + }, + { + /* [43] */ + /* num parameters */ 5, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[290], + /* return matcher indices */ &kMatcherIndices[105], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ nullptr, + }, + { + /* [44] */ + /* num parameters */ 5, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[230], + /* return matcher indices */ &kMatcherIndices[105], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ nullptr, + }, + { + /* [45] */ + /* num parameters */ 6, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[102], + /* return matcher indices */ &kMatcherIndices[105], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ nullptr, + }, + { + /* [46] */ + /* num parameters */ 4, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[371], + /* return matcher indices */ &kMatcherIndices[105], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ nullptr, + }, + { + /* [47] */ + /* num parameters */ 5, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[170], + /* return matcher indices */ &kMatcherIndices[105], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ nullptr, + }, + { + /* [48] */ + /* num parameters */ 4, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[379], + /* return matcher indices */ &kMatcherIndices[105], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ nullptr, + }, + { + /* [49] */ + /* num parameters */ 5, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[205], + /* return matcher indices */ &kMatcherIndices[105], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ nullptr, + }, + { + /* [50] */ + /* num parameters */ 4, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[387], + /* return matcher indices */ &kMatcherIndices[4], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ nullptr, + }, + { + /* [51] */ + /* num parameters */ 5, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[215], + /* return matcher indices */ &kMatcherIndices[4], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ nullptr, + }, + { + /* [52] */ + /* num parameters */ 5, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[240], + /* return matcher indices */ &kMatcherIndices[4], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ nullptr, + }, + { + /* [53] */ + /* num parameters */ 6, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[96], + /* return matcher indices */ &kMatcherIndices[4], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ nullptr, + }, + { + /* [54] */ + /* num parameters */ 4, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], /* parameters */ &kParameters[403], /* return matcher indices */ &kMatcherIndices[4], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, - { - /* [42] */ - /* num parameters */ 0, - /* num template types */ 1, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[16], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[1016], - /* return matcher indices */ &kMatcherIndices[129], - /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::Zero, - }, - { - /* [43] */ - /* num parameters */ 1, - /* num template types */ 1, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[16], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[967], - /* return matcher indices */ &kMatcherIndices[129], - /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::Identity, - }, - { - /* [44] */ - /* num parameters */ 1, - /* num template types */ 1, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[10], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[968], - /* return matcher indices */ &kMatcherIndices[129], - /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::VecSplat, - }, - { - /* [45] */ - /* num parameters */ 4, - /* num template types */ 1, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[10], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[395], - /* return matcher indices */ &kMatcherIndices[129], - /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::VecCtorS, - }, - { - /* [46] */ - /* num parameters */ 3, - /* num template types */ 1, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[10], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[513], - /* return matcher indices */ &kMatcherIndices[129], - /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::VecCtorM, - }, - { - /* [47] */ - /* num parameters */ 3, - /* num template types */ 1, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[10], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[531], - /* return matcher indices */ &kMatcherIndices[129], - /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::VecCtorM, - }, - { - /* [48] */ - /* num parameters */ 3, - /* num template types */ 1, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[10], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[537], - /* return matcher indices */ &kMatcherIndices[129], - /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::VecCtorM, - }, - { - /* [49] */ - /* num parameters */ 2, - /* num template types */ 1, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[10], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[611], - /* return matcher indices */ &kMatcherIndices[129], - /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::VecCtorM, - }, - { - /* [50] */ - /* num parameters */ 2, - /* num template types */ 1, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[10], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[609], - /* return matcher indices */ &kMatcherIndices[129], - /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::VecCtorM, - }, - { - /* [51] */ - /* num parameters */ 2, - /* num template types */ 1, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[10], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[607], - /* return matcher indices */ &kMatcherIndices[129], - /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::VecCtorM, - }, - { - /* [52] */ - /* num parameters */ 1, - /* num template types */ 2, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[0], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[976], - /* return matcher indices */ &kMatcherIndices[135], - /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::Conv, - }, - { - /* [53] */ - /* num parameters */ 1, - /* num template types */ 2, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[8], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[977], - /* return matcher indices */ &kMatcherIndices[157], - /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::Conv, - }, - { - /* [54] */ - /* num parameters */ 1, - /* num template types */ 2, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[6], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[978], - /* return matcher indices */ &kMatcherIndices[159], - /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::Conv, - }, { /* [55] */ - /* num parameters */ 1, - /* num template types */ 2, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[4], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[979], - /* return matcher indices */ &kMatcherIndices[161], - /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::Conv, - }, - { - /* [56] */ - /* num parameters */ 1, - /* num template types */ 2, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[2], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[980], - /* return matcher indices */ &kMatcherIndices[163], - /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::Conv, - }, - { - /* [57] */ - /* num parameters */ 4, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[351], - /* return matcher indices */ &kMatcherIndices[135], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, - }, - { - /* [58] */ - /* num parameters */ 5, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[255], - /* return matcher indices */ &kMatcherIndices[135], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, - }, - { - /* [59] */ - /* num parameters */ 5, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[260], - /* return matcher indices */ &kMatcherIndices[135], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, - }, - { - /* [60] */ - /* num parameters */ 6, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[84], - /* return matcher indices */ &kMatcherIndices[135], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, - }, - { - /* [61] */ - /* num parameters */ 4, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[323], - /* return matcher indices */ &kMatcherIndices[135], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, - }, - { - /* [62] */ - /* num parameters */ 5, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[270], - /* return matcher indices */ &kMatcherIndices[135], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, - }, - { - /* [63] */ - /* num parameters */ 4, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[315], - /* return matcher indices */ &kMatcherIndices[135], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, - }, - { - /* [64] */ - /* num parameters */ 5, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[275], - /* return matcher indices */ &kMatcherIndices[135], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, - }, - { - /* [65] */ - /* num parameters */ 4, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[307], - /* return matcher indices */ &kMatcherIndices[4], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, - }, - { - /* [66] */ - /* num parameters */ 5, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[280], - /* return matcher indices */ &kMatcherIndices[4], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, - }, - { - /* [67] */ - /* num parameters */ 5, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[290], - /* return matcher indices */ &kMatcherIndices[4], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, - }, - { - /* [68] */ - /* num parameters */ 6, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[102], - /* return matcher indices */ &kMatcherIndices[4], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, - }, - { - /* [69] */ - /* num parameters */ 4, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[419], - /* return matcher indices */ &kMatcherIndices[4], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, - }, - { - /* [70] */ /* num parameters */ 5, /* num template types */ 0, /* num template numbers */ 0, @@ -9084,17 +8904,197 @@ constexpr OverloadInfo kOverloads[] = { /* const eval */ nullptr, }, { - /* [71] */ + /* [56] */ /* num parameters */ 3, /* num template types */ 0, /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[594], - /* return matcher indices */ &kMatcherIndices[135], + /* parameters */ &kParameters[534], + /* return matcher indices */ &kMatcherIndices[105], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kIsDeprecated), /* const eval */ nullptr, }, + { + /* [57] */ + /* num parameters */ 0, + /* num template types */ 1, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[18], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[1016], + /* return matcher indices */ &kMatcherIndices[127], + /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::Zero, + }, + { + /* [58] */ + /* num parameters */ 1, + /* num template types */ 1, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[18], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[967], + /* return matcher indices */ &kMatcherIndices[127], + /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::Identity, + }, + { + /* [59] */ + /* num parameters */ 1, + /* num template types */ 1, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[16], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[968], + /* return matcher indices */ &kMatcherIndices[127], + /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::VecSplat, + }, + { + /* [60] */ + /* num parameters */ 4, + /* num template types */ 1, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[16], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[355], + /* return matcher indices */ &kMatcherIndices[127], + /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::VecCtorS, + }, + { + /* [61] */ + /* num parameters */ 3, + /* num template types */ 1, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[16], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[465], + /* return matcher indices */ &kMatcherIndices[127], + /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::VecCtorM, + }, + { + /* [62] */ + /* num parameters */ 3, + /* num template types */ 1, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[16], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[462], + /* return matcher indices */ &kMatcherIndices[127], + /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::VecCtorM, + }, + { + /* [63] */ + /* num parameters */ 3, + /* num template types */ 1, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[16], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[459], + /* return matcher indices */ &kMatcherIndices[127], + /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::VecCtorM, + }, + { + /* [64] */ + /* num parameters */ 2, + /* num template types */ 1, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[16], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[783], + /* return matcher indices */ &kMatcherIndices[127], + /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::VecCtorM, + }, + { + /* [65] */ + /* num parameters */ 2, + /* num template types */ 1, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[16], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[785], + /* return matcher indices */ &kMatcherIndices[127], + /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::VecCtorM, + }, + { + /* [66] */ + /* num parameters */ 2, + /* num template types */ 1, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[16], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[787], + /* return matcher indices */ &kMatcherIndices[127], + /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::VecCtorM, + }, + { + /* [67] */ + /* num parameters */ 1, + /* num template types */ 2, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[2], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[1015], + /* return matcher indices */ &kMatcherIndices[105], + /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::Conv, + }, + { + /* [68] */ + /* num parameters */ 1, + /* num template types */ 2, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[4], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[977], + /* return matcher indices */ &kMatcherIndices[153], + /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::Conv, + }, + { + /* [69] */ + /* num parameters */ 1, + /* num template types */ 2, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[6], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[978], + /* return matcher indices */ &kMatcherIndices[157], + /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::Conv, + }, + { + /* [70] */ + /* num parameters */ 1, + /* num template types */ 2, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[8], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[979], + /* return matcher indices */ &kMatcherIndices[159], + /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::Conv, + }, + { + /* [71] */ + /* num parameters */ 1, + /* num template types */ 2, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[0], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[980], + /* return matcher indices */ &kMatcherIndices[161], + /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::Conv, + }, { /* [72] */ /* num parameters */ 3, @@ -9102,7 +9102,7 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[585], + /* parameters */ &kParameters[543], /* return matcher indices */ nullptr, /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, @@ -9114,7 +9114,7 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[570], + /* parameters */ &kParameters[546], /* return matcher indices */ nullptr, /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, @@ -9126,7 +9126,7 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[335], + /* parameters */ &kParameters[411], /* return matcher indices */ nullptr, /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, @@ -9138,7 +9138,7 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[540], + /* parameters */ &kParameters[555], /* return matcher indices */ nullptr, /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, @@ -9150,7 +9150,7 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[534], + /* parameters */ &kParameters[558], /* return matcher indices */ nullptr, /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, @@ -9162,7 +9162,7 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[519], + /* parameters */ &kParameters[561], /* return matcher indices */ nullptr, /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, @@ -9174,7 +9174,7 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[367], + /* parameters */ &kParameters[419], /* return matcher indices */ nullptr, /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, @@ -9186,7 +9186,7 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[516], + /* parameters */ &kParameters[567], /* return matcher indices */ nullptr, /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, @@ -9198,7 +9198,7 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[495], + /* parameters */ &kParameters[579], /* return matcher indices */ nullptr, /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, @@ -9210,7 +9210,7 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[492], + /* parameters */ &kParameters[468], /* return matcher indices */ nullptr, /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, @@ -9222,7 +9222,7 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[391], + /* parameters */ &kParameters[431], /* return matcher indices */ nullptr, /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, @@ -9234,7 +9234,7 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[489], + /* parameters */ &kParameters[585], /* return matcher indices */ nullptr, /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, @@ -9246,8 +9246,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[17], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[387], - /* return matcher indices */ &kMatcherIndices[129], + /* parameters */ &kParameters[367], + /* return matcher indices */ &kMatcherIndices[127], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -9258,8 +9258,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[17], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[230], - /* return matcher indices */ &kMatcherIndices[129], + /* parameters */ &kParameters[155], + /* return matcher indices */ &kMatcherIndices[127], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -9270,8 +9270,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[17], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[240], - /* return matcher indices */ &kMatcherIndices[129], + /* parameters */ &kParameters[265], + /* return matcher indices */ &kMatcherIndices[127], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -9282,8 +9282,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[17], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[90], - /* return matcher indices */ &kMatcherIndices[129], + /* parameters */ &kParameters[144], + /* return matcher indices */ &kMatcherIndices[127], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -9294,8 +9294,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[17], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[327], - /* return matcher indices */ &kMatcherIndices[129], + /* parameters */ &kParameters[351], + /* return matcher indices */ &kMatcherIndices[127], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -9306,8 +9306,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[17], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[205], - /* return matcher indices */ &kMatcherIndices[129], + /* parameters */ &kParameters[200], + /* return matcher indices */ &kMatcherIndices[127], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -9318,8 +9318,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[579], - /* return matcher indices */ &kMatcherIndices[135], + /* parameters */ &kParameters[564], + /* return matcher indices */ &kMatcherIndices[105], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -9330,8 +9330,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[331], - /* return matcher indices */ &kMatcherIndices[135], + /* parameters */ &kParameters[343], + /* return matcher indices */ &kMatcherIndices[105], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -9343,7 +9343,7 @@ constexpr OverloadInfo kOverloads[] = { /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], /* parameters */ &kParameters[339], - /* return matcher indices */ &kMatcherIndices[135], + /* return matcher indices */ &kMatcherIndices[105], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -9354,8 +9354,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[265], - /* return matcher indices */ &kMatcherIndices[135], + /* parameters */ &kParameters[175], + /* return matcher indices */ &kMatcherIndices[105], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -9366,8 +9366,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[561], - /* return matcher indices */ &kMatcherIndices[135], + /* parameters */ &kParameters[507], + /* return matcher indices */ &kMatcherIndices[105], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -9378,8 +9378,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[343], - /* return matcher indices */ &kMatcherIndices[135], + /* parameters */ &kParameters[331], + /* return matcher indices */ &kMatcherIndices[105], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -9388,10 +9388,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 0, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[16], + /* template types */ &kTemplateTypes[18], /* template numbers */ &kTemplateNumbers[10], /* parameters */ &kParameters[1016], - /* return matcher indices */ &kMatcherIndices[115], + /* return matcher indices */ &kMatcherIndices[107], /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::Zero, }, @@ -9400,10 +9400,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[16], + /* template types */ &kTemplateTypes[18], /* template numbers */ &kTemplateNumbers[10], /* parameters */ &kParameters[956], - /* return matcher indices */ &kMatcherIndices[115], + /* return matcher indices */ &kMatcherIndices[107], /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::Identity, }, @@ -9412,10 +9412,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[10], + /* template types */ &kTemplateTypes[16], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[957], - /* return matcher indices */ &kMatcherIndices[115], + /* parameters */ &kParameters[901], + /* return matcher indices */ &kMatcherIndices[107], /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::VecSplat, }, @@ -9424,10 +9424,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 3, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[10], + /* template types */ &kTemplateTypes[16], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[468], - /* return matcher indices */ &kMatcherIndices[115], + /* parameters */ &kParameters[492], + /* return matcher indices */ &kMatcherIndices[107], /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::VecCtorS, }, @@ -9436,10 +9436,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 2, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[10], + /* template types */ &kTemplateTypes[16], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[619], - /* return matcher indices */ &kMatcherIndices[115], + /* parameters */ &kParameters[761], + /* return matcher indices */ &kMatcherIndices[107], /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::VecCtorM, }, @@ -9448,10 +9448,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 2, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[10], + /* template types */ &kTemplateTypes[16], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[617], - /* return matcher indices */ &kMatcherIndices[115], + /* parameters */ &kParameters[765], + /* return matcher indices */ &kMatcherIndices[107], /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::VecCtorM, }, @@ -9460,7 +9460,7 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 2, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[0], + /* template types */ &kTemplateTypes[2], /* template numbers */ &kTemplateNumbers[10], /* parameters */ &kParameters[961], /* return matcher indices */ &kMatcherIndices[111], @@ -9472,10 +9472,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 2, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[8], + /* template types */ &kTemplateTypes[4], /* template numbers */ &kTemplateNumbers[10], /* parameters */ &kParameters[962], - /* return matcher indices */ &kMatcherIndices[117], + /* return matcher indices */ &kMatcherIndices[115], /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::Conv, }, @@ -9487,7 +9487,7 @@ constexpr OverloadInfo kOverloads[] = { /* template types */ &kTemplateTypes[6], /* template numbers */ &kTemplateNumbers[10], /* parameters */ &kParameters[963], - /* return matcher indices */ &kMatcherIndices[119], + /* return matcher indices */ &kMatcherIndices[117], /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::Conv, }, @@ -9496,10 +9496,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 2, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[4], + /* template types */ &kTemplateTypes[8], /* template numbers */ &kTemplateNumbers[10], /* parameters */ &kParameters[964], - /* return matcher indices */ &kMatcherIndices[121], + /* return matcher indices */ &kMatcherIndices[119], /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::Conv, }, @@ -9508,10 +9508,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 2, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[2], + /* template types */ &kTemplateTypes[0], /* template numbers */ &kTemplateNumbers[10], /* parameters */ &kParameters[965], - /* return matcher indices */ &kMatcherIndices[127], + /* return matcher indices */ &kMatcherIndices[125], /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::Conv, }, @@ -9522,8 +9522,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[17], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[892], - /* return matcher indices */ &kMatcherIndices[34], + /* parameters */ &kParameters[817], + /* return matcher indices */ &kMatcherIndices[31], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -9534,8 +9534,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[17], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[891], - /* return matcher indices */ &kMatcherIndices[34], + /* parameters */ &kParameters[816], + /* return matcher indices */ &kMatcherIndices[31], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -9546,8 +9546,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[17], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[890], - /* return matcher indices */ &kMatcherIndices[34], + /* parameters */ &kParameters[815], + /* return matcher indices */ &kMatcherIndices[31], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -9558,8 +9558,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[17], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[889], - /* return matcher indices */ &kMatcherIndices[34], + /* parameters */ &kParameters[814], + /* return matcher indices */ &kMatcherIndices[31], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -9570,8 +9570,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[17], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[888], - /* return matcher indices */ &kMatcherIndices[34], + /* parameters */ &kParameters[813], + /* return matcher indices */ &kMatcherIndices[31], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -9582,8 +9582,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[17], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[887], - /* return matcher indices */ &kMatcherIndices[34], + /* parameters */ &kParameters[812], + /* return matcher indices */ &kMatcherIndices[31], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -9594,8 +9594,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[886], - /* return matcher indices */ &kMatcherIndices[34], + /* parameters */ &kParameters[811], + /* return matcher indices */ &kMatcherIndices[31], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -9606,8 +9606,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[885], - /* return matcher indices */ &kMatcherIndices[34], + /* parameters */ &kParameters[810], + /* return matcher indices */ &kMatcherIndices[31], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -9618,8 +9618,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[884], - /* return matcher indices */ &kMatcherIndices[34], + /* parameters */ &kParameters[809], + /* return matcher indices */ &kMatcherIndices[31], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -9630,85 +9630,673 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[883], - /* return matcher indices */ &kMatcherIndices[34], + /* parameters */ &kParameters[808], + /* return matcher indices */ &kMatcherIndices[31], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [117] */ - /* num parameters */ 3, + /* num parameters */ 0, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[17], + /* template types */ &kTemplateTypes[18], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[474], - /* return matcher indices */ &kMatcherIndices[129], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, + /* parameters */ &kParameters[1016], + /* return matcher indices */ &kMatcherIndices[113], + /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::Zero, }, { /* [118] */ + /* num parameters */ 1, + /* num template types */ 1, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[18], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[947], + /* return matcher indices */ &kMatcherIndices[113], + /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::Identity, + }, + { + /* [119] */ + /* num parameters */ 1, + /* num template types */ 1, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[16], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[948], + /* return matcher indices */ &kMatcherIndices[113], + /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::VecSplat, + }, + { + /* [120] */ + /* num parameters */ 2, + /* num template types */ 1, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[16], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[753], + /* return matcher indices */ &kMatcherIndices[113], + /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::VecCtorS, + }, + { + /* [121] */ + /* num parameters */ 1, + /* num template types */ 2, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[2], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[950], + /* return matcher indices */ &kMatcherIndices[135], + /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::Conv, + }, + { + /* [122] */ + /* num parameters */ 1, + /* num template types */ 2, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[4], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[951], + /* return matcher indices */ &kMatcherIndices[133], + /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::Conv, + }, + { + /* [123] */ + /* num parameters */ 1, + /* num template types */ 2, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[6], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[952], + /* return matcher indices */ &kMatcherIndices[131], + /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::Conv, + }, + { + /* [124] */ + /* num parameters */ 1, + /* num template types */ 2, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[8], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[953], + /* return matcher indices */ &kMatcherIndices[129], + /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::Conv, + }, + { + /* [125] */ + /* num parameters */ 1, + /* num template types */ 2, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[0], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[954], + /* return matcher indices */ &kMatcherIndices[121], + /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::Conv, + }, + { + /* [126] */ /* num parameters */ 3, /* num template types */ 1, /* num template numbers */ 0, /* template types */ &kTemplateTypes[17], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[471], - /* return matcher indices */ &kMatcherIndices[129], + /* parameters */ &kParameters[588], + /* return matcher indices */ &kMatcherIndices[127], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { - /* [119] */ + /* [127] */ + /* num parameters */ 3, + /* num template types */ 1, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[17], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[447], + /* return matcher indices */ &kMatcherIndices[127], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ nullptr, + }, + { + /* [128] */ /* num parameters */ 4, /* num template types */ 1, /* num template numbers */ 0, /* template types */ &kTemplateTypes[17], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[411], - /* return matcher indices */ &kMatcherIndices[129], + /* parameters */ &kParameters[435], + /* return matcher indices */ &kMatcherIndices[127], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { - /* [120] */ + /* [129] */ /* num parameters */ 3, /* num template types */ 1, /* num template numbers */ 0, /* template types */ &kTemplateTypes[17], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[462], - /* return matcher indices */ &kMatcherIndices[129], + /* parameters */ &kParameters[594], + /* return matcher indices */ &kMatcherIndices[127], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { - /* [121] */ + /* [130] */ /* num parameters */ 3, /* num template types */ 1, /* num template numbers */ 0, /* template types */ &kTemplateTypes[17], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[459], - /* return matcher indices */ &kMatcherIndices[129], + /* parameters */ &kParameters[591], + /* return matcher indices */ &kMatcherIndices[127], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { - /* [122] */ + /* [131] */ /* num parameters */ 3, /* num template types */ 0, /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[453], + /* parameters */ &kParameters[582], /* return matcher indices */ &kMatcherIndices[4], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { - /* [123] */ + /* [132] */ + /* num parameters */ 4, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[359], + /* return matcher indices */ &kMatcherIndices[4], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ nullptr, + }, + { + /* [133] */ + /* num parameters */ 3, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[570], + /* return matcher indices */ &kMatcherIndices[4], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ nullptr, + }, + { + /* [134] */ + /* num parameters */ 2, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[609], + /* return matcher indices */ &kMatcherIndices[105], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ nullptr, + }, + { + /* [135] */ + /* num parameters */ 2, + /* num template types */ 1, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[13], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[763], + /* return matcher indices */ &kMatcherIndices[1], + /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::OpMultiply, + }, + { + /* [136] */ + /* num parameters */ 2, + /* num template types */ 1, + /* num template numbers */ 1, + /* template types */ &kTemplateTypes[13], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[775], + /* return matcher indices */ &kMatcherIndices[33], + /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::OpMultiply, + }, + { + /* [137] */ + /* num parameters */ 2, + /* num template types */ 1, + /* num template numbers */ 1, + /* template types */ &kTemplateTypes[13], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[777], + /* return matcher indices */ &kMatcherIndices[33], + /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::OpMultiply, + }, + { + /* [138] */ + /* num parameters */ 2, + /* num template types */ 1, + /* num template numbers */ 1, + /* template types */ &kTemplateTypes[13], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[801], + /* return matcher indices */ &kMatcherIndices[33], + /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::OpMultiply, + }, + { + /* [139] */ + /* num parameters */ 2, + /* num template types */ 1, + /* num template numbers */ 2, + /* template types */ &kTemplateTypes[12], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[797], + /* return matcher indices */ &kMatcherIndices[10], + /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::OpMultiply, + }, + { + /* [140] */ + /* num parameters */ 2, + /* num template types */ 1, + /* num template numbers */ 2, + /* template types */ &kTemplateTypes[12], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[799], + /* return matcher indices */ &kMatcherIndices[10], + /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::OpMultiply, + }, + { + /* [141] */ + /* num parameters */ 2, + /* num template types */ 1, + /* num template numbers */ 2, + /* template types */ &kTemplateTypes[12], + /* template numbers */ &kTemplateNumbers[1], + /* parameters */ &kParameters[597], + /* return matcher indices */ &kMatcherIndices[72], + /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::OpMultiplyMatVec, + }, + { + /* [142] */ + /* num parameters */ 2, + /* num template types */ 1, + /* num template numbers */ 2, + /* template types */ &kTemplateTypes[12], + /* template numbers */ &kTemplateNumbers[1], + /* parameters */ &kParameters[599], + /* return matcher indices */ &kMatcherIndices[33], + /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::OpMultiplyVecMat, + }, + { + /* [143] */ + /* num parameters */ 2, + /* num template types */ 1, + /* num template numbers */ 3, + /* template types */ &kTemplateTypes[12], + /* template numbers */ &kTemplateNumbers[0], + /* parameters */ &kParameters[605], + /* return matcher indices */ &kMatcherIndices[26], + /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::OpMultiplyMatMat, + }, + { + /* [144] */ + /* num parameters */ 4, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[375], + /* return matcher indices */ &kMatcherIndices[105], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), + /* const eval */ nullptr, + }, + { + /* [145] */ + /* num parameters */ 5, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[190], + /* return matcher indices */ &kMatcherIndices[105], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), + /* const eval */ nullptr, + }, + { + /* [146] */ + /* num parameters */ 5, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[150], + /* return matcher indices */ &kMatcherIndices[105], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), + /* const eval */ nullptr, + }, + { + /* [147] */ + /* num parameters */ 6, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[132], + /* return matcher indices */ &kMatcherIndices[105], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), + /* const eval */ nullptr, + }, + { + /* [148] */ + /* num parameters */ 4, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[383], + /* return matcher indices */ &kMatcherIndices[105], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), + /* const eval */ nullptr, + }, + { + /* [149] */ + /* num parameters */ 5, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[210], + /* return matcher indices */ &kMatcherIndices[105], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), + /* const eval */ nullptr, + }, + { + /* [150] */ + /* num parameters */ 4, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[391], + /* return matcher indices */ &kMatcherIndices[105], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), + /* const eval */ nullptr, + }, + { + /* [151] */ + /* num parameters */ 5, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[235], + /* return matcher indices */ &kMatcherIndices[105], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), + /* const eval */ nullptr, + }, + { + /* [152] */ + /* num parameters */ 5, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[250], + /* return matcher indices */ &kMatcherIndices[105], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ nullptr, + }, + { + /* [153] */ + /* num parameters */ 6, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[72], + /* return matcher indices */ &kMatcherIndices[105], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ nullptr, + }, + { + /* [154] */ + /* num parameters */ 6, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[78], + /* return matcher indices */ &kMatcherIndices[105], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ nullptr, + }, + { + /* [155] */ + /* num parameters */ 7, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[65], + /* return matcher indices */ &kMatcherIndices[105], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ nullptr, + }, + { + /* [156] */ + /* num parameters */ 5, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[270], + /* return matcher indices */ &kMatcherIndices[105], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ nullptr, + }, + { + /* [157] */ + /* num parameters */ 6, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[90], + /* return matcher indices */ &kMatcherIndices[105], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ nullptr, + }, + { + /* [158] */ + /* num parameters */ 5, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[280], + /* return matcher indices */ &kMatcherIndices[105], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ nullptr, + }, + { + /* [159] */ + /* num parameters */ 6, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[138], + /* return matcher indices */ &kMatcherIndices[105], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ nullptr, + }, + { + /* [160] */ + /* num parameters */ 0, + /* num template types */ 1, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[11], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[1016], + /* return matcher indices */ &kMatcherIndices[183], + /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::Zero, + }, + { + /* [161] */ + /* num parameters */ 1, + /* num template types */ 1, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[11], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[1000], + /* return matcher indices */ &kMatcherIndices[183], + /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::Identity, + }, + { + /* [162] */ + /* num parameters */ 6, + /* num template types */ 1, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[12], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[114], + /* return matcher indices */ &kMatcherIndices[183], + /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::MatCtorS, + }, + { + /* [163] */ + /* num parameters */ 3, + /* num template types */ 1, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[12], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[453], + /* return matcher indices */ &kMatcherIndices[183], + /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::MatCtorV, + }, + { + /* [164] */ + /* num parameters */ 1, + /* num template types */ 1, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[4], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[1003], + /* return matcher indices */ &kMatcherIndices[187], + /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::Conv, + }, + { + /* [165] */ + /* num parameters */ 1, + /* num template types */ 1, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[2], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[1004], + /* return matcher indices */ &kMatcherIndices[185], + /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::Conv, + }, + { + /* [166] */ + /* num parameters */ 4, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[399], + /* return matcher indices */ &kMatcherIndices[4], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), + /* const eval */ nullptr, + }, + { + /* [167] */ + /* num parameters */ 5, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[260], + /* return matcher indices */ &kMatcherIndices[4], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), + /* const eval */ nullptr, + }, + { + /* [168] */ + /* num parameters */ 5, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[275], + /* return matcher indices */ &kMatcherIndices[4], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), + /* const eval */ nullptr, + }, + { + /* [169] */ + /* num parameters */ 6, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[120], + /* return matcher indices */ &kMatcherIndices[4], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), + /* const eval */ nullptr, + }, + { + /* [170] */ + /* num parameters */ 4, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[407], + /* return matcher indices */ &kMatcherIndices[4], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), + /* const eval */ nullptr, + }, + { + /* [171] */ + /* num parameters */ 5, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[160], + /* return matcher indices */ &kMatcherIndices[4], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), + /* const eval */ nullptr, + }, + { + /* [172] */ /* num parameters */ 4, /* num template types */ 0, /* num template numbers */ 0, @@ -9720,587 +10308,143 @@ constexpr OverloadInfo kOverloads[] = { /* const eval */ nullptr, }, { - /* [124] */ - /* num parameters */ 3, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[447], - /* return matcher indices */ &kMatcherIndices[4], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, - }, - { - /* [125] */ - /* num parameters */ 2, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[791], - /* return matcher indices */ &kMatcherIndices[135], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, - }, - { - /* [126] */ - /* num parameters */ 2, - /* num template types */ 1, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[11], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[737], - /* return matcher indices */ &kMatcherIndices[1], - /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::OpMultiply, - }, - { - /* [127] */ - /* num parameters */ 2, - /* num template types */ 1, - /* num template numbers */ 1, - /* template types */ &kTemplateTypes[11], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[735], - /* return matcher indices */ &kMatcherIndices[30], - /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::OpMultiply, - }, - { - /* [128] */ - /* num parameters */ 2, - /* num template types */ 1, - /* num template numbers */ 1, - /* template types */ &kTemplateTypes[11], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[733], - /* return matcher indices */ &kMatcherIndices[30], - /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::OpMultiply, - }, - { - /* [129] */ - /* num parameters */ 2, - /* num template types */ 1, - /* num template numbers */ 1, - /* template types */ &kTemplateTypes[11], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[731], - /* return matcher indices */ &kMatcherIndices[30], - /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::OpMultiply, - }, - { - /* [130] */ - /* num parameters */ 2, - /* num template types */ 1, - /* num template numbers */ 2, - /* template types */ &kTemplateTypes[12], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[729], - /* return matcher indices */ &kMatcherIndices[10], - /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::OpMultiply, - }, - { - /* [131] */ - /* num parameters */ 2, - /* num template types */ 1, - /* num template numbers */ 2, - /* template types */ &kTemplateTypes[12], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[727], - /* return matcher indices */ &kMatcherIndices[10], - /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::OpMultiply, - }, - { - /* [132] */ - /* num parameters */ 2, - /* num template types */ 1, - /* num template numbers */ 2, - /* template types */ &kTemplateTypes[12], - /* template numbers */ &kTemplateNumbers[1], - /* parameters */ &kParameters[725], - /* return matcher indices */ &kMatcherIndices[69], - /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::OpMultiplyMatVec, - }, - { - /* [133] */ - /* num parameters */ 2, - /* num template types */ 1, - /* num template numbers */ 2, - /* template types */ &kTemplateTypes[12], - /* template numbers */ &kTemplateNumbers[1], - /* parameters */ &kParameters[723], - /* return matcher indices */ &kMatcherIndices[30], - /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::OpMultiplyVecMat, - }, - { - /* [134] */ - /* num parameters */ 2, - /* num template types */ 1, - /* num template numbers */ 3, - /* template types */ &kTemplateTypes[12], - /* template numbers */ &kTemplateNumbers[0], - /* parameters */ &kParameters[721], - /* return matcher indices */ &kMatcherIndices[26], - /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::OpMultiplyMatMat, - }, - { - /* [135] */ - /* num parameters */ 0, - /* num template types */ 1, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[16], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[1016], - /* return matcher indices */ &kMatcherIndices[113], - /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::Zero, - }, - { - /* [136] */ - /* num parameters */ 1, - /* num template types */ 1, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[16], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[947], - /* return matcher indices */ &kMatcherIndices[113], - /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::Identity, - }, - { - /* [137] */ - /* num parameters */ 1, - /* num template types */ 1, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[10], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[948], - /* return matcher indices */ &kMatcherIndices[113], - /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::VecSplat, - }, - { - /* [138] */ - /* num parameters */ 2, - /* num template types */ 1, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[10], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[621], - /* return matcher indices */ &kMatcherIndices[113], - /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::VecCtorS, - }, - { - /* [139] */ - /* num parameters */ 1, - /* num template types */ 2, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[0], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[950], - /* return matcher indices */ &kMatcherIndices[137], - /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::Conv, - }, - { - /* [140] */ - /* num parameters */ 1, - /* num template types */ 2, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[8], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[951], - /* return matcher indices */ &kMatcherIndices[133], - /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::Conv, - }, - { - /* [141] */ - /* num parameters */ 1, - /* num template types */ 2, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[6], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[952], - /* return matcher indices */ &kMatcherIndices[105], - /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::Conv, - }, - { - /* [142] */ - /* num parameters */ 1, - /* num template types */ 2, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[4], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[953], - /* return matcher indices */ &kMatcherIndices[131], - /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::Conv, - }, - { - /* [143] */ - /* num parameters */ 1, - /* num template types */ 2, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[2], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[954], - /* return matcher indices */ &kMatcherIndices[123], - /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::Conv, - }, - { - /* [144] */ - /* num parameters */ 5, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[215], - /* return matcher indices */ &kMatcherIndices[135], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, - }, - { - /* [145] */ - /* num parameters */ 6, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[132], - /* return matcher indices */ &kMatcherIndices[135], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, - }, - { - /* [146] */ - /* num parameters */ 6, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[120], - /* return matcher indices */ &kMatcherIndices[135], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, - }, - { - /* [147] */ - /* num parameters */ 7, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[65], - /* return matcher indices */ &kMatcherIndices[135], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, - }, - { - /* [148] */ - /* num parameters */ 5, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[235], - /* return matcher indices */ &kMatcherIndices[135], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, - }, - { - /* [149] */ - /* num parameters */ 6, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[108], - /* return matcher indices */ &kMatcherIndices[135], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, - }, - { - /* [150] */ - /* num parameters */ 5, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[245], - /* return matcher indices */ &kMatcherIndices[135], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, - }, - { - /* [151] */ - /* num parameters */ 6, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[96], - /* return matcher indices */ &kMatcherIndices[135], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, - }, - { - /* [152] */ - /* num parameters */ 4, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[407], - /* return matcher indices */ &kMatcherIndices[135], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), - /* const eval */ nullptr, - }, - { - /* [153] */ - /* num parameters */ 5, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[160], - /* return matcher indices */ &kMatcherIndices[135], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), - /* const eval */ nullptr, - }, - { - /* [154] */ + /* [173] */ /* num parameters */ 5, /* num template types */ 0, /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], /* parameters */ &kParameters[225], - /* return matcher indices */ &kMatcherIndices[135], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), + /* return matcher indices */ &kMatcherIndices[4], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { - /* [155] */ + /* [174] */ + /* num parameters */ 5, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[255], + /* return matcher indices */ &kMatcherIndices[4], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ nullptr, + }, + { + /* [175] */ /* num parameters */ 6, /* num template types */ 0, /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[78], - /* return matcher indices */ &kMatcherIndices[135], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), + /* parameters */ &kParameters[108], + /* return matcher indices */ &kMatcherIndices[4], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { - /* [156] */ + /* [176] */ /* num parameters */ 4, /* num template types */ 0, /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[435], - /* return matcher indices */ &kMatcherIndices[135], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), + /* parameters */ &kParameters[303], + /* return matcher indices */ &kMatcherIndices[4], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { - /* [157] */ + /* [177] */ /* num parameters */ 5, /* num template types */ 0, /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[165], - /* return matcher indices */ &kMatcherIndices[135], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), - /* const eval */ nullptr, - }, - { - /* [158] */ - /* num parameters */ 4, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[439], - /* return matcher indices */ &kMatcherIndices[135], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), - /* const eval */ nullptr, - }, - { - /* [159] */ - /* num parameters */ 5, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[170], - /* return matcher indices */ &kMatcherIndices[135], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), - /* const eval */ nullptr, - }, - { - /* [160] */ - /* num parameters */ 4, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[415], + /* parameters */ &kParameters[245], /* return matcher indices */ &kMatcherIndices[4], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { - /* [161] */ - /* num parameters */ 5, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[195], - /* return matcher indices */ &kMatcherIndices[4], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, - }, - { - /* [162] */ - /* num parameters */ 5, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[200], - /* return matcher indices */ &kMatcherIndices[4], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, - }, - { - /* [163] */ - /* num parameters */ 6, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[138], - /* return matcher indices */ &kMatcherIndices[4], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, - }, - { - /* [164] */ - /* num parameters */ 4, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[399], - /* return matcher indices */ &kMatcherIndices[4], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, - }, - { - /* [165] */ - /* num parameters */ 5, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[210], - /* return matcher indices */ &kMatcherIndices[4], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, - }, - { - /* [166] */ + /* [178] */ /* num parameters */ 0, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], /* parameters */ &kParameters[1016], - /* return matcher indices */ &kMatcherIndices[191], + /* return matcher indices */ &kMatcherIndices[177], /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::Zero, }, { - /* [167] */ + /* [179] */ /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[1006], - /* return matcher indices */ &kMatcherIndices[191], + /* parameters */ &kParameters[994], + /* return matcher indices */ &kMatcherIndices[177], /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::Identity, }, { - /* [168] */ - /* num parameters */ 9, + /* [180] */ + /* num parameters */ 8, /* num template types */ 1, /* num template numbers */ 0, /* template types */ &kTemplateTypes[12], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[40], - /* return matcher indices */ &kMatcherIndices[191], + /* parameters */ &kParameters[57], + /* return matcher indices */ &kMatcherIndices[177], /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::MatCtorS, }, { - /* [169] */ - /* num parameters */ 3, + /* [181] */ + /* num parameters */ 2, /* num template types */ 1, /* num template numbers */ 0, /* template types */ &kTemplateTypes[12], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[564], - /* return matcher indices */ &kMatcherIndices[191], + /* parameters */ &kParameters[795], + /* return matcher indices */ &kMatcherIndices[177], /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::MatCtorV, }, { - /* [170] */ + /* [182] */ /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[8], + /* template types */ &kTemplateTypes[4], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[1009], - /* return matcher indices */ &kMatcherIndices[195], + /* parameters */ &kParameters[997], + /* return matcher indices */ &kMatcherIndices[181], /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::Conv, }, { - /* [171] */ + /* [183] */ /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[0], + /* template types */ &kTemplateTypes[2], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[1010], - /* return matcher indices */ &kMatcherIndices[193], + /* parameters */ &kParameters[998], + /* return matcher indices */ &kMatcherIndices[179], /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::Conv, }, { - /* [172] */ + /* [184] */ /* num parameters */ 0, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], /* parameters */ &kParameters[1016], /* return matcher indices */ &kMatcherIndices[227], @@ -10308,19 +10452,19 @@ constexpr OverloadInfo kOverloads[] = { /* const eval */ &ConstEval::Zero, }, { - /* [173] */ + /* [185] */ /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[940], + /* parameters */ &kParameters[934], /* return matcher indices */ &kMatcherIndices[227], /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::Identity, }, { - /* [174] */ + /* [186] */ /* num parameters */ 16, /* num template types */ 1, /* num template numbers */ 0, @@ -10332,266 +10476,122 @@ constexpr OverloadInfo kOverloads[] = { /* const eval */ &ConstEval::MatCtorS, }, { - /* [175] */ + /* [187] */ /* num parameters */ 4, /* num template types */ 1, /* num template numbers */ 0, /* template types */ &kTemplateTypes[12], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[303], + /* parameters */ &kParameters[415], /* return matcher indices */ &kMatcherIndices[227], /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::MatCtorV, }, { - /* [176] */ + /* [188] */ /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[8], + /* template types */ &kTemplateTypes[4], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[931], + /* parameters */ &kParameters[852], /* return matcher indices */ &kMatcherIndices[231], /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::Conv, }, { - /* [177] */ + /* [189] */ /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[0], + /* template types */ &kTemplateTypes[2], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[911], + /* parameters */ &kParameters[918], /* return matcher indices */ &kMatcherIndices[229], /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::Conv, }, { - /* [178] */ - /* num parameters */ 0, - /* num template types */ 1, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[1016], - /* return matcher indices */ &kMatcherIndices[207], - /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::Zero, - }, - { - /* [179] */ - /* num parameters */ 1, - /* num template types */ 1, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[966], - /* return matcher indices */ &kMatcherIndices[207], - /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::Identity, - }, - { - /* [180] */ - /* num parameters */ 12, - /* num template types */ 1, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[12], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[28], - /* return matcher indices */ &kMatcherIndices[207], - /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::MatCtorS, - }, - { - /* [181] */ - /* num parameters */ 4, - /* num template types */ 1, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[12], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[311], - /* return matcher indices */ &kMatcherIndices[207], - /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::MatCtorV, - }, - { - /* [182] */ - /* num parameters */ 1, - /* num template types */ 1, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[8], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[946], - /* return matcher indices */ &kMatcherIndices[221], - /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::Conv, - }, - { - /* [183] */ - /* num parameters */ 1, - /* num template types */ 1, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[0], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[943], - /* return matcher indices */ &kMatcherIndices[219], - /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::Conv, - }, - { - /* [184] */ + /* [190] */ /* num parameters */ 4, /* num template types */ 0, /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[347], - /* return matcher indices */ &kMatcherIndices[135], + /* parameters */ &kParameters[327], + /* return matcher indices */ &kMatcherIndices[105], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { - /* [185] */ + /* [191] */ /* num parameters */ 5, /* num template types */ 0, /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[250], - /* return matcher indices */ &kMatcherIndices[135], + /* parameters */ &kParameters[180], + /* return matcher indices */ &kMatcherIndices[105], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { - /* [186] */ + /* [192] */ /* num parameters */ 5, /* num template types */ 0, /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[155], - /* return matcher indices */ &kMatcherIndices[135], + /* parameters */ &kParameters[185], + /* return matcher indices */ &kMatcherIndices[105], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { - /* [187] */ + /* [193] */ /* num parameters */ 6, /* num template types */ 0, /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], /* parameters */ &kParameters[126], - /* return matcher indices */ &kMatcherIndices[135], + /* return matcher indices */ &kMatcherIndices[105], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { - /* [188] */ + /* [194] */ /* num parameters */ 4, /* num template types */ 0, /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[359], - /* return matcher indices */ &kMatcherIndices[135], + /* parameters */ &kParameters[311], + /* return matcher indices */ &kMatcherIndices[105], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { - /* [189] */ + /* [195] */ /* num parameters */ 5, /* num template types */ 0, /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], /* parameters */ &kParameters[220], - /* return matcher indices */ &kMatcherIndices[135], + /* return matcher indices */ &kMatcherIndices[105], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, - { - /* [190] */ - /* num parameters */ 0, - /* num template types */ 1, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[1016], - /* return matcher indices */ &kMatcherIndices[107], - /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::Zero, - }, - { - /* [191] */ - /* num parameters */ 1, - /* num template types */ 1, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[1005], - /* return matcher indices */ &kMatcherIndices[107], - /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::Identity, - }, - { - /* [192] */ - /* num parameters */ 8, - /* num template types */ 1, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[12], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[57], - /* return matcher indices */ &kMatcherIndices[107], - /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::MatCtorS, - }, - { - /* [193] */ - /* num parameters */ 4, - /* num template types */ 1, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[12], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[319], - /* return matcher indices */ &kMatcherIndices[107], - /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::MatCtorV, - }, - { - /* [194] */ - /* num parameters */ 1, - /* num template types */ 1, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[8], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[987], - /* return matcher indices */ &kMatcherIndices[205], - /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::Conv, - }, - { - /* [195] */ - /* num parameters */ 1, - /* num template types */ 1, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[0], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[981], - /* return matcher indices */ &kMatcherIndices[203], - /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::Conv, - }, { /* [196] */ /* num parameters */ 0, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], /* parameters */ &kParameters[1016], - /* return matcher indices */ &kMatcherIndices[197], + /* return matcher indices */ &kMatcherIndices[207], /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::Zero, }, @@ -10600,10 +10600,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[1012], - /* return matcher indices */ &kMatcherIndices[197], + /* parameters */ &kParameters[955], + /* return matcher indices */ &kMatcherIndices[207], /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::Identity, }, @@ -10615,19 +10615,19 @@ constexpr OverloadInfo kOverloads[] = { /* template types */ &kTemplateTypes[12], /* template numbers */ &kTemplateNumbers[10], /* parameters */ &kParameters[16], - /* return matcher indices */ &kMatcherIndices[197], + /* return matcher indices */ &kMatcherIndices[207], /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::MatCtorS, }, { /* [199] */ - /* num parameters */ 3, + /* num parameters */ 4, /* num template types */ 1, /* num template numbers */ 0, /* template types */ &kTemplateTypes[12], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[582], - /* return matcher indices */ &kMatcherIndices[197], + /* parameters */ &kParameters[315], + /* return matcher indices */ &kMatcherIndices[207], /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::MatCtorV, }, @@ -10636,10 +10636,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[8], + /* template types */ &kTemplateTypes[4], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[1015], - /* return matcher indices */ &kMatcherIndices[201], + /* parameters */ &kParameters[940], + /* return matcher indices */ &kMatcherIndices[219], /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::Conv, }, @@ -10648,94 +10648,94 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[0], + /* template types */ &kTemplateTypes[2], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[1011], - /* return matcher indices */ &kMatcherIndices[199], + /* parameters */ &kParameters[937], + /* return matcher indices */ &kMatcherIndices[217], /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::Conv, }, { /* [202] */ - /* num parameters */ 4, - /* num template types */ 0, + /* num parameters */ 0, + /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[299], - /* return matcher indices */ &kMatcherIndices[4], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), - /* const eval */ nullptr, + /* parameters */ &kParameters[1016], + /* return matcher indices */ &kMatcherIndices[169], + /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::Zero, }, { /* [203] */ - /* num parameters */ 5, - /* num template types */ 0, + /* num parameters */ 1, + /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[175], - /* return matcher indices */ &kMatcherIndices[4], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), - /* const eval */ nullptr, + /* parameters */ &kParameters[988], + /* return matcher indices */ &kMatcherIndices[169], + /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::Identity, }, { /* [204] */ - /* num parameters */ 5, - /* num template types */ 0, + /* num parameters */ 6, + /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], + /* template types */ &kTemplateTypes[12], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[180], - /* return matcher indices */ &kMatcherIndices[4], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), - /* const eval */ nullptr, + /* parameters */ &kParameters[84], + /* return matcher indices */ &kMatcherIndices[169], + /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::MatCtorS, }, { /* [205] */ - /* num parameters */ 6, - /* num template types */ 0, + /* num parameters */ 2, + /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], + /* template types */ &kTemplateTypes[12], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[144], - /* return matcher indices */ &kMatcherIndices[4], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), - /* const eval */ nullptr, + /* parameters */ &kParameters[793], + /* return matcher indices */ &kMatcherIndices[169], + /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::MatCtorV, }, { /* [206] */ - /* num parameters */ 4, - /* num template types */ 0, + /* num parameters */ 1, + /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], + /* template types */ &kTemplateTypes[4], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[431], - /* return matcher indices */ &kMatcherIndices[4], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), - /* const eval */ nullptr, + /* parameters */ &kParameters[991], + /* return matcher indices */ &kMatcherIndices[175], + /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::Conv, }, { /* [207] */ - /* num parameters */ 5, - /* num template types */ 0, + /* num parameters */ 1, + /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], + /* template types */ &kTemplateTypes[2], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[190], - /* return matcher indices */ &kMatcherIndices[4], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), - /* const eval */ nullptr, + /* parameters */ &kParameters[992], + /* return matcher indices */ &kMatcherIndices[171], + /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::Conv, }, { /* [208] */ /* num parameters */ 0, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], /* parameters */ &kParameters[1016], - /* return matcher indices */ &kMatcherIndices[185], + /* return matcher indices */ &kMatcherIndices[163], /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::Zero, }, @@ -10744,34 +10744,34 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[1000], - /* return matcher indices */ &kMatcherIndices[185], + /* parameters */ &kParameters[982], + /* return matcher indices */ &kMatcherIndices[163], /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::Identity, }, { /* [210] */ - /* num parameters */ 6, + /* num parameters */ 4, /* num template types */ 1, /* num template numbers */ 0, /* template types */ &kTemplateTypes[12], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[72], - /* return matcher indices */ &kMatcherIndices[185], + /* parameters */ &kParameters[395], + /* return matcher indices */ &kMatcherIndices[163], /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::MatCtorS, }, { /* [211] */ - /* num parameters */ 3, + /* num parameters */ 2, /* num template types */ 1, /* num template numbers */ 0, /* template types */ &kTemplateTypes[12], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[543], - /* return matcher indices */ &kMatcherIndices[185], + /* parameters */ &kParameters[791], + /* return matcher indices */ &kMatcherIndices[163], /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::MatCtorV, }, @@ -10780,10 +10780,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[8], + /* template types */ &kTemplateTypes[4], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[1003], - /* return matcher indices */ &kMatcherIndices[189], + /* parameters */ &kParameters[985], + /* return matcher indices */ &kMatcherIndices[167], /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::Conv, }, @@ -10792,10 +10792,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[0], + /* template types */ &kTemplateTypes[2], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[1004], - /* return matcher indices */ &kMatcherIndices[187], + /* parameters */ &kParameters[986], + /* return matcher indices */ &kMatcherIndices[165], /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::Conv, }, @@ -10804,10 +10804,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 0, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], /* parameters */ &kParameters[1016], - /* return matcher indices */ &kMatcherIndices[179], + /* return matcher indices */ &kMatcherIndices[195], /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::Zero, }, @@ -10816,34 +10816,34 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[994], - /* return matcher indices */ &kMatcherIndices[179], + /* parameters */ &kParameters[1012], + /* return matcher indices */ &kMatcherIndices[195], /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::Identity, }, { /* [216] */ - /* num parameters */ 8, + /* num parameters */ 12, /* num template types */ 1, /* num template numbers */ 0, /* template types */ &kTemplateTypes[12], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[49], - /* return matcher indices */ &kMatcherIndices[179], + /* parameters */ &kParameters[28], + /* return matcher indices */ &kMatcherIndices[195], /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::MatCtorS, }, { /* [217] */ - /* num parameters */ 2, + /* num parameters */ 3, /* num template types */ 1, /* num template numbers */ 0, /* template types */ &kTemplateTypes[12], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[601], - /* return matcher indices */ &kMatcherIndices[179], + /* parameters */ &kParameters[504], + /* return matcher indices */ &kMatcherIndices[195], /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::MatCtorV, }, @@ -10852,10 +10852,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[8], + /* template types */ &kTemplateTypes[4], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[997], - /* return matcher indices */ &kMatcherIndices[183], + /* parameters */ &kParameters[1011], + /* return matcher indices */ &kMatcherIndices[199], /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::Conv, }, @@ -10864,10 +10864,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[0], + /* template types */ &kTemplateTypes[2], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[998], - /* return matcher indices */ &kMatcherIndices[181], + /* parameters */ &kParameters[1005], + /* return matcher indices */ &kMatcherIndices[197], /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::Conv, }, @@ -10876,10 +10876,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 0, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], /* parameters */ &kParameters[1016], - /* return matcher indices */ &kMatcherIndices[171], + /* return matcher indices */ &kMatcherIndices[189], /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::Zero, }, @@ -10888,34 +10888,34 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[988], - /* return matcher indices */ &kMatcherIndices[171], + /* parameters */ &kParameters[1006], + /* return matcher indices */ &kMatcherIndices[189], /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::Identity, }, { /* [222] */ - /* num parameters */ 6, + /* num parameters */ 9, /* num template types */ 1, /* num template numbers */ 0, /* template types */ &kTemplateTypes[12], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[114], - /* return matcher indices */ &kMatcherIndices[171], + /* parameters */ &kParameters[40], + /* return matcher indices */ &kMatcherIndices[189], /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::MatCtorS, }, { /* [223] */ - /* num parameters */ 2, + /* num parameters */ 3, /* num template types */ 1, /* num template numbers */ 0, /* template types */ &kTemplateTypes[12], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[603], - /* return matcher indices */ &kMatcherIndices[171], + /* parameters */ &kParameters[450], + /* return matcher indices */ &kMatcherIndices[189], /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::MatCtorV, }, @@ -10924,10 +10924,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[8], + /* template types */ &kTemplateTypes[4], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[991], - /* return matcher indices */ &kMatcherIndices[175], + /* parameters */ &kParameters[1009], + /* return matcher indices */ &kMatcherIndices[193], /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::Conv, }, @@ -10936,10 +10936,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[0], + /* template types */ &kTemplateTypes[2], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[992], - /* return matcher indices */ &kMatcherIndices[173], + /* parameters */ &kParameters[1010], + /* return matcher indices */ &kMatcherIndices[191], /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::Conv, }, @@ -10948,10 +10948,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 0, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], /* parameters */ &kParameters[1016], - /* return matcher indices */ &kMatcherIndices[165], + /* return matcher indices */ &kMatcherIndices[201], /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::Zero, }, @@ -10960,34 +10960,34 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[982], - /* return matcher indices */ &kMatcherIndices[165], + /* parameters */ &kParameters[999], + /* return matcher indices */ &kMatcherIndices[201], /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::Identity, }, { /* [228] */ - /* num parameters */ 4, + /* num parameters */ 8, /* num template types */ 1, /* num template numbers */ 0, /* template types */ &kTemplateTypes[12], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[355], - /* return matcher indices */ &kMatcherIndices[165], + /* parameters */ &kParameters[49], + /* return matcher indices */ &kMatcherIndices[201], /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::MatCtorS, }, { /* [229] */ - /* num parameters */ 2, + /* num parameters */ 4, /* num template types */ 1, /* num template numbers */ 0, /* template types */ &kTemplateTypes[12], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[605], - /* return matcher indices */ &kMatcherIndices[165], + /* parameters */ &kParameters[439], + /* return matcher indices */ &kMatcherIndices[201], /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::MatCtorV, }, @@ -10996,10 +10996,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[8], + /* template types */ &kTemplateTypes[4], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[985], - /* return matcher indices */ &kMatcherIndices[169], + /* parameters */ &kParameters[981], + /* return matcher indices */ &kMatcherIndices[205], /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::Conv, }, @@ -11008,10 +11008,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[0], + /* template types */ &kTemplateTypes[2], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[986], - /* return matcher indices */ &kMatcherIndices[167], + /* parameters */ &kParameters[966], + /* return matcher indices */ &kMatcherIndices[203], /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::Conv, }, @@ -11020,9 +11020,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 2, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[11], + /* template types */ &kTemplateTypes[13], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[763], + /* parameters */ &kParameters[669], /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::OpPlus, @@ -11032,10 +11032,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 2, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[11], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[761], - /* return matcher indices */ &kMatcherIndices[30], + /* template types */ &kTemplateTypes[13], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[671], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::OpPlus, }, @@ -11044,10 +11044,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 2, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[11], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[759], - /* return matcher indices */ &kMatcherIndices[30], + /* template types */ &kTemplateTypes[13], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[685], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::OpPlus, }, @@ -11056,10 +11056,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 2, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[11], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[757], - /* return matcher indices */ &kMatcherIndices[30], + /* template types */ &kTemplateTypes[13], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[695], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::OpPlus, }, @@ -11069,8 +11069,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template types */ 1, /* num template numbers */ 2, /* template types */ &kTemplateTypes[12], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[751], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[701], /* return matcher indices */ &kMatcherIndices[10], /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::OpPlus, @@ -11080,9 +11080,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 2, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[11], + /* template types */ &kTemplateTypes[13], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[749], + /* parameters */ &kParameters[745], /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::OpMinus, @@ -11092,10 +11092,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 2, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[11], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[745], - /* return matcher indices */ &kMatcherIndices[30], + /* template types */ &kTemplateTypes[13], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[747], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::OpMinus, }, @@ -11104,10 +11104,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 2, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[11], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[743], - /* return matcher indices */ &kMatcherIndices[30], + /* template types */ &kTemplateTypes[13], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[755], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::OpMinus, }, @@ -11116,10 +11116,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 2, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[11], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[741], - /* return matcher indices */ &kMatcherIndices[30], + /* template types */ &kTemplateTypes[13], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[757], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::OpMinus, }, @@ -11129,8 +11129,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template types */ 1, /* num template numbers */ 2, /* template types */ &kTemplateTypes[12], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[739], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[759], /* return matcher indices */ &kMatcherIndices[10], /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::OpMinus, @@ -11142,8 +11142,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[17], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[897], - /* return matcher indices */ &kMatcherIndices[34], + /* parameters */ &kParameters[822], + /* return matcher indices */ &kMatcherIndices[31], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -11154,8 +11154,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[17], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[896], - /* return matcher indices */ &kMatcherIndices[34], + /* parameters */ &kParameters[821], + /* return matcher indices */ &kMatcherIndices[31], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -11166,8 +11166,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[895], - /* return matcher indices */ &kMatcherIndices[34], + /* parameters */ &kParameters[820], + /* return matcher indices */ &kMatcherIndices[31], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -11178,8 +11178,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[894], - /* return matcher indices */ &kMatcherIndices[34], + /* parameters */ &kParameters[819], + /* return matcher indices */ &kMatcherIndices[31], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -11190,8 +11190,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 2, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[3], - /* parameters */ &kParameters[893], - /* return matcher indices */ &kMatcherIndices[34], + /* parameters */ &kParameters[818], + /* return matcher indices */ &kMatcherIndices[31], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -11202,10 +11202,10 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[699], + /* parameters */ &kParameters[679], /* return matcher indices */ &kMatcherIndices[20], /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::OpAnd, + /* const eval */ &ConstEval::OpOr, }, { /* [248] */ @@ -11213,92 +11213,92 @@ constexpr OverloadInfo kOverloads[] = { /* num template types */ 0, /* num template numbers */ 1, /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[697], - /* return matcher indices */ &kMatcherIndices[39], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[681], + /* return matcher indices */ &kMatcherIndices[42], /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::OpAnd, + /* const eval */ &ConstEval::OpOr, }, { /* [249] */ /* num parameters */ 2, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[25], + /* template types */ &kTemplateTypes[10], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[695], + /* parameters */ &kParameters[683], /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::OpAnd, + /* const eval */ &ConstEval::OpOr, }, { /* [250] */ /* num parameters */ 2, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[25], - /* template numbers */ &kTemplateNumbers[5], + /* template types */ &kTemplateTypes[10], + /* template numbers */ &kTemplateNumbers[6], /* parameters */ &kParameters[693], - /* return matcher indices */ &kMatcherIndices[30], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::OpAnd, + /* const eval */ &ConstEval::OpOr, }, { /* [251] */ /* num parameters */ 2, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[15], + /* template types */ &kTemplateTypes[14], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[711], + /* parameters */ &kParameters[725], /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, + /* const eval */ &ConstEval::OpShiftLeft, }, { /* [252] */ /* num parameters */ 2, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[15], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[709], - /* return matcher indices */ &kMatcherIndices[30], + /* template types */ &kTemplateTypes[14], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[737], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, + /* const eval */ &ConstEval::OpShiftLeft, }, { /* [253] */ /* num parameters */ 2, /* num template types */ 1, - /* num template numbers */ 1, - /* template types */ &kTemplateTypes[15], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[707], - /* return matcher indices */ &kMatcherIndices[30], + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[25], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[739], + /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, + /* const eval */ &ConstEval::OpShiftLeft, }, { /* [254] */ /* num parameters */ 2, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[15], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[705], - /* return matcher indices */ &kMatcherIndices[30], + /* template types */ &kTemplateTypes[25], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[741], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, + /* const eval */ &ConstEval::OpShiftLeft, }, { /* [255] */ /* num parameters */ 2, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[11], + /* template types */ &kTemplateTypes[13], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[719], + /* parameters */ &kParameters[649], /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::OpDivide, @@ -11308,10 +11308,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 2, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[11], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[717], - /* return matcher indices */ &kMatcherIndices[30], + /* template types */ &kTemplateTypes[13], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[619], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::OpDivide, }, @@ -11320,10 +11320,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 2, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[11], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[715], - /* return matcher indices */ &kMatcherIndices[30], + /* template types */ &kTemplateTypes[13], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[621], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::OpDivide, }, @@ -11332,183 +11332,111 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 2, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[11], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[713], - /* return matcher indices */ &kMatcherIndices[30], + /* template types */ &kTemplateTypes[13], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[645], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::OpDivide, }, { /* [259] */ /* num parameters */ 2, - /* num template types */ 0, + /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], + /* template types */ &kTemplateTypes[15], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[691], - /* return matcher indices */ &kMatcherIndices[20], + /* parameters */ &kParameters[647], + /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::OpOr, + /* const eval */ nullptr, }, { /* [260] */ /* num parameters */ 2, - /* num template types */ 0, + /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[689], - /* return matcher indices */ &kMatcherIndices[39], + /* template types */ &kTemplateTypes[15], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[651], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::OpOr, + /* const eval */ nullptr, }, { /* [261] */ /* num parameters */ 2, /* num template types */ 1, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[25], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[687], - /* return matcher indices */ &kMatcherIndices[1], + /* num template numbers */ 1, + /* template types */ &kTemplateTypes[15], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[655], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::OpOr, + /* const eval */ nullptr, }, { /* [262] */ /* num parameters */ 2, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[25], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[685], - /* return matcher indices */ &kMatcherIndices[30], + /* template types */ &kTemplateTypes[15], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[663], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::OpOr, + /* const eval */ nullptr, }, { /* [263] */ /* num parameters */ 2, - /* num template types */ 1, + /* num template types */ 0, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[14], + /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[645], - /* return matcher indices */ &kMatcherIndices[1], + /* parameters */ &kParameters[667], + /* return matcher indices */ &kMatcherIndices[20], /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::OpShiftLeft, + /* const eval */ &ConstEval::OpAnd, }, { /* [264] */ /* num parameters */ 2, - /* num template types */ 1, + /* num template types */ 0, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[14], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[641], - /* return matcher indices */ &kMatcherIndices[30], + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[673], + /* return matcher indices */ &kMatcherIndices[42], /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::OpShiftLeft, + /* const eval */ &ConstEval::OpAnd, }, { /* [265] */ /* num parameters */ 2, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[24], + /* template types */ &kTemplateTypes[10], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[637], + /* parameters */ &kParameters[675], /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::OpShiftLeft, + /* const eval */ &ConstEval::OpAnd, }, { /* [266] */ /* num parameters */ 2, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[24], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[633], - /* return matcher indices */ &kMatcherIndices[30], + /* template types */ &kTemplateTypes[10], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[677], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::OpShiftLeft, + /* const eval */ &ConstEval::OpAnd, }, { /* [267] */ - /* num parameters */ 3, - /* num template types */ 1, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[477], - /* return matcher indices */ &kMatcherIndices[1], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, - }, - { - /* [268] */ - /* num parameters */ 3, - /* num template types */ 1, - /* num template numbers */ 1, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[480], - /* return matcher indices */ &kMatcherIndices[30], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, - }, - { - /* [269] */ - /* num parameters */ 3, - /* num template types */ 1, - /* num template numbers */ 1, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[483], - /* return matcher indices */ &kMatcherIndices[30], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, - }, - { - /* [270] */ - /* num parameters */ 0, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[1016], - /* return matcher indices */ &kMatcherIndices[118], - /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::Zero, - }, - { - /* [271] */ - /* num parameters */ 1, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[941], - /* return matcher indices */ &kMatcherIndices[118], - /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::Identity, - }, - { - /* [272] */ - /* num parameters */ 1, - /* num template types */ 1, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[20], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[942], - /* return matcher indices */ &kMatcherIndices[118], - /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::Conv, - }, - { - /* [273] */ /* num parameters */ 0, /* num template types */ 0, /* num template numbers */ 0, @@ -11520,7 +11448,7 @@ constexpr OverloadInfo kOverloads[] = { /* const eval */ &ConstEval::Zero, }, { - /* [274] */ + /* [268] */ /* num parameters */ 1, /* num template types */ 0, /* num template numbers */ 0, @@ -11532,11 +11460,11 @@ constexpr OverloadInfo kOverloads[] = { /* const eval */ &ConstEval::Identity, }, { - /* [275] */ + /* [269] */ /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[19], + /* template types */ &kTemplateTypes[20], /* template numbers */ &kTemplateNumbers[10], /* parameters */ &kParameters[945], /* return matcher indices */ &kMatcherIndices[20], @@ -11544,79 +11472,43 @@ constexpr OverloadInfo kOverloads[] = { /* const eval */ &ConstEval::Conv, }, { - /* [276] */ + /* [270] */ /* num parameters */ 0, /* num template types */ 0, /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], /* parameters */ &kParameters[1016], - /* return matcher indices */ &kMatcherIndices[34], + /* return matcher indices */ &kMatcherIndices[116], /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::Zero, }, { - /* [277] */ + /* [271] */ /* num parameters */ 1, /* num template types */ 0, /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[932], - /* return matcher indices */ &kMatcherIndices[34], + /* parameters */ &kParameters[941], + /* return matcher indices */ &kMatcherIndices[116], /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::Identity, }, { - /* [278] */ + /* [272] */ /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[23], + /* template types */ &kTemplateTypes[21], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[933], - /* return matcher indices */ &kMatcherIndices[34], + /* parameters */ &kParameters[942], + /* return matcher indices */ &kMatcherIndices[116], /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::Conv, }, { - /* [279] */ - /* num parameters */ 0, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[1016], - /* return matcher indices */ &kMatcherIndices[35], - /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::Zero, - }, - { - /* [280] */ - /* num parameters */ 1, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[935], - /* return matcher indices */ &kMatcherIndices[35], - /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::Identity, - }, - { - /* [281] */ - /* num parameters */ 1, - /* num template types */ 1, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[22], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[936], - /* return matcher indices */ &kMatcherIndices[35], - /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::Conv, - }, - { - /* [282] */ + /* [273] */ /* num parameters */ 0, /* num template types */ 0, /* num template numbers */ 0, @@ -11628,7 +11520,7 @@ constexpr OverloadInfo kOverloads[] = { /* const eval */ &ConstEval::Zero, }, { - /* [283] */ + /* [274] */ /* num parameters */ 1, /* num template types */ 0, /* num template numbers */ 0, @@ -11639,15 +11531,123 @@ constexpr OverloadInfo kOverloads[] = { /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::Identity, }, + { + /* [275] */ + /* num parameters */ 1, + /* num template types */ 1, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[22], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[939], + /* return matcher indices */ &kMatcherIndices[4], + /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::Conv, + }, + { + /* [276] */ + /* num parameters */ 3, + /* num template types */ 1, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[16], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[456], + /* return matcher indices */ &kMatcherIndices[1], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::select_bool, + }, + { + /* [277] */ + /* num parameters */ 3, + /* num template types */ 1, + /* num template numbers */ 1, + /* template types */ &kTemplateTypes[16], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[549], + /* return matcher indices */ &kMatcherIndices[33], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::select_bool, + }, + { + /* [278] */ + /* num parameters */ 3, + /* num template types */ 1, + /* num template numbers */ 1, + /* template types */ &kTemplateTypes[16], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[552], + /* return matcher indices */ &kMatcherIndices[33], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::select_boolvec, + }, + { + /* [279] */ + /* num parameters */ 0, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[1016], + /* return matcher indices */ &kMatcherIndices[32], + /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::Zero, + }, + { + /* [280] */ + /* num parameters */ 1, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[935], + /* return matcher indices */ &kMatcherIndices[32], + /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::Identity, + }, + { + /* [281] */ + /* num parameters */ 1, + /* num template types */ 1, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[23], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[936], + /* return matcher indices */ &kMatcherIndices[32], + /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::Conv, + }, + { + /* [282] */ + /* num parameters */ 0, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[1016], + /* return matcher indices */ &kMatcherIndices[31], + /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::Zero, + }, + { + /* [283] */ + /* num parameters */ 1, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[932], + /* return matcher indices */ &kMatcherIndices[31], + /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::Identity, + }, { /* [284] */ /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[21], + /* template types */ &kTemplateTypes[24], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[939], - /* return matcher indices */ &kMatcherIndices[4], + /* parameters */ &kParameters[933], + /* return matcher indices */ &kMatcherIndices[31], /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::Conv, }, @@ -11656,9 +11656,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 3, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[16], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[546], + /* parameters */ &kParameters[477], /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, @@ -11668,10 +11668,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 3, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[16], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[549], - /* return matcher indices */ &kMatcherIndices[30], + /* template types */ &kTemplateTypes[11], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[480], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -11680,36 +11680,36 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 3, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[16], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[552], - /* return matcher indices */ &kMatcherIndices[30], + /* template types */ &kTemplateTypes[11], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[483], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [288] */ /* num parameters */ 1, - /* num template types */ 1, + /* num template types */ 0, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[912], - /* return matcher indices */ &kMatcherIndices[1], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, + /* parameters */ &kParameters[868], + /* return matcher indices */ &kMatcherIndices[20], + /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::OpNot, }, { /* [289] */ /* num parameters */ 1, - /* num template types */ 1, + /* num template types */ 0, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[913], - /* return matcher indices */ &kMatcherIndices[30], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[869], + /* return matcher indices */ &kMatcherIndices[42], + /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::OpNot, }, { /* [290] */ @@ -11718,7 +11718,7 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[827], + /* parameters */ &kParameters[898], /* return matcher indices */ &kMatcherIndices[4], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), /* const eval */ nullptr, @@ -11729,34 +11729,34 @@ constexpr OverloadInfo kOverloads[] = { /* num template types */ 0, /* num template numbers */ 1, /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[826], - /* return matcher indices */ &kMatcherIndices[60], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[897], + /* return matcher indices */ &kMatcherIndices[63], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), /* const eval */ nullptr, }, { /* [292] */ /* num parameters */ 1, - /* num template types */ 0, + /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[836], - /* return matcher indices */ &kMatcherIndices[4], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), + /* parameters */ &kParameters[900], + /* return matcher indices */ &kMatcherIndices[173], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [293] */ /* num parameters */ 1, - /* num template types */ 0, + /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[837], - /* return matcher indices */ &kMatcherIndices[60], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), + /* template types */ &kTemplateTypes[11], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[899], + /* return matcher indices */ &kMatcherIndices[81], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { @@ -11766,7 +11766,7 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[838], + /* parameters */ &kParameters[894], /* return matcher indices */ &kMatcherIndices[4], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), /* const eval */ nullptr, @@ -11777,9 +11777,9 @@ constexpr OverloadInfo kOverloads[] = { /* num template types */ 0, /* num template numbers */ 1, /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[839], - /* return matcher indices */ &kMatcherIndices[60], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[893], + /* return matcher indices */ &kMatcherIndices[63], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), /* const eval */ nullptr, }, @@ -11801,9 +11801,9 @@ constexpr OverloadInfo kOverloads[] = { /* num template types */ 1, /* num template numbers */ 1, /* template types */ &kTemplateTypes[14], - /* template numbers */ &kTemplateNumbers[5], + /* template numbers */ &kTemplateNumbers[6], /* parameters */ &kParameters[427], - /* return matcher indices */ &kMatcherIndices[30], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -11812,9 +11812,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[840], + /* parameters */ &kParameters[892], /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, @@ -11824,10 +11824,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[844], - /* return matcher indices */ &kMatcherIndices[30], + /* template types */ &kTemplateTypes[11], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[891], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -11836,9 +11836,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 2, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[795], + /* parameters */ &kParameters[607], /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, @@ -11848,10 +11848,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 2, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[793], - /* return matcher indices */ &kMatcherIndices[30], + /* template types */ &kTemplateTypes[11], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[625], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -11860,9 +11860,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[856], + /* parameters */ &kParameters[890], /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, @@ -11872,9 +11872,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[858], + /* template types */ &kTemplateTypes[11], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[889], /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, @@ -11884,9 +11884,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[859], + /* parameters */ &kParameters[888], /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, @@ -11896,10 +11896,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[860], - /* return matcher indices */ &kMatcherIndices[30], + /* template types */ &kTemplateTypes[11], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[887], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -11908,9 +11908,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[861], + /* parameters */ &kParameters[886], /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, @@ -11920,10 +11920,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[862], - /* return matcher indices */ &kMatcherIndices[30], + /* template types */ &kTemplateTypes[11], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[885], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -11934,7 +11934,7 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[15], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[779], + /* parameters */ &kParameters[773], /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, @@ -11945,9 +11945,9 @@ constexpr OverloadInfo kOverloads[] = { /* num template types */ 1, /* num template numbers */ 1, /* template types */ &kTemplateTypes[15], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[777], - /* return matcher indices */ &kMatcherIndices[30], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[771], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -11958,7 +11958,7 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[15], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[775], + /* parameters */ &kParameters[769], /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, @@ -11969,9 +11969,9 @@ constexpr OverloadInfo kOverloads[] = { /* num template types */ 1, /* num template numbers */ 1, /* template types */ &kTemplateTypes[15], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[773], - /* return matcher indices */ &kMatcherIndices[30], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[767], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -11980,10 +11980,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[811], - /* return matcher indices */ &kMatcherIndices[177], + /* parameters */ &kParameters[903], + /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -11992,10 +11992,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[810], - /* return matcher indices */ &kMatcherIndices[78], + /* template types */ &kTemplateTypes[11], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[902], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -12004,10 +12004,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[863], - /* return matcher indices */ &kMatcherIndices[139], + /* parameters */ &kParameters[884], + /* return matcher indices */ &kMatcherIndices[137], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -12016,130 +12016,130 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[864], - /* return matcher indices */ &kMatcherIndices[99], + /* template types */ &kTemplateTypes[11], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[883], + /* return matcher indices */ &kMatcherIndices[102], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [316] */ - /* num parameters */ 1, + /* num parameters */ 3, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[937], + /* parameters */ &kParameters[519], /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [317] */ - /* num parameters */ 1, + /* num parameters */ 3, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[955], - /* return matcher indices */ &kMatcherIndices[30], + /* template types */ &kTemplateTypes[11], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[522], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [318] */ /* num parameters */ 1, - /* num template types */ 1, + /* num template types */ 0, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[959], - /* return matcher indices */ &kMatcherIndices[1], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* parameters */ &kParameters[896], + /* return matcher indices */ &kMatcherIndices[4], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), /* const eval */ nullptr, }, { /* [319] */ /* num parameters */ 1, - /* num template types */ 1, + /* num template types */ 0, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[993], - /* return matcher indices */ &kMatcherIndices[30], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[895], + /* return matcher indices */ &kMatcherIndices[63], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), /* const eval */ nullptr, }, { /* [320] */ /* num parameters */ 1, - /* num template types */ 0, + /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[999], - /* return matcher indices */ &kMatcherIndices[20], + /* parameters */ &kParameters[905], + /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [321] */ /* num parameters */ 1, - /* num template types */ 0, + /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[1014], - /* return matcher indices */ &kMatcherIndices[20], + /* template types */ &kTemplateTypes[11], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[904], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [322] */ /* num parameters */ 1, - /* num template types */ 0, + /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], + /* template types */ &kTemplateTypes[14], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[1013], - /* return matcher indices */ &kMatcherIndices[20], + /* parameters */ &kParameters[909], + /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [323] */ /* num parameters */ 1, - /* num template types */ 0, + /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[1008], - /* return matcher indices */ &kMatcherIndices[20], + /* template types */ &kTemplateTypes[14], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[908], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [324] */ - /* num parameters */ 1, + /* num parameters */ 3, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[14], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[1002], + /* parameters */ &kParameters[510], /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [325] */ - /* num parameters */ 1, + /* num parameters */ 3, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[1001], - /* return matcher indices */ &kMatcherIndices[30], + /* template types */ &kTemplateTypes[14], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[513], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -12148,9 +12148,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[995], + /* parameters */ &kParameters[911], /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, @@ -12160,10 +12160,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[989], - /* return matcher indices */ &kMatcherIndices[30], + /* template types */ &kTemplateTypes[11], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[910], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -12172,9 +12172,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 2, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[755], + /* parameters */ &kParameters[691], /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, @@ -12184,10 +12184,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 2, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[753], - /* return matcher indices */ &kMatcherIndices[30], + /* template types */ &kTemplateTypes[11], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[689], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -12196,9 +12196,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[878], + /* parameters */ &kParameters[876], /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, @@ -12208,10 +12208,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[879], - /* return matcher indices */ &kMatcherIndices[30], + /* template types */ &kTemplateTypes[11], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[875], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -12220,9 +12220,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[983], + /* parameters */ &kParameters[874], /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, @@ -12232,36 +12232,36 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[972], - /* return matcher indices */ &kMatcherIndices[30], + /* template types */ &kTemplateTypes[11], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[912], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [334] */ - /* num parameters */ 2, - /* num template types */ 1, + /* num parameters */ 1, + /* num template types */ 0, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[12], + /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[613], - /* return matcher indices */ &kMatcherIndices[1], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::atan2, + /* parameters */ &kParameters[914], + /* return matcher indices */ &kMatcherIndices[4], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), + /* const eval */ nullptr, }, { /* [335] */ - /* num parameters */ 2, - /* num template types */ 1, + /* num parameters */ 1, + /* num template types */ 0, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[12], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[615], - /* return matcher indices */ &kMatcherIndices[30], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::atan2, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[913], + /* return matcher indices */ &kMatcherIndices[63], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), + /* const eval */ nullptr, }, { /* [336] */ @@ -12270,7 +12270,7 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[14], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[880], + /* parameters */ &kParameters[867], /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, @@ -12281,9 +12281,9 @@ constexpr OverloadInfo kOverloads[] = { /* num template types */ 1, /* num template numbers */ 1, /* template types */ &kTemplateTypes[14], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[898], - /* return matcher indices */ &kMatcherIndices[30], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[866], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -12292,9 +12292,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[899], + /* parameters */ &kParameters[865], /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, @@ -12304,10 +12304,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[900], - /* return matcher indices */ &kMatcherIndices[30], + /* template types */ &kTemplateTypes[11], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[864], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -12316,9 +12316,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[901], + /* parameters */ &kParameters[863], /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, @@ -12328,35 +12328,35 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[902], - /* return matcher indices */ &kMatcherIndices[30], + /* template types */ &kTemplateTypes[11], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[862], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [342] */ /* num parameters */ 1, - /* num template types */ 1, + /* num template types */ 0, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[813], - /* return matcher indices */ &kMatcherIndices[1], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* parameters */ &kParameters[916], + /* return matcher indices */ &kMatcherIndices[4], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), /* const eval */ nullptr, }, { /* [343] */ /* num parameters */ 1, - /* num template types */ 1, + /* num template types */ 0, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[812], - /* return matcher indices */ &kMatcherIndices[30], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[915], + /* return matcher indices */ &kMatcherIndices[63], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), /* const eval */ nullptr, }, { @@ -12364,9 +12364,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[903], + /* parameters */ &kParameters[861], /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, @@ -12376,10 +12376,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[904], - /* return matcher indices */ &kMatcherIndices[30], + /* template types */ &kTemplateTypes[11], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[860], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -12388,9 +12388,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[905], + /* parameters */ &kParameters[859], /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, @@ -12400,10 +12400,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[906], - /* return matcher indices */ &kMatcherIndices[30], + /* template types */ &kTemplateTypes[11], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[858], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -12412,9 +12412,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[907], + /* parameters */ &kParameters[856], /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, @@ -12424,10 +12424,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[908], - /* return matcher indices */ &kMatcherIndices[30], + /* template types */ &kTemplateTypes[11], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[855], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -12436,7 +12436,7 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 3, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], /* parameters */ &kParameters[573], /* return matcher indices */ &kMatcherIndices[1], @@ -12448,10 +12448,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 3, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[5], + /* template types */ &kTemplateTypes[11], + /* template numbers */ &kTemplateNumbers[6], /* parameters */ &kParameters[576], - /* return matcher indices */ &kMatcherIndices[30], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -12460,9 +12460,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[909], + /* parameters */ &kParameters[854], /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, @@ -12472,10 +12472,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[910], - /* return matcher indices */ &kMatcherIndices[30], + /* template types */ &kTemplateTypes[11], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[853], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -12484,9 +12484,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 2, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[683], + /* parameters */ &kParameters[603], /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, @@ -12496,35 +12496,35 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 2, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[681], - /* return matcher indices */ &kMatcherIndices[30], + /* template types */ &kTemplateTypes[11], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[601], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [356] */ /* num parameters */ 1, - /* num template types */ 1, + /* num template types */ 0, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[969], - /* return matcher indices */ &kMatcherIndices[1], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* parameters */ &kParameters[919], + /* return matcher indices */ &kMatcherIndices[4], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), /* const eval */ nullptr, }, { /* [357] */ /* num parameters */ 1, - /* num template types */ 1, + /* num template types */ 0, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[958], - /* return matcher indices */ &kMatcherIndices[30], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[917], + /* return matcher indices */ &kMatcherIndices[63], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), /* const eval */ nullptr, }, { @@ -12532,9 +12532,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[15], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[916], + /* parameters */ &kParameters[851], /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, @@ -12544,10 +12544,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[15], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[934], - /* return matcher indices */ &kMatcherIndices[30], + /* template types */ &kTemplateTypes[11], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[850], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -12556,9 +12556,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[869], + /* parameters */ &kParameters[849], /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, @@ -12568,35 +12568,35 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[996], - /* return matcher indices */ &kMatcherIndices[30], + /* template types */ &kTemplateTypes[11], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[848], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [362] */ /* num parameters */ 1, - /* num template types */ 1, + /* num template types */ 0, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[867], - /* return matcher indices */ &kMatcherIndices[1], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* parameters */ &kParameters[921], + /* return matcher indices */ &kMatcherIndices[4], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), /* const eval */ nullptr, }, { /* [363] */ /* num parameters */ 1, - /* num template types */ 1, + /* num template types */ 0, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[855], - /* return matcher indices */ &kMatcherIndices[30], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[920], + /* return matcher indices */ &kMatcherIndices[63], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), /* const eval */ nullptr, }, { @@ -12604,9 +12604,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[984], + /* parameters */ &kParameters[846], /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, @@ -12616,178 +12616,178 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[975], - /* return matcher indices */ &kMatcherIndices[30], + /* template types */ &kTemplateTypes[11], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[844], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [366] */ - /* num parameters */ 3, - /* num template types */ 1, + /* num parameters */ 1, + /* num template types */ 0, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[11], + /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[456], - /* return matcher indices */ &kMatcherIndices[1], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::clamp, + /* parameters */ &kParameters[923], + /* return matcher indices */ &kMatcherIndices[4], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), + /* const eval */ nullptr, }, { /* [367] */ - /* num parameters */ 3, - /* num template types */ 1, + /* num parameters */ 1, + /* num template types */ 0, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[11], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[522], - /* return matcher indices */ &kMatcherIndices[30], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::clamp, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[922], + /* return matcher indices */ &kMatcherIndices[63], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), + /* const eval */ nullptr, }, { /* [368] */ - /* num parameters */ 1, + /* num parameters */ 2, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[14], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[854], + /* parameters */ &kParameters[749], /* return matcher indices */ &kMatcherIndices[1], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [369] */ - /* num parameters */ 1, + /* num parameters */ 2, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[853], - /* return matcher indices */ &kMatcherIndices[30], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* template types */ &kTemplateTypes[14], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[751], + /* return matcher indices */ &kMatcherIndices[33], + /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [370] */ /* num parameters */ 1, - /* num template types */ 1, + /* num template types */ 0, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[852], - /* return matcher indices */ &kMatcherIndices[1], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* parameters */ &kParameters[925], + /* return matcher indices */ &kMatcherIndices[4], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), /* const eval */ nullptr, }, { /* [371] */ /* num parameters */ 1, - /* num template types */ 1, + /* num template types */ 0, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[851], - /* return matcher indices */ &kMatcherIndices[30], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[924], + /* return matcher indices */ &kMatcherIndices[63], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), /* const eval */ nullptr, }, { /* [372] */ - /* num parameters */ 1, - /* num template types */ 1, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[14], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[850], - /* return matcher indices */ &kMatcherIndices[1], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, - }, - { - /* [373] */ - /* num parameters */ 1, - /* num template types */ 1, - /* num template numbers */ 1, - /* template types */ &kTemplateTypes[14], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[849], - /* return matcher indices */ &kMatcherIndices[30], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, - }, - { - /* [374] */ - /* num parameters */ 1, - /* num template types */ 1, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[14], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[848], - /* return matcher indices */ &kMatcherIndices[1], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, - }, - { - /* [375] */ - /* num parameters */ 1, - /* num template types */ 1, - /* num template numbers */ 1, - /* template types */ &kTemplateTypes[14], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[847], - /* return matcher indices */ &kMatcherIndices[30], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, - }, - { - /* [376] */ - /* num parameters */ 1, - /* num template types */ 1, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[14], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[846], - /* return matcher indices */ &kMatcherIndices[1], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, - }, - { - /* [377] */ - /* num parameters */ 1, - /* num template types */ 1, - /* num template numbers */ 1, - /* template types */ &kTemplateTypes[14], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[845], - /* return matcher indices */ &kMatcherIndices[30], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, - }, - { - /* [378] */ - /* num parameters */ 3, + /* num parameters */ 2, /* num template types */ 1, /* num template numbers */ 0, /* template types */ &kTemplateTypes[13], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[507], + /* parameters */ &kParameters[721], + /* return matcher indices */ &kMatcherIndices[20], + /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::OpGreaterThanEqual, + }, + { + /* [373] */ + /* num parameters */ 2, + /* num template types */ 1, + /* num template numbers */ 1, + /* template types */ &kTemplateTypes[15], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[723], + /* return matcher indices */ &kMatcherIndices[42], + /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::OpGreaterThanEqual, + }, + { + /* [374] */ + /* num parameters */ 2, + /* num template types */ 1, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[13], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[717], + /* return matcher indices */ &kMatcherIndices[20], + /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::OpLessThanEqual, + }, + { + /* [375] */ + /* num parameters */ 2, + /* num template types */ 1, + /* num template numbers */ 1, + /* template types */ &kTemplateTypes[13], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[719], + /* return matcher indices */ &kMatcherIndices[42], + /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::OpLessThanEqual, + }, + { + /* [376] */ + /* num parameters */ 2, + /* num template types */ 1, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[13], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[713], + /* return matcher indices */ &kMatcherIndices[20], + /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::OpGreaterThan, + }, + { + /* [377] */ + /* num parameters */ 2, + /* num template types */ 1, + /* num template numbers */ 1, + /* template types */ &kTemplateTypes[13], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[715], + /* return matcher indices */ &kMatcherIndices[42], + /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::OpGreaterThan, + }, + { + /* [378] */ + /* num parameters */ 2, + /* num template types */ 1, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[11], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[735], /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [379] */ - /* num parameters */ 3, + /* num parameters */ 2, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[501], - /* return matcher indices */ &kMatcherIndices[30], + /* template types */ &kTemplateTypes[11], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[733], + /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -12796,9 +12796,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[815], + /* parameters */ &kParameters[928], /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, @@ -12808,10 +12808,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[814], - /* return matcher indices */ &kMatcherIndices[30], + /* template types */ &kTemplateTypes[11], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[927], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -12820,9 +12820,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[14], + /* template types */ &kTemplateTypes[15], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[817], + /* parameters */ &kParameters[1014], /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, @@ -12832,10 +12832,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[14], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[816], - /* return matcher indices */ &kMatcherIndices[30], + /* template types */ &kTemplateTypes[15], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[1008], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -12846,7 +12846,7 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[14], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[819], + /* parameters */ &kParameters[930], /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, @@ -12857,34 +12857,34 @@ constexpr OverloadInfo kOverloads[] = { /* num template types */ 1, /* num template numbers */ 1, /* template types */ &kTemplateTypes[14], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[818], - /* return matcher indices */ &kMatcherIndices[30], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[929], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [386] */ - /* num parameters */ 2, + /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, /* template types */ &kTemplateTypes[14], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[629], + /* parameters */ &kParameters[943], /* return matcher indices */ &kMatcherIndices[1], - /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [387] */ - /* num parameters */ 2, + /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 1, /* template types */ &kTemplateTypes[14], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[625], - /* return matcher indices */ &kMatcherIndices[30], - /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[931], + /* return matcher indices */ &kMatcherIndices[33], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { @@ -12894,8 +12894,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[17], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[882], - /* return matcher indices */ &kMatcherIndices[34], + /* parameters */ &kParameters[987], + /* return matcher indices */ &kMatcherIndices[31], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -12906,67 +12906,67 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[881], - /* return matcher indices */ &kMatcherIndices[34], + /* parameters */ &kParameters[807], + /* return matcher indices */ &kMatcherIndices[31], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [390] */ - /* num parameters */ 3, + /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, /* template types */ &kTemplateTypes[14], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[567], + /* parameters */ &kParameters[949], /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [391] */ - /* num parameters */ 3, + /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 1, /* template types */ &kTemplateTypes[14], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[558], - /* return matcher indices */ &kMatcherIndices[30], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[946], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [392] */ - /* num parameters */ 1, + /* num parameters */ 2, /* num template types */ 1, /* num template numbers */ 0, /* template types */ &kTemplateTypes[13], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[821], - /* return matcher indices */ &kMatcherIndices[1], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, + /* parameters */ &kParameters[711], + /* return matcher indices */ &kMatcherIndices[20], + /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::OpLessThan, }, { /* [393] */ - /* num parameters */ 1, + /* num parameters */ 2, /* num template types */ 1, /* num template numbers */ 1, /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[820], - /* return matcher indices */ &kMatcherIndices[30], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[789], + /* return matcher indices */ &kMatcherIndices[42], + /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::OpLessThan, }, { /* [394] */ /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[823], + /* parameters */ &kParameters[958], /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, @@ -12976,83 +12976,83 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[822], - /* return matcher indices */ &kMatcherIndices[30], + /* template types */ &kTemplateTypes[11], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[957], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [396] */ /* num parameters */ 1, - /* num template types */ 0, + /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[825], - /* return matcher indices */ &kMatcherIndices[4], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), + /* parameters */ &kParameters[960], + /* return matcher indices */ &kMatcherIndices[1], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [397] */ /* num parameters */ 1, - /* num template types */ 0, + /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[824], - /* return matcher indices */ &kMatcherIndices[60], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), + /* template types */ &kTemplateTypes[11], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[959], + /* return matcher indices */ &kMatcherIndices[33], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [398] */ - /* num parameters */ 1, - /* num template types */ 0, + /* num parameters */ 3, + /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], + /* template types */ &kTemplateTypes[13], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[809], - /* return matcher indices */ &kMatcherIndices[4], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), - /* const eval */ nullptr, + /* parameters */ &kParameters[471], + /* return matcher indices */ &kMatcherIndices[1], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::clamp, }, { /* [399] */ - /* num parameters */ 1, - /* num template types */ 0, + /* num parameters */ 3, + /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[920], - /* return matcher indices */ &kMatcherIndices[60], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), - /* const eval */ nullptr, + /* template types */ &kTemplateTypes[13], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[474], + /* return matcher indices */ &kMatcherIndices[33], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::clamp, }, { /* [400] */ /* num parameters */ 1, - /* num template types */ 0, + /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[829], - /* return matcher indices */ &kMatcherIndices[4], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), + /* parameters */ &kParameters[970], + /* return matcher indices */ &kMatcherIndices[1], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [401] */ /* num parameters */ 1, - /* num template types */ 0, + /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[828], - /* return matcher indices */ &kMatcherIndices[60], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), + /* template types */ &kTemplateTypes[11], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[969], + /* return matcher indices */ &kMatcherIndices[33], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { @@ -13062,8 +13062,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[591], - /* return matcher indices */ &kMatcherIndices[135], + /* parameters */ &kParameters[537], + /* return matcher indices */ &kMatcherIndices[105], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -13074,154 +13074,154 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[588], - /* return matcher indices */ &kMatcherIndices[135], + /* parameters */ &kParameters[540], + /* return matcher indices */ &kMatcherIndices[105], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [404] */ /* num parameters */ 1, - /* num template types */ 0, + /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[831], - /* return matcher indices */ &kMatcherIndices[4], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), + /* parameters */ &kParameters[972], + /* return matcher indices */ &kMatcherIndices[1], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [405] */ /* num parameters */ 1, - /* num template types */ 0, + /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[830], - /* return matcher indices */ &kMatcherIndices[60], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), + /* template types */ &kTemplateTypes[11], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[971], + /* return matcher indices */ &kMatcherIndices[33], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [406] */ - /* num parameters */ 1, - /* num template types */ 0, + /* num parameters */ 2, + /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], + /* template types */ &kTemplateTypes[12], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[833], - /* return matcher indices */ &kMatcherIndices[4], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), - /* const eval */ nullptr, + /* parameters */ &kParameters[781], + /* return matcher indices */ &kMatcherIndices[1], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::atan2, }, { /* [407] */ - /* num parameters */ 1, - /* num template types */ 0, + /* num parameters */ 2, + /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[832], - /* return matcher indices */ &kMatcherIndices[60], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), - /* const eval */ nullptr, + /* template types */ &kTemplateTypes[12], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[779], + /* return matcher indices */ &kMatcherIndices[33], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ &ConstEval::atan2, }, { /* [408] */ /* num parameters */ 2, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[11], + /* template types */ &kTemplateTypes[16], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[651], + /* parameters */ &kParameters[707], /* return matcher indices */ &kMatcherIndices[20], /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::OpGreaterThanEqual, + /* const eval */ &ConstEval::OpNotEqual, }, { /* [409] */ /* num parameters */ 2, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[15], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[647], - /* return matcher indices */ &kMatcherIndices[39], + /* template types */ &kTemplateTypes[16], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[709], + /* return matcher indices */ &kMatcherIndices[42], /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::OpGreaterThanEqual, + /* const eval */ &ConstEval::OpNotEqual, }, { /* [410] */ /* num parameters */ 2, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[11], + /* template types */ &kTemplateTypes[16], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[659], + /* parameters */ &kParameters[703], /* return matcher indices */ &kMatcherIndices[20], /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::OpLessThanEqual, + /* const eval */ &ConstEval::OpEqual, }, { /* [411] */ /* num parameters */ 2, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[11], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[655], - /* return matcher indices */ &kMatcherIndices[39], + /* template types */ &kTemplateTypes[16], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[705], + /* return matcher indices */ &kMatcherIndices[42], /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::OpLessThanEqual, + /* const eval */ &ConstEval::OpEqual, }, { /* [412] */ - /* num parameters */ 2, + /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[665], - /* return matcher indices */ &kMatcherIndices[20], - /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::OpGreaterThan, + /* parameters */ &kParameters[974], + /* return matcher indices */ &kMatcherIndices[1], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ nullptr, }, { /* [413] */ - /* num parameters */ 2, + /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 1, /* template types */ &kTemplateTypes[11], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[663], - /* return matcher indices */ &kMatcherIndices[39], - /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::OpGreaterThan, + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[973], + /* return matcher indices */ &kMatcherIndices[33], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ nullptr, }, { /* [414] */ - /* num parameters */ 2, + /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[669], - /* return matcher indices */ &kMatcherIndices[20], - /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::OpLessThan, + /* parameters */ &kParameters[976], + /* return matcher indices */ &kMatcherIndices[1], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ nullptr, }, { /* [415] */ - /* num parameters */ 2, + /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 1, /* template types */ &kTemplateTypes[11], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[667], - /* return matcher indices */ &kMatcherIndices[39], - /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::OpLessThan, + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[975], + /* return matcher indices */ &kMatcherIndices[33], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ nullptr, }, { /* [416] */ @@ -13230,10 +13230,10 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[10], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[671], - /* return matcher indices */ &kMatcherIndices[20], + /* parameters */ &kParameters[805], + /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::OpNotEqual, + /* const eval */ &ConstEval::OpXor, }, { /* [417] */ @@ -13241,130 +13241,130 @@ constexpr OverloadInfo kOverloads[] = { /* num template types */ 1, /* num template numbers */ 1, /* template types */ &kTemplateTypes[10], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[597], - /* return matcher indices */ &kMatcherIndices[39], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[665], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::OpNotEqual, + /* const eval */ &ConstEval::OpXor, }, { /* [418] */ - /* num parameters */ 2, + /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[10], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[675], - /* return matcher indices */ &kMatcherIndices[20], - /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::OpEqual, + /* parameters */ &kParameters[984], + /* return matcher indices */ &kMatcherIndices[1], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ nullptr, }, { /* [419] */ - /* num parameters */ 2, + /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[10], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[673], - /* return matcher indices */ &kMatcherIndices[39], - /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::OpEqual, + /* template types */ &kTemplateTypes[11], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[983], + /* return matcher indices */ &kMatcherIndices[33], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ nullptr, }, { /* [420] */ /* num parameters */ 1, - /* num template types */ 1, + /* num template types */ 0, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[843], - /* return matcher indices */ &kMatcherIndices[1], + /* parameters */ &kParameters[990], + /* return matcher indices */ &kMatcherIndices[20], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [421] */ /* num parameters */ 1, - /* num template types */ 1, + /* num template types */ 0, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[842], - /* return matcher indices */ &kMatcherIndices[30], + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[989], + /* return matcher indices */ &kMatcherIndices[20], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [422] */ - /* num parameters */ 2, - /* num template types */ 1, + /* num parameters */ 1, + /* num template types */ 0, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[25], + /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[703], - /* return matcher indices */ &kMatcherIndices[1], - /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::OpXor, + /* parameters */ &kParameters[995], + /* return matcher indices */ &kMatcherIndices[20], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ nullptr, }, { /* [423] */ - /* num parameters */ 2, - /* num template types */ 1, + /* num parameters */ 1, + /* num template types */ 0, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[25], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[701], - /* return matcher indices */ &kMatcherIndices[30], - /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::OpXor, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[993], + /* return matcher indices */ &kMatcherIndices[20], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ nullptr, }, { /* [424] */ - /* num parameters */ 2, + /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[799], + /* parameters */ &kParameters[1001], /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [425] */ - /* num parameters */ 2, + /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[801], - /* return matcher indices */ &kMatcherIndices[1], + /* template types */ &kTemplateTypes[11], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[996], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [426] */ /* num parameters */ 1, - /* num template types */ 0, + /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], + /* template types */ &kTemplateTypes[11], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[835], - /* return matcher indices */ &kMatcherIndices[4], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), + /* parameters */ &kParameters[1007], + /* return matcher indices */ &kMatcherIndices[1], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [427] */ /* num parameters */ 1, - /* num template types */ 0, + /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[834], - /* return matcher indices */ &kMatcherIndices[60], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline), + /* template types */ &kTemplateTypes[11], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[1002], + /* return matcher indices */ &kMatcherIndices[33], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { @@ -13385,42 +13385,42 @@ constexpr OverloadInfo kOverloads[] = { /* num template types */ 1, /* num template numbers */ 1, /* template types */ &kTemplateTypes[26], - /* template numbers */ &kTemplateNumbers[5], + /* template numbers */ &kTemplateNumbers[6], /* parameters */ &kParameters[873], - /* return matcher indices */ &kMatcherIndices[30], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::OpUnaryMinus, }, { /* [430] */ /* num parameters */ 1, - /* num template types */ 0, + /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], + /* template types */ &kTemplateTypes[14], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[868], - /* return matcher indices */ &kMatcherIndices[20], - /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::OpNot, + /* parameters */ &kParameters[907], + /* return matcher indices */ &kMatcherIndices[1], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ nullptr, }, { /* [431] */ /* num parameters */ 1, - /* num template types */ 0, + /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[807], - /* return matcher indices */ &kMatcherIndices[39], - /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ &ConstEval::OpNot, + /* template types */ &kTemplateTypes[14], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[906], + /* return matcher indices */ &kMatcherIndices[33], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ nullptr, }, { /* [432] */ /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 0, - /* template types */ &kTemplateTypes[25], + /* template types */ &kTemplateTypes[10], /* template numbers */ &kTemplateNumbers[10], /* parameters */ &kParameters[870], /* return matcher indices */ &kMatcherIndices[1], @@ -13432,10 +13432,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[25], - /* template numbers */ &kTemplateNumbers[5], + /* template types */ &kTemplateTypes[10], + /* template numbers */ &kTemplateNumbers[6], /* parameters */ &kParameters[871], - /* return matcher indices */ &kMatcherIndices[30], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ &ConstEval::OpComplement, }, @@ -13444,33 +13444,33 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 3, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[555], - /* return matcher indices */ &kMatcherIndices[30], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* template types */ &kTemplateTypes[14], + /* template numbers */ &kTemplateNumbers[9], + /* parameters */ &kParameters[528], + /* return matcher indices */ &kMatcherIndices[209], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [435] */ /* num parameters */ 2, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[805], - /* return matcher indices */ &kMatcherIndices[34], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, - }, - { - /* [436] */ - /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 1, /* template types */ &kTemplateTypes[14], /* template numbers */ &kTemplateNumbers[9], - /* parameters */ &kParameters[857], + /* parameters */ &kParameters[659], + /* return matcher indices */ &kMatcherIndices[1], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ nullptr, + }, + { + /* [436] */ + /* num parameters */ 2, + /* num template types */ 1, + /* num template numbers */ 1, + /* template types */ &kTemplateTypes[14], + /* template numbers */ &kTemplateNumbers[9], + /* parameters */ &kParameters[641], /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, @@ -13479,12 +13479,12 @@ constexpr OverloadInfo kOverloads[] = { /* [437] */ /* num parameters */ 2, /* num template types */ 1, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[797], - /* return matcher indices */ &kMatcherIndices[115], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* num template numbers */ 1, + /* template types */ &kTemplateTypes[14], + /* template numbers */ &kTemplateNumbers[9], + /* parameters */ &kParameters[637], + /* return matcher indices */ &kMatcherIndices[1], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { @@ -13492,11 +13492,11 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 2, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[15], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[803], + /* template types */ &kTemplateTypes[14], + /* template numbers */ &kTemplateNumbers[9], + /* parameters */ &kParameters[633], /* return matcher indices */ &kMatcherIndices[1], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { @@ -13506,7 +13506,7 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 1, /* template types */ &kTemplateTypes[14], /* template numbers */ &kTemplateNumbers[9], - /* parameters */ &kParameters[767], + /* parameters */ &kParameters[629], /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, @@ -13518,21 +13518,21 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 1, /* template types */ &kTemplateTypes[14], /* template numbers */ &kTemplateNumbers[9], - /* parameters */ &kParameters[769], + /* parameters */ &kParameters[617], /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [441] */ - /* num parameters */ 1, + /* num parameters */ 2, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[841], + /* template types */ &kTemplateTypes[14], + /* template numbers */ &kTemplateNumbers[9], + /* parameters */ &kParameters[615], /* return matcher indices */ &kMatcherIndices[1], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { @@ -13542,7 +13542,7 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 1, /* template types */ &kTemplateTypes[14], /* template numbers */ &kTemplateNumbers[9], - /* parameters */ &kParameters[771], + /* parameters */ &kParameters[613], /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, @@ -13554,7 +13554,7 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[679], + /* parameters */ &kParameters[697], /* return matcher indices */ &kMatcherIndices[20], /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, @@ -13566,7 +13566,7 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[677], + /* parameters */ &kParameters[699], /* return matcher indices */ &kMatcherIndices[20], /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, @@ -13578,97 +13578,25 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 1, /* template types */ &kTemplateTypes[14], /* template numbers */ &kTemplateNumbers[9], - /* parameters */ &kParameters[781], - /* return matcher indices */ &kMatcherIndices[1], + /* parameters */ &kParameters[611], + /* return matcher indices */ nullptr, /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [446] */ - /* num parameters */ 2, + /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 1, /* template types */ &kTemplateTypes[14], /* template numbers */ &kTemplateNumbers[9], - /* parameters */ &kParameters[783], + /* parameters */ &kParameters[857], /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [447] */ - /* num parameters */ 2, - /* num template types */ 1, - /* num template numbers */ 1, - /* template types */ &kTemplateTypes[14], - /* template numbers */ &kTemplateNumbers[9], - /* parameters */ &kParameters[785], - /* return matcher indices */ &kMatcherIndices[1], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, - }, - { - /* [448] */ - /* num parameters */ 2, - /* num template types */ 1, - /* num template numbers */ 1, - /* template types */ &kTemplateTypes[14], - /* template numbers */ &kTemplateNumbers[9], - /* parameters */ &kParameters[787], - /* return matcher indices */ &kMatcherIndices[1], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, - }, - { - /* [449] */ - /* num parameters */ 2, - /* num template types */ 1, - /* num template numbers */ 1, - /* template types */ &kTemplateTypes[14], - /* template numbers */ &kTemplateNumbers[9], - /* parameters */ &kParameters[789], - /* return matcher indices */ nullptr, - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, - }, - { - /* [450] */ - /* num parameters */ 2, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[599], - /* return matcher indices */ &kMatcherIndices[35], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, - }, - { - /* [451] */ - /* num parameters */ 3, - /* num template types */ 1, - /* num template numbers */ 1, - /* template types */ &kTemplateTypes[14], - /* template numbers */ &kTemplateNumbers[9], - /* parameters */ &kParameters[465], - /* return matcher indices */ &kMatcherIndices[211], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, - }, - { - /* [452] */ - /* num parameters */ 2, - /* num template types */ 1, - /* num template numbers */ 1, - /* template types */ &kTemplateTypes[14], - /* template numbers */ &kTemplateNumbers[9], - /* parameters */ &kParameters[765], - /* return matcher indices */ &kMatcherIndices[1], - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), - /* const eval */ nullptr, - }, - { - /* [453] */ /* num parameters */ 0, /* num template types */ 0, /* num template numbers */ 0, @@ -13680,38 +13608,110 @@ constexpr OverloadInfo kOverloads[] = { /* const eval */ nullptr, }, { - /* [454] */ + /* [448] */ + /* num parameters */ 0, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[1016], + /* return matcher indices */ nullptr, + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline), + /* const eval */ nullptr, + }, + { + /* [449] */ /* num parameters */ 1, /* num template types */ 0, /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[960], + /* parameters */ &kParameters[839], + /* return matcher indices */ &kMatcherIndices[105], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ nullptr, + }, + { + /* [450] */ + /* num parameters */ 1, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[840], + /* return matcher indices */ &kMatcherIndices[105], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ nullptr, + }, + { + /* [451] */ + /* num parameters */ 1, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[841], /* return matcher indices */ &kMatcherIndices[135], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, + { + /* [452] */ + /* num parameters */ 1, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[842], + /* return matcher indices */ &kMatcherIndices[135], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ nullptr, + }, + { + /* [453] */ + /* num parameters */ 1, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[843], + /* return matcher indices */ &kMatcherIndices[135], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ nullptr, + }, + { + /* [454] */ + /* num parameters */ 1, + /* num template types */ 1, + /* num template numbers */ 2, + /* template types */ &kTemplateTypes[11], + /* template numbers */ &kTemplateNumbers[5], + /* parameters */ &kParameters[847], + /* return matcher indices */ &kMatcherIndices[22], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), + /* const eval */ nullptr, + }, { /* [455] */ - /* num parameters */ 1, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[970], - /* return matcher indices */ &kMatcherIndices[135], + /* num parameters */ 3, + /* num template types */ 1, + /* num template numbers */ 1, + /* template types */ &kTemplateTypes[11], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[525], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [456] */ - /* num parameters */ 1, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[971], - /* return matcher indices */ &kMatcherIndices[137], + /* num parameters */ 2, + /* num template types */ 1, + /* num template numbers */ 1, + /* template types */ &kTemplateTypes[11], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[803], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -13722,8 +13722,8 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[973], - /* return matcher indices */ &kMatcherIndices[137], + /* parameters */ &kParameters[877], + /* return matcher indices */ &kMatcherIndices[32], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -13734,44 +13734,44 @@ constexpr OverloadInfo kOverloads[] = { /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[974], - /* return matcher indices */ &kMatcherIndices[137], + /* parameters */ &kParameters[878], + /* return matcher indices */ &kMatcherIndices[32], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [459] */ /* num parameters */ 1, - /* num template types */ 1, - /* num template numbers */ 2, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[6], - /* parameters */ &kParameters[990], - /* return matcher indices */ &kMatcherIndices[22], + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[879], + /* return matcher indices */ &kMatcherIndices[32], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [460] */ - /* num parameters */ 0, + /* num parameters */ 1, /* num template types */ 0, /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[1016], - /* return matcher indices */ nullptr, - /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline), + /* parameters */ &kParameters[881], + /* return matcher indices */ &kMatcherIndices[32], + /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [461] */ - /* num parameters */ 3, + /* num parameters */ 1, /* num template types */ 1, /* num template numbers */ 1, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[525], - /* return matcher indices */ &kMatcherIndices[30], + /* template types */ &kTemplateTypes[11], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[882], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -13779,95 +13779,95 @@ constexpr OverloadInfo kOverloads[] = { /* [462] */ /* num parameters */ 2, /* num template types */ 1, - /* num template numbers */ 1, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[747], - /* return matcher indices */ &kMatcherIndices[30], + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[11], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[743], + /* return matcher indices */ &kMatcherIndices[107], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [463] */ - /* num parameters */ 1, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[877], - /* return matcher indices */ &kMatcherIndices[35], + /* num parameters */ 3, + /* num template types */ 1, + /* num template numbers */ 1, + /* template types */ &kTemplateTypes[11], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[516], + /* return matcher indices */ &kMatcherIndices[33], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [464] */ - /* num parameters */ 1, + /* num parameters */ 2, /* num template types */ 0, /* num template numbers */ 0, /* template types */ &kTemplateTypes[27], /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[876], - /* return matcher indices */ &kMatcherIndices[35], + /* parameters */ &kParameters[727], + /* return matcher indices */ &kMatcherIndices[32], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [465] */ - /* num parameters */ 1, - /* num template types */ 1, - /* num template numbers */ 1, - /* template types */ &kTemplateTypes[18], - /* template numbers */ &kTemplateNumbers[8], - /* parameters */ &kParameters[1007], - /* return matcher indices */ &kMatcherIndices[35], + /* num parameters */ 2, + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[729], + /* return matcher indices */ &kMatcherIndices[31], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [466] */ - /* num parameters */ 1, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[875], - /* return matcher indices */ &kMatcherIndices[35], + /* num parameters */ 2, + /* num template types */ 1, + /* num template numbers */ 1, + /* template types */ &kTemplateTypes[15], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[731], + /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [467] */ /* num parameters */ 1, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[874], - /* return matcher indices */ &kMatcherIndices[35], + /* num template types */ 1, + /* num template numbers */ 1, + /* template types */ &kTemplateTypes[11], + /* template numbers */ &kTemplateNumbers[6], + /* parameters */ &kParameters[926], + /* return matcher indices */ &kMatcherIndices[1], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [468] */ /* num parameters */ 1, - /* num template types */ 0, - /* num template numbers */ 0, - /* template types */ &kTemplateTypes[27], - /* template numbers */ &kTemplateNumbers[10], - /* parameters */ &kParameters[866], - /* return matcher indices */ &kMatcherIndices[35], + /* num template types */ 1, + /* num template numbers */ 1, + /* template types */ &kTemplateTypes[19], + /* template numbers */ &kTemplateNumbers[8], + /* parameters */ &kParameters[1013], + /* return matcher indices */ &kMatcherIndices[32], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, { /* [469] */ /* num parameters */ 1, - /* num template types */ 1, - /* num template numbers */ 1, - /* template types */ &kTemplateTypes[13], - /* template numbers */ &kTemplateNumbers[5], - /* parameters */ &kParameters[865], - /* return matcher indices */ &kMatcherIndices[30], + /* num template types */ 0, + /* num template numbers */ 0, + /* template types */ &kTemplateTypes[27], + /* template numbers */ &kTemplateNumbers[10], + /* parameters */ &kParameters[880], + /* return matcher indices */ &kMatcherIndices[32], /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline), /* const eval */ nullptr, }, @@ -13879,294 +13879,294 @@ constexpr IntrinsicInfo kBuiltins[] = { /* fn abs(T) -> T */ /* fn abs(vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[358], + /* overloads */ &kOverloads[382], }, { /* [1] */ /* fn acos(T) -> T */ /* fn acos(vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[316], + /* overloads */ &kOverloads[426], }, { /* [2] */ /* fn acosh(T) -> T */ /* fn acosh(vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[318], + /* overloads */ &kOverloads[424], }, { /* [3] */ /* fn all(bool) -> bool */ /* fn all(vec) -> bool */ /* num overloads */ 2, - /* overloads */ &kOverloads[320], + /* overloads */ &kOverloads[422], }, { /* [4] */ /* fn any(bool) -> bool */ /* fn any(vec) -> bool */ /* num overloads */ 2, - /* overloads */ &kOverloads[322], + /* overloads */ &kOverloads[420], }, { /* [5] */ /* fn arrayLength(ptr, A>) -> u32 */ /* num overloads */ 1, - /* overloads */ &kOverloads[465], + /* overloads */ &kOverloads[468], }, { /* [6] */ /* fn asin(T) -> T */ /* fn asin(vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[324], + /* overloads */ &kOverloads[418], }, { /* [7] */ /* fn asinh(T) -> T */ /* fn asinh(vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[326], + /* overloads */ &kOverloads[414], }, { /* [8] */ /* fn atan(T) -> T */ /* fn atan(vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[332], + /* overloads */ &kOverloads[412], }, { /* [9] */ /* fn atan2(T, T) -> T */ /* fn atan2(vec, vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[334], + /* overloads */ &kOverloads[406], }, { /* [10] */ /* fn atanh(T) -> T */ /* fn atanh(vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[356], + /* overloads */ &kOverloads[404], }, { /* [11] */ /* fn ceil(T) -> T */ /* fn ceil(vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[362], + /* overloads */ &kOverloads[400], }, { /* [12] */ /* fn clamp(T, T, T) -> T */ /* fn clamp(vec, vec, vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[366], + /* overloads */ &kOverloads[398], }, { /* [13] */ /* fn cos(T) -> T */ /* fn cos(vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[368], + /* overloads */ &kOverloads[396], }, { /* [14] */ /* fn cosh(T) -> T */ /* fn cosh(vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[370], + /* overloads */ &kOverloads[394], }, { /* [15] */ /* fn countLeadingZeros(T) -> T */ /* fn countLeadingZeros(vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[372], + /* overloads */ &kOverloads[390], }, { /* [16] */ /* fn countOneBits(T) -> T */ /* fn countOneBits(vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[374], + /* overloads */ &kOverloads[386], }, { /* [17] */ /* fn countTrailingZeros(T) -> T */ /* fn countTrailingZeros(vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[376], + /* overloads */ &kOverloads[384], }, { /* [18] */ /* fn cross(vec3, vec3) -> vec3 */ /* num overloads */ 1, - /* overloads */ &kOverloads[437], + /* overloads */ &kOverloads[462], }, { /* [19] */ /* fn degrees(T) -> T */ /* fn degrees(vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[420], + /* overloads */ &kOverloads[380], }, { /* [20] */ /* fn determinant(mat) -> T */ /* num overloads */ 1, - /* overloads */ &kOverloads[441], + /* overloads */ &kOverloads[467], }, { /* [21] */ /* fn distance(T, T) -> T */ /* fn distance(vec, vec) -> T */ /* num overloads */ 2, - /* overloads */ &kOverloads[424], + /* overloads */ &kOverloads[378], }, { /* [22] */ /* fn dot(vec, vec) -> T */ /* num overloads */ 1, - /* overloads */ &kOverloads[438], + /* overloads */ &kOverloads[466], }, { /* [23] */ /* fn dot4I8Packed(u32, u32) -> i32 */ /* num overloads */ 1, - /* overloads */ &kOverloads[435], + /* overloads */ &kOverloads[465], }, { /* [24] */ /* fn dot4U8Packed(u32, u32) -> u32 */ /* num overloads */ 1, - /* overloads */ &kOverloads[450], + /* overloads */ &kOverloads[464], }, { /* [25] */ /* fn dpdx(f32) -> f32 */ /* fn dpdx(vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[426], + /* overloads */ &kOverloads[370], }, { /* [26] */ /* fn dpdxCoarse(f32) -> f32 */ /* fn dpdxCoarse(vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[406], + /* overloads */ &kOverloads[366], }, { /* [27] */ /* fn dpdxFine(f32) -> f32 */ /* fn dpdxFine(vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[404], + /* overloads */ &kOverloads[362], }, { /* [28] */ /* fn dpdy(f32) -> f32 */ /* fn dpdy(vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[400], + /* overloads */ &kOverloads[356], }, { /* [29] */ /* fn dpdyCoarse(f32) -> f32 */ /* fn dpdyCoarse(vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[290], + /* overloads */ &kOverloads[342], }, { /* [30] */ /* fn dpdyFine(f32) -> f32 */ /* fn dpdyFine(vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[396], + /* overloads */ &kOverloads[334], }, { /* [31] */ /* fn exp(T) -> T */ /* fn exp(vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[394], + /* overloads */ &kOverloads[332], }, { /* [32] */ /* fn exp2(T) -> T */ /* fn exp2(vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[392], + /* overloads */ &kOverloads[326], }, { /* [33] */ /* fn extractBits(T, u32, u32) -> T */ /* fn extractBits(vec, u32, u32) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[390], + /* overloads */ &kOverloads[324], }, { /* [34] */ /* fn faceForward(vec, vec, vec) -> vec */ /* num overloads */ 1, - /* overloads */ &kOverloads[434], + /* overloads */ &kOverloads[463], }, { /* [35] */ /* fn firstLeadingBit(T) -> T */ /* fn firstLeadingBit(vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[384], + /* overloads */ &kOverloads[322], }, { /* [36] */ /* fn firstTrailingBit(T) -> T */ /* fn firstTrailingBit(vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[382], + /* overloads */ &kOverloads[430], }, { /* [37] */ /* fn floor(T) -> T */ /* fn floor(vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[380], + /* overloads */ &kOverloads[320], }, { /* [38] */ /* fn fma(T, T, T) -> T */ /* fn fma(vec, vec, vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[378], + /* overloads */ &kOverloads[316], }, { /* [39] */ /* fn fract(T) -> T */ /* fn fract(vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[342], + /* overloads */ &kOverloads[312], }, { /* [40] */ /* fn frexp(T) -> __frexp_result */ /* fn frexp(vec) -> __frexp_result_vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[312], + /* overloads */ &kOverloads[292], }, { /* [41] */ /* fn fwidth(f32) -> f32 */ /* fn fwidth(vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[398], + /* overloads */ &kOverloads[290], }, { /* [42] */ /* fn fwidthCoarse(f32) -> f32 */ /* fn fwidthCoarse(vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[292], + /* overloads */ &kOverloads[318], }, { /* [43] */ @@ -14237,7 +14237,7 @@ constexpr IntrinsicInfo kBuiltins[] = { /* fn mix(vec, vec, vec) -> vec */ /* fn mix(vec, vec, T) -> vec */ /* num overloads */ 3, - /* overloads */ &kOverloads[267], + /* overloads */ &kOverloads[285], }, { /* [53] */ @@ -14250,37 +14250,37 @@ constexpr IntrinsicInfo kBuiltins[] = { /* [54] */ /* fn normalize(vec) -> vec */ /* num overloads */ 1, - /* overloads */ &kOverloads[469], + /* overloads */ &kOverloads[461], }, { /* [55] */ /* fn pack2x16float(vec2) -> u32 */ /* num overloads */ 1, - /* overloads */ &kOverloads[468], + /* overloads */ &kOverloads[460], }, { /* [56] */ /* fn pack2x16snorm(vec2) -> u32 */ /* num overloads */ 1, - /* overloads */ &kOverloads[467], + /* overloads */ &kOverloads[469], }, { /* [57] */ /* fn pack2x16unorm(vec2) -> u32 */ /* num overloads */ 1, - /* overloads */ &kOverloads[466], + /* overloads */ &kOverloads[459], }, { /* [58] */ /* fn pack4x8snorm(vec4) -> u32 */ /* num overloads */ 1, - /* overloads */ &kOverloads[464], + /* overloads */ &kOverloads[458], }, { /* [59] */ /* fn pack4x8unorm(vec4) -> u32 */ /* num overloads */ 1, - /* overloads */ &kOverloads[463], + /* overloads */ &kOverloads[457], }, { /* [60] */ @@ -14300,13 +14300,13 @@ constexpr IntrinsicInfo kBuiltins[] = { /* [62] */ /* fn reflect(vec, vec) -> vec */ /* num overloads */ 1, - /* overloads */ &kOverloads[462], + /* overloads */ &kOverloads[456], }, { /* [63] */ /* fn refract(vec, vec, T) -> vec */ /* num overloads */ 1, - /* overloads */ &kOverloads[461], + /* overloads */ &kOverloads[455], }, { /* [64] */ @@ -14331,11 +14331,11 @@ constexpr IntrinsicInfo kBuiltins[] = { }, { /* [67] */ - /* fn select(T, T, bool) -> T */ - /* fn select(vec, vec, bool) -> vec */ - /* fn select(vec, vec, vec) -> vec */ + /* fn select(T, T, bool) -> T */ + /* fn select(vec, vec, bool) -> vec */ + /* fn select(vec, vec, vec) -> vec */ /* num overloads */ 3, - /* overloads */ &kOverloads[285], + /* overloads */ &kOverloads[276], }, { /* [68] */ @@ -14383,14 +14383,14 @@ constexpr IntrinsicInfo kBuiltins[] = { /* [74] */ /* fn storageBarrier() */ /* num overloads */ 1, - /* overloads */ &kOverloads[460], + /* overloads */ &kOverloads[447], }, { /* [75] */ /* fn tan(T) -> T */ /* fn tan(vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[288], + /* overloads */ &kOverloads[358], }, { /* [76] */ @@ -14403,7 +14403,7 @@ constexpr IntrinsicInfo kBuiltins[] = { /* [77] */ /* fn transpose(mat) -> mat */ /* num overloads */ 1, - /* overloads */ &kOverloads[459], + /* overloads */ &kOverloads[454], }, { /* [78] */ @@ -14416,37 +14416,37 @@ constexpr IntrinsicInfo kBuiltins[] = { /* [79] */ /* fn unpack2x16float(u32) -> vec2 */ /* num overloads */ 1, - /* overloads */ &kOverloads[458], + /* overloads */ &kOverloads[453], }, { /* [80] */ /* fn unpack2x16snorm(u32) -> vec2 */ /* num overloads */ 1, - /* overloads */ &kOverloads[457], + /* overloads */ &kOverloads[452], }, { /* [81] */ /* fn unpack2x16unorm(u32) -> vec2 */ /* num overloads */ 1, - /* overloads */ &kOverloads[456], + /* overloads */ &kOverloads[451], }, { /* [82] */ /* fn unpack4x8snorm(u32) -> vec4 */ /* num overloads */ 1, - /* overloads */ &kOverloads[455], + /* overloads */ &kOverloads[450], }, { /* [83] */ /* fn unpack4x8unorm(u32) -> vec4 */ /* num overloads */ 1, - /* overloads */ &kOverloads[454], + /* overloads */ &kOverloads[449], }, { /* [84] */ /* fn workgroupBarrier() */ /* num overloads */ 1, - /* overloads */ &kOverloads[453], + /* overloads */ &kOverloads[448], }, { /* [85] */ @@ -14506,7 +14506,7 @@ constexpr IntrinsicInfo kBuiltins[] = { /* fn textureGatherCompare(texture: texture_depth_cube, sampler: sampler_comparison, coords: vec3, depth_ref: f32) -> vec4 */ /* fn textureGatherCompare(texture: texture_depth_cube_array, sampler: sampler_comparison, coords: vec3, array_index: i32, depth_ref: f32) -> vec4 */ /* num overloads */ 6, - /* overloads */ &kOverloads[184], + /* overloads */ &kOverloads[190], }, { /* [88] */ @@ -14571,7 +14571,7 @@ constexpr IntrinsicInfo kBuiltins[] = { /* fn textureSampleBias(texture: texture_cube, sampler: sampler, coords: vec3, bias: f32) -> vec4 */ /* fn textureSampleBias(texture: texture_cube_array, sampler: sampler, coords: vec3, array_index: i32, bias: f32) -> vec4 */ /* num overloads */ 8, - /* overloads */ &kOverloads[152], + /* overloads */ &kOverloads[144], }, { /* [93] */ @@ -14582,7 +14582,7 @@ constexpr IntrinsicInfo kBuiltins[] = { /* fn textureSampleCompare(texture: texture_depth_cube, sampler: sampler_comparison, coords: vec3, depth_ref: f32) -> f32 */ /* fn textureSampleCompare(texture: texture_depth_cube_array, sampler: sampler_comparison, coords: vec3, array_index: i32, depth_ref: f32) -> f32 */ /* num overloads */ 6, - /* overloads */ &kOverloads[202], + /* overloads */ &kOverloads[166], }, { /* [94] */ @@ -14593,7 +14593,7 @@ constexpr IntrinsicInfo kBuiltins[] = { /* fn textureSampleCompareLevel(texture: texture_depth_cube, sampler: sampler_comparison, coords: vec3, depth_ref: f32) -> f32 */ /* fn textureSampleCompareLevel(texture: texture_depth_cube_array, sampler: sampler_comparison, coords: vec3, array_index: i32, depth_ref: f32) -> f32 */ /* num overloads */ 6, - /* overloads */ &kOverloads[160], + /* overloads */ &kOverloads[172], }, { /* [95] */ @@ -14606,7 +14606,7 @@ constexpr IntrinsicInfo kBuiltins[] = { /* fn textureSampleGrad(texture: texture_cube, sampler: sampler, coords: vec3, ddx: vec3, ddy: vec3) -> vec4 */ /* fn textureSampleGrad(texture: texture_cube_array, sampler: sampler, coords: vec3, array_index: i32, ddx: vec3, ddy: vec3) -> vec4 */ /* num overloads */ 8, - /* overloads */ &kOverloads[144], + /* overloads */ &kOverloads[152], }, { /* [96] */ @@ -14626,7 +14626,7 @@ constexpr IntrinsicInfo kBuiltins[] = { /* fn textureSampleLevel(texture: texture_depth_cube_array, sampler: sampler, coords: vec3, array_index: i32, level: i32) -> f32 */ /* fn textureSampleLevel(texture: texture_external, sampler: sampler, coords: vec2) -> vec4 */ /* num overloads */ 15, - /* overloads */ &kOverloads[57], + /* overloads */ &kOverloads[42], }, { /* [97] */ @@ -14664,73 +14664,73 @@ constexpr IntrinsicInfo kBuiltins[] = { /* fn textureLoad(texture: texture_depth_multisampled_2d, coords: vec2, sample_index: i32) -> f32 */ /* fn textureLoad(texture: texture_external, coords: vec2) -> vec4 */ /* num overloads */ 9, - /* overloads */ &kOverloads[117], + /* overloads */ &kOverloads[126], }, { /* [100] */ /* fn atomicLoad(ptr, read_write>) -> T */ /* num overloads */ 1, - /* overloads */ &kOverloads[436], + /* overloads */ &kOverloads[446], }, { /* [101] */ /* fn atomicStore(ptr, read_write>, T) */ /* num overloads */ 1, - /* overloads */ &kOverloads[449], + /* overloads */ &kOverloads[445], }, { /* [102] */ /* fn atomicAdd(ptr, read_write>, T) -> T */ /* num overloads */ 1, - /* overloads */ &kOverloads[448], + /* overloads */ &kOverloads[442], }, { /* [103] */ /* fn atomicSub(ptr, read_write>, T) -> T */ /* num overloads */ 1, - /* overloads */ &kOverloads[447], + /* overloads */ &kOverloads[441], }, { /* [104] */ /* fn atomicMax(ptr, read_write>, T) -> T */ /* num overloads */ 1, - /* overloads */ &kOverloads[446], + /* overloads */ &kOverloads[440], }, { /* [105] */ /* fn atomicMin(ptr, read_write>, T) -> T */ /* num overloads */ 1, - /* overloads */ &kOverloads[445], + /* overloads */ &kOverloads[439], }, { /* [106] */ /* fn atomicAnd(ptr, read_write>, T) -> T */ /* num overloads */ 1, - /* overloads */ &kOverloads[442], + /* overloads */ &kOverloads[438], }, { /* [107] */ /* fn atomicOr(ptr, read_write>, T) -> T */ /* num overloads */ 1, - /* overloads */ &kOverloads[440], + /* overloads */ &kOverloads[437], }, { /* [108] */ /* fn atomicXor(ptr, read_write>, T) -> T */ /* num overloads */ 1, - /* overloads */ &kOverloads[439], + /* overloads */ &kOverloads[436], }, { /* [109] */ /* fn atomicExchange(ptr, read_write>, T) -> T */ /* num overloads */ 1, - /* overloads */ &kOverloads[452], + /* overloads */ &kOverloads[435], }, { /* [110] */ /* fn atomicCompareExchangeWeak(ptr, read_write>, T, T) -> __atomic_compare_exchange_result */ /* num overloads */ 1, - /* overloads */ &kOverloads[451], + /* overloads */ &kOverloads[434], }, }; @@ -14740,7 +14740,7 @@ constexpr IntrinsicInfo kUnaryOperators[] = { /* op !(bool) -> bool */ /* op !(vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[430], + /* overloads */ &kOverloads[288], }, { /* [1] */ @@ -14794,7 +14794,7 @@ constexpr IntrinsicInfo kBinaryOperators[] = { /* op *(vec, mat) -> vec */ /* op *(mat, mat) -> mat */ /* num overloads */ 9, - /* overloads */ &kOverloads[126], + /* overloads */ &kOverloads[135], }, { /* [3] */ @@ -14812,14 +14812,14 @@ constexpr IntrinsicInfo kBinaryOperators[] = { /* op %(vec, T) -> vec */ /* op %(T, vec) -> vec */ /* num overloads */ 4, - /* overloads */ &kOverloads[251], + /* overloads */ &kOverloads[259], }, { /* [5] */ /* op ^(T, T) -> T */ /* op ^(vec, vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[422], + /* overloads */ &kOverloads[416], }, { /* [6] */ @@ -14828,7 +14828,7 @@ constexpr IntrinsicInfo kBinaryOperators[] = { /* op &(T, T) -> T */ /* op &(vec, vec) -> vec */ /* num overloads */ 4, - /* overloads */ &kOverloads[247], + /* overloads */ &kOverloads[263], }, { /* [7] */ @@ -14837,7 +14837,7 @@ constexpr IntrinsicInfo kBinaryOperators[] = { /* op |(T, T) -> T */ /* op |(vec, vec) -> vec */ /* num overloads */ 4, - /* overloads */ &kOverloads[259], + /* overloads */ &kOverloads[247], }, { /* [8] */ @@ -14856,42 +14856,42 @@ constexpr IntrinsicInfo kBinaryOperators[] = { /* op ==(T, T) -> bool */ /* op ==(vec, vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[418], + /* overloads */ &kOverloads[410], }, { /* [11] */ /* op !=(T, T) -> bool */ /* op !=(vec, vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[416], + /* overloads */ &kOverloads[408], }, { /* [12] */ /* op <(T, T) -> bool */ /* op <(vec, vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[414], + /* overloads */ &kOverloads[392], }, { /* [13] */ /* op >(T, T) -> bool */ /* op >(vec, vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[412], + /* overloads */ &kOverloads[376], }, { /* [14] */ /* op <=(T, T) -> bool */ /* op <=(vec, vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[410], + /* overloads */ &kOverloads[374], }, { /* [15] */ /* op >=(T, T) -> bool */ /* op >=(vec, vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[408], + /* overloads */ &kOverloads[372], }, { /* [16] */ @@ -14900,14 +14900,14 @@ constexpr IntrinsicInfo kBinaryOperators[] = { /* op <<(T, ia) -> T */ /* op <<(vec, vec) -> vec */ /* num overloads */ 4, - /* overloads */ &kOverloads[263], + /* overloads */ &kOverloads[251], }, { /* [17] */ /* op >>(T, u32) -> T */ /* op >>(vec, vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[386], + /* overloads */ &kOverloads[368], }, }; constexpr uint8_t kBinaryOperatorPlus = 0; @@ -14936,7 +14936,7 @@ constexpr IntrinsicInfo kConstructorsAndConverters[] = { /* ctor i32(i32) -> i32 */ /* conv i32(T) -> i32 */ /* num overloads */ 3, - /* overloads */ &kOverloads[276], + /* overloads */ &kOverloads[282], }, { /* [1] */ @@ -14952,7 +14952,7 @@ constexpr IntrinsicInfo kConstructorsAndConverters[] = { /* ctor f32(f32) -> f32 */ /* conv f32(T) -> f32 */ /* num overloads */ 3, - /* overloads */ &kOverloads[282], + /* overloads */ &kOverloads[273], }, { /* [3] */ @@ -14968,7 +14968,7 @@ constexpr IntrinsicInfo kConstructorsAndConverters[] = { /* ctor bool(bool) -> bool */ /* conv bool(T) -> bool */ /* num overloads */ 3, - /* overloads */ &kOverloads[273], + /* overloads */ &kOverloads[267], }, { /* [5] */ @@ -14982,7 +14982,7 @@ constexpr IntrinsicInfo kConstructorsAndConverters[] = { /* conv vec2(vec2) -> vec2 */ /* conv vec2(vec2) -> vec2 */ /* num overloads */ 9, - /* overloads */ &kOverloads[135], + /* overloads */ &kOverloads[117], }, { /* [6] */ @@ -15018,7 +15018,7 @@ constexpr IntrinsicInfo kConstructorsAndConverters[] = { /* conv vec4(vec4) -> vec4 */ /* conv vec4(vec4) -> vec4 */ /* num overloads */ 15, - /* overloads */ &kOverloads[42], + /* overloads */ &kOverloads[57], }, { /* [8] */ @@ -15029,7 +15029,7 @@ constexpr IntrinsicInfo kConstructorsAndConverters[] = { /* conv mat2x2(mat2x2) -> mat2x2 */ /* conv mat2x2(mat2x2) -> mat2x2 */ /* num overloads */ 6, - /* overloads */ &kOverloads[226], + /* overloads */ &kOverloads[208], }, { /* [9] */ @@ -15040,7 +15040,7 @@ constexpr IntrinsicInfo kConstructorsAndConverters[] = { /* conv mat2x3(mat2x3) -> mat2x3 */ /* conv mat2x3(mat2x3) -> mat2x3 */ /* num overloads */ 6, - /* overloads */ &kOverloads[220], + /* overloads */ &kOverloads[202], }, { /* [10] */ @@ -15051,7 +15051,7 @@ constexpr IntrinsicInfo kConstructorsAndConverters[] = { /* conv mat2x4(mat2x4) -> mat2x4 */ /* conv mat2x4(mat2x4) -> mat2x4 */ /* num overloads */ 6, - /* overloads */ &kOverloads[214], + /* overloads */ &kOverloads[178], }, { /* [11] */ @@ -15062,7 +15062,7 @@ constexpr IntrinsicInfo kConstructorsAndConverters[] = { /* conv mat3x2(mat3x2) -> mat3x2 */ /* conv mat3x2(mat3x2) -> mat3x2 */ /* num overloads */ 6, - /* overloads */ &kOverloads[208], + /* overloads */ &kOverloads[160], }, { /* [12] */ @@ -15073,7 +15073,7 @@ constexpr IntrinsicInfo kConstructorsAndConverters[] = { /* conv mat3x3(mat3x3) -> mat3x3 */ /* conv mat3x3(mat3x3) -> mat3x3 */ /* num overloads */ 6, - /* overloads */ &kOverloads[166], + /* overloads */ &kOverloads[220], }, { /* [13] */ @@ -15084,7 +15084,7 @@ constexpr IntrinsicInfo kConstructorsAndConverters[] = { /* conv mat3x4(mat3x4) -> mat3x4 */ /* conv mat3x4(mat3x4) -> mat3x4 */ /* num overloads */ 6, - /* overloads */ &kOverloads[196], + /* overloads */ &kOverloads[214], }, { /* [14] */ @@ -15095,7 +15095,7 @@ constexpr IntrinsicInfo kConstructorsAndConverters[] = { /* conv mat4x2(mat4x2) -> mat4x2 */ /* conv mat4x2(mat4x2) -> mat4x2 */ /* num overloads */ 6, - /* overloads */ &kOverloads[190], + /* overloads */ &kOverloads[226], }, { /* [15] */ @@ -15106,7 +15106,7 @@ constexpr IntrinsicInfo kConstructorsAndConverters[] = { /* conv mat4x3(mat4x3) -> mat4x3 */ /* conv mat4x3(mat4x3) -> mat4x3 */ /* num overloads */ 6, - /* overloads */ &kOverloads[178], + /* overloads */ &kOverloads[196], }, { /* [16] */ @@ -15117,7 +15117,7 @@ constexpr IntrinsicInfo kConstructorsAndConverters[] = { /* conv mat4x4(mat4x4) -> mat4x4 */ /* conv mat4x4(mat4x4) -> mat4x4 */ /* num overloads */ 6, - /* overloads */ &kOverloads[172], + /* overloads */ &kOverloads[184], }, }; diff --git a/src/tint/resolver/intrinsic_table_test.cc b/src/tint/resolver/intrinsic_table_test.cc index 3aa4ee3edc..aaf8ef9f4c 100644 --- a/src/tint/resolver/intrinsic_table_test.cc +++ b/src/tint/resolver/intrinsic_table_test.cc @@ -527,8 +527,7 @@ TEST_F(IntrinsicTableTest, MismatchOpenSizeMatrix) { ASSERT_THAT(Diagnostics().str(), HasSubstr("no matching call")); } -// TODO(amaiorano): Enable this test when constexpr `select` is implemented. -TEST_F(IntrinsicTableTest, DISABLED_MatchDifferentArgsElementType_ConstantEval) { +TEST_F(IntrinsicTableTest, MatchDifferentArgsElementType_ConstantEval) { auto* af = create(); auto* bool_ = create(); auto result = table->Lookup(BuiltinType::kSelect, utils::Vector{af, af, bool_}, diff --git a/src/tint/traits.h b/src/tint/traits.h index d830d2c437..8dcc65b3d6 100644 --- a/src/tint/traits.h +++ b/src/tint/traits.h @@ -73,15 +73,24 @@ struct SignatureOf { /// SignatureOfT is an alias to `typename SignatureOf::type`. template -using SignatureOfT = typename SignatureOf::type; +using SignatureOfT = typename SignatureOf>::type; /// ParameterType is an alias to `typename SignatureOf::type::parameter`. template -using ParameterType = typename SignatureOfT::template parameter; +using ParameterType = typename SignatureOfT>::template parameter; + +/// LastParameterType returns the type of the last parameter of `F`. `F` must have at least one +/// parameter. +template +using LastParameterType = ParameterType>::parameter_count - 1>; /// ReturnType is an alias to `typename SignatureOf::type::ret`. template -using ReturnType = typename SignatureOfT::ret; +using ReturnType = typename SignatureOfT>::ret; + +/// Returns true iff decayed T and decayed U are the same. +template +static constexpr bool IsType = std::is_same, Decay>::value; /// IsTypeOrDerived is true iff `T` is of type `BASE`, or derives from /// `BASE`. diff --git a/src/tint/writer/glsl/generator_impl_builtin_test.cc b/src/tint/writer/glsl/generator_impl_builtin_test.cc index 11b6306333..511a3094d2 100644 --- a/src/tint/writer/glsl/generator_impl_builtin_test.cc +++ b/src/tint/writer/glsl/generator_impl_builtin_test.cc @@ -356,25 +356,29 @@ TEST_F(GlslGeneratorImplTest_Builtin, Builtin_Call) { } TEST_F(GlslGeneratorImplTest_Builtin, Select_Scalar) { - auto* call = Call("select", 1_f, 2_f, true); + GlobalVar("a", Expr(1_f), ast::AddressSpace::kPrivate); + GlobalVar("b", Expr(2_f), ast::AddressSpace::kPrivate); + auto* call = Call("select", "a", "b", true); WrapInFunction(CallStmt(call)); GeneratorImpl& gen = Build(); gen.increment_indent(); std::stringstream out; ASSERT_TRUE(gen.EmitExpression(out, call)) << gen.error(); - EXPECT_EQ(out.str(), "(true ? 2.0f : 1.0f)"); + EXPECT_EQ(out.str(), "(true ? b : a)"); } TEST_F(GlslGeneratorImplTest_Builtin, Select_Vector) { - auto* call = Call("select", vec2(1_i, 2_i), vec2(3_i, 4_i), vec2(true, false)); + GlobalVar("a", vec2(1_i, 2_i), ast::AddressSpace::kPrivate); + GlobalVar("b", vec2(3_i, 4_i), ast::AddressSpace::kPrivate); + auto* call = Call("select", "a", "b", vec2(true, false)); WrapInFunction(CallStmt(call)); GeneratorImpl& gen = Build(); gen.increment_indent(); std::stringstream out; ASSERT_TRUE(gen.EmitExpression(out, call)) << gen.error(); - EXPECT_EQ(out.str(), "mix(ivec2(1, 2), ivec2(3, 4), bvec2(true, false))"); + EXPECT_EQ(out.str(), "mix(a, b, bvec2(true, false))"); } TEST_F(GlslGeneratorImplTest_Builtin, FMA_f32) { diff --git a/src/tint/writer/hlsl/generator_impl_builtin_test.cc b/src/tint/writer/hlsl/generator_impl_builtin_test.cc index 3f0792bc3f..360c8f13d9 100644 --- a/src/tint/writer/hlsl/generator_impl_builtin_test.cc +++ b/src/tint/writer/hlsl/generator_impl_builtin_test.cc @@ -356,25 +356,29 @@ TEST_F(HlslGeneratorImplTest_Builtin, Builtin_Call) { } TEST_F(HlslGeneratorImplTest_Builtin, Select_Scalar) { - auto* call = Call("select", 1_f, 2_f, true); + GlobalVar("a", Expr(1_f), ast::AddressSpace::kPrivate); + GlobalVar("b", Expr(2_f), ast::AddressSpace::kPrivate); + auto* call = Call("select", "a", "b", true); WrapInFunction(CallStmt(call)); GeneratorImpl& gen = Build(); gen.increment_indent(); std::stringstream out; ASSERT_TRUE(gen.EmitExpression(out, call)) << gen.error(); - EXPECT_EQ(out.str(), "(true ? 2.0f : 1.0f)"); + EXPECT_EQ(out.str(), "(true ? b : a)"); } TEST_F(HlslGeneratorImplTest_Builtin, Select_Vector) { - auto* call = Call("select", vec2(1_i, 2_i), vec2(3_i, 4_i), vec2(true, false)); + GlobalVar("a", vec2(1_i, 2_i), ast::AddressSpace::kPrivate); + GlobalVar("b", vec2(3_i, 4_i), ast::AddressSpace::kPrivate); + auto* call = Call("select", "a", "b", vec2(true, false)); WrapInFunction(CallStmt(call)); GeneratorImpl& gen = Build(); gen.increment_indent(); std::stringstream out; ASSERT_TRUE(gen.EmitExpression(out, call)) << gen.error(); - EXPECT_EQ(out.str(), "(bool2(true, false) ? int2(3, 4) : int2(1, 2))"); + EXPECT_EQ(out.str(), "(bool2(true, false) ? b : a)"); } TEST_F(HlslGeneratorImplTest_Builtin, Modf_Scalar_f32) { diff --git a/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.dxc.hlsl index 85382631a0..b18b4ad0f0 100644 --- a/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.dxc.hlsl @@ -1,5 +1,5 @@ void select_00b848() { - int2 res = ((true).xx ? (1).xx : (1).xx); + int2 res = (1).xx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.fxc.hlsl index 85382631a0..b18b4ad0f0 100644 --- a/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.fxc.hlsl +++ b/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.fxc.hlsl @@ -1,5 +1,5 @@ void select_00b848() { - int2 res = ((true).xx ? (1).xx : (1).xx); + int2 res = (1).xx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.glsl index 3e03e16745..92d62c1d67 100644 --- a/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.glsl @@ -1,7 +1,7 @@ #version 310 es void select_00b848() { - ivec2 res = mix(ivec2(1), ivec2(1), bvec2(true)); + ivec2 res = ivec2(1); } vec4 vertex_main() { @@ -21,7 +21,7 @@ void main() { precision mediump float; void select_00b848() { - ivec2 res = mix(ivec2(1), ivec2(1), bvec2(true)); + ivec2 res = ivec2(1); } void fragment_main() { @@ -35,7 +35,7 @@ void main() { #version 310 es void select_00b848() { - ivec2 res = mix(ivec2(1), ivec2(1), bvec2(true)); + ivec2 res = ivec2(1); } void compute_main() { diff --git a/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.msl index a3915c9a08..505f1a0eba 100644 --- a/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.msl @@ -2,7 +2,7 @@ using namespace metal; void select_00b848() { - int2 res = select(int2(1), int2(1), bool2(true)); + int2 res = int2(1); } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.spvasm index b2604cc4fa..75adf7c123 100644 --- a/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 39 +; Bound: 34 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -32,42 +32,37 @@ %9 = OpTypeFunction %void %int = OpTypeInt 32 1 %v2int = OpTypeVector %int 2 - %bool = OpTypeBool - %v2bool = OpTypeVector %bool 2 - %true = OpConstantTrue %bool - %19 = OpConstantComposite %v2bool %true %true %int_1 = OpConstant %int 1 - %21 = OpConstantComposite %v2int %int_1 %int_1 + %16 = OpConstantComposite %v2int %int_1 %int_1 %_ptr_Function_v2int = OpTypePointer Function %v2int - %24 = OpConstantNull %v2int - %25 = OpTypeFunction %v4float + %19 = OpConstantNull %v2int + %20 = OpTypeFunction %v4float %float_1 = OpConstant %float 1 %select_00b848 = OpFunction %void None %9 %12 = OpLabel - %res = OpVariable %_ptr_Function_v2int Function %24 - %13 = OpSelect %v2int %19 %21 %21 - OpStore %res %13 + %res = OpVariable %_ptr_Function_v2int Function %19 + OpStore %res %16 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %25 - %27 = OpLabel - %28 = OpFunctionCall %void %select_00b848 +%vertex_main_inner = OpFunction %v4float None %20 + %22 = OpLabel + %23 = OpFunctionCall %void %select_00b848 OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %30 = OpLabel - %31 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %31 + %25 = OpLabel + %26 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %26 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 - %34 = OpLabel - %35 = OpFunctionCall %void %select_00b848 + %29 = OpLabel + %30 = OpFunctionCall %void %select_00b848 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9 - %37 = OpLabel - %38 = OpFunctionCall %void %select_00b848 + %32 = OpLabel + %33 = OpFunctionCall %void %select_00b848 OpReturn OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.dxc.hlsl index 274eac64c9..2882c7b072 100644 --- a/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.dxc.hlsl @@ -1,5 +1,5 @@ void select_01e2cd() { - int3 res = ((true).xxx ? (1).xxx : (1).xxx); + int3 res = (1).xxx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.fxc.hlsl index 274eac64c9..2882c7b072 100644 --- a/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.fxc.hlsl +++ b/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.fxc.hlsl @@ -1,5 +1,5 @@ void select_01e2cd() { - int3 res = ((true).xxx ? (1).xxx : (1).xxx); + int3 res = (1).xxx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.glsl index 71c57911b8..29d0add467 100644 --- a/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.glsl @@ -1,7 +1,7 @@ #version 310 es void select_01e2cd() { - ivec3 res = mix(ivec3(1), ivec3(1), bvec3(true)); + ivec3 res = ivec3(1); } vec4 vertex_main() { @@ -21,7 +21,7 @@ void main() { precision mediump float; void select_01e2cd() { - ivec3 res = mix(ivec3(1), ivec3(1), bvec3(true)); + ivec3 res = ivec3(1); } void fragment_main() { @@ -35,7 +35,7 @@ void main() { #version 310 es void select_01e2cd() { - ivec3 res = mix(ivec3(1), ivec3(1), bvec3(true)); + ivec3 res = ivec3(1); } void compute_main() { diff --git a/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.msl index 7ad0b714a2..2bbdce0898 100644 --- a/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.msl @@ -2,7 +2,7 @@ using namespace metal; void select_01e2cd() { - int3 res = select(int3(1), int3(1), bool3(true)); + int3 res = int3(1); } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.spvasm index 465b4c837d..e43b2d58d1 100644 --- a/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 39 +; Bound: 34 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -32,42 +32,37 @@ %9 = OpTypeFunction %void %int = OpTypeInt 32 1 %v3int = OpTypeVector %int 3 - %bool = OpTypeBool - %v3bool = OpTypeVector %bool 3 - %true = OpConstantTrue %bool - %19 = OpConstantComposite %v3bool %true %true %true %int_1 = OpConstant %int 1 - %21 = OpConstantComposite %v3int %int_1 %int_1 %int_1 + %16 = OpConstantComposite %v3int %int_1 %int_1 %int_1 %_ptr_Function_v3int = OpTypePointer Function %v3int - %24 = OpConstantNull %v3int - %25 = OpTypeFunction %v4float + %19 = OpConstantNull %v3int + %20 = OpTypeFunction %v4float %float_1 = OpConstant %float 1 %select_01e2cd = OpFunction %void None %9 %12 = OpLabel - %res = OpVariable %_ptr_Function_v3int Function %24 - %13 = OpSelect %v3int %19 %21 %21 - OpStore %res %13 + %res = OpVariable %_ptr_Function_v3int Function %19 + OpStore %res %16 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %25 - %27 = OpLabel - %28 = OpFunctionCall %void %select_01e2cd +%vertex_main_inner = OpFunction %v4float None %20 + %22 = OpLabel + %23 = OpFunctionCall %void %select_01e2cd OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %30 = OpLabel - %31 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %31 + %25 = OpLabel + %26 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %26 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 - %34 = OpLabel - %35 = OpFunctionCall %void %select_01e2cd + %29 = OpLabel + %30 = OpFunctionCall %void %select_01e2cd OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9 - %37 = OpLabel - %38 = OpFunctionCall %void %select_01e2cd + %32 = OpLabel + %33 = OpFunctionCall %void %select_01e2cd OpReturn OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.dxc.hlsl index 4d82275174..7212e724fe 100644 --- a/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.dxc.hlsl @@ -1,5 +1,5 @@ void select_087ea4() { - uint4 res = (true ? (1u).xxxx : (1u).xxxx); + uint4 res = (1u).xxxx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.fxc.hlsl index 4d82275174..7212e724fe 100644 --- a/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.fxc.hlsl +++ b/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.fxc.hlsl @@ -1,5 +1,5 @@ void select_087ea4() { - uint4 res = (true ? (1u).xxxx : (1u).xxxx); + uint4 res = (1u).xxxx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.glsl index ef874e6525..5e58865316 100644 --- a/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.glsl @@ -1,7 +1,7 @@ #version 310 es void select_087ea4() { - uvec4 res = (true ? uvec4(1u) : uvec4(1u)); + uvec4 res = uvec4(1u); } vec4 vertex_main() { @@ -21,7 +21,7 @@ void main() { precision mediump float; void select_087ea4() { - uvec4 res = (true ? uvec4(1u) : uvec4(1u)); + uvec4 res = uvec4(1u); } void fragment_main() { @@ -35,7 +35,7 @@ void main() { #version 310 es void select_087ea4() { - uvec4 res = (true ? uvec4(1u) : uvec4(1u)); + uvec4 res = uvec4(1u); } void compute_main() { diff --git a/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.msl index 4b90e29b47..959b45c85c 100644 --- a/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.msl @@ -2,7 +2,7 @@ using namespace metal; void select_087ea4() { - uint4 res = select(uint4(1u), uint4(1u), true); + uint4 res = uint4(1u); } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.spvasm index 4494fd2ac5..376d446444 100644 --- a/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 42 +; Bound: 34 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -32,45 +32,37 @@ %9 = OpTypeFunction %void %uint = OpTypeInt 32 0 %v4uint = OpTypeVector %uint 4 - %bool = OpTypeBool - %true = OpConstantTrue %bool %uint_1 = OpConstant %uint 1 - %19 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1 - %v4bool = OpTypeVector %bool 4 -%_ptr_Function_v4bool = OpTypePointer Function %v4bool - %23 = OpConstantNull %v4bool + %16 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1 %_ptr_Function_v4uint = OpTypePointer Function %v4uint - %27 = OpConstantNull %v4uint - %28 = OpTypeFunction %v4float + %19 = OpConstantNull %v4uint + %20 = OpTypeFunction %v4float %float_1 = OpConstant %float 1 %select_087ea4 = OpFunction %void None %9 %12 = OpLabel - %21 = OpVariable %_ptr_Function_v4bool Function %23 - %res = OpVariable %_ptr_Function_v4uint Function %27 - %24 = OpCompositeConstruct %v4bool %true %true %true %true - %13 = OpSelect %v4uint %24 %19 %19 - OpStore %res %13 + %res = OpVariable %_ptr_Function_v4uint Function %19 + OpStore %res %16 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %28 - %30 = OpLabel - %31 = OpFunctionCall %void %select_087ea4 +%vertex_main_inner = OpFunction %v4float None %20 + %22 = OpLabel + %23 = OpFunctionCall %void %select_087ea4 OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %33 = OpLabel - %34 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %34 + %25 = OpLabel + %26 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %26 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 - %37 = OpLabel - %38 = OpFunctionCall %void %select_087ea4 + %29 = OpLabel + %30 = OpFunctionCall %void %select_087ea4 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9 - %40 = OpLabel - %41 = OpFunctionCall %void %select_087ea4 + %32 = OpLabel + %33 = OpFunctionCall %void %select_087ea4 OpReturn OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/089657.wgsl b/test/tint/builtins/gen/literal/select/089657.wgsl new file mode 100644 index 0000000000..d47aabe855 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/089657.wgsl @@ -0,0 +1,43 @@ +// Copyright 2022 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//////////////////////////////////////////////////////////////////////////////// +// File generated by tools/src/cmd/gen +// using the template: +// test/tint/builtins/gen/gen.wgsl.tmpl +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn select(vec<3, fa>, vec<3, fa>, bool) -> vec<3, fa> +fn select_089657() { + var res = select(vec3(1), vec3(1), true); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_089657(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_089657(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_089657(); +} diff --git a/test/tint/builtins/gen/literal/select/089657.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/089657.wgsl.expected.dxc.hlsl new file mode 100644 index 0000000000..f2d77189f9 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/089657.wgsl.expected.dxc.hlsl @@ -0,0 +1,30 @@ +void select_089657() { + int3 res = (1).xxx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_089657(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_089657(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_089657(); + return; +} diff --git a/test/tint/builtins/gen/literal/select/089657.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/089657.wgsl.expected.fxc.hlsl new file mode 100644 index 0000000000..f2d77189f9 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/089657.wgsl.expected.fxc.hlsl @@ -0,0 +1,30 @@ +void select_089657() { + int3 res = (1).xxx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_089657(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_089657(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_089657(); + return; +} diff --git a/test/tint/builtins/gen/literal/select/089657.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/089657.wgsl.expected.glsl new file mode 100644 index 0000000000..6fcb16483c --- /dev/null +++ b/test/tint/builtins/gen/literal/select/089657.wgsl.expected.glsl @@ -0,0 +1,49 @@ +#version 310 es + +void select_089657() { + ivec3 res = ivec3(1); +} + +vec4 vertex_main() { + select_089657(); + return vec4(0.0f); +} + +void main() { + gl_PointSize = 1.0; + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +void select_089657() { + ivec3 res = ivec3(1); +} + +void fragment_main() { + select_089657(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +void select_089657() { + ivec3 res = ivec3(1); +} + +void compute_main() { + select_089657(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +} diff --git a/test/tint/builtins/gen/literal/select/089657.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/089657.wgsl.expected.msl new file mode 100644 index 0000000000..588dd1a022 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/089657.wgsl.expected.msl @@ -0,0 +1,33 @@ +#include + +using namespace metal; +void select_089657() { + int3 res = int3(1); +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + select_089657(); + return float4(0.0f); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + select_089657(); + return; +} + +kernel void compute_main() { + select_089657(); + return; +} + diff --git a/test/tint/builtins/gen/literal/select/089657.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/089657.wgsl.expected.spvasm new file mode 100644 index 0000000000..9ecd1f647e --- /dev/null +++ b/test/tint/builtins/gen/literal/select/089657.wgsl.expected.spvasm @@ -0,0 +1,68 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 34 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %select_089657 "select_089657" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %void = OpTypeVoid + %9 = OpTypeFunction %void + %int = OpTypeInt 32 1 + %v3int = OpTypeVector %int 3 + %int_1 = OpConstant %int 1 + %16 = OpConstantComposite %v3int %int_1 %int_1 %int_1 +%_ptr_Function_v3int = OpTypePointer Function %v3int + %19 = OpConstantNull %v3int + %20 = OpTypeFunction %v4float + %float_1 = OpConstant %float 1 +%select_089657 = OpFunction %void None %9 + %12 = OpLabel + %res = OpVariable %_ptr_Function_v3int Function %19 + OpStore %res %16 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %20 + %22 = OpLabel + %23 = OpFunctionCall %void %select_089657 + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %9 + %25 = OpLabel + %26 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %26 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %9 + %29 = OpLabel + %30 = OpFunctionCall %void %select_089657 + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 + %32 = OpLabel + %33 = OpFunctionCall %void %select_089657 + OpReturn + OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/089657.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/089657.wgsl.expected.wgsl new file mode 100644 index 0000000000..1855c529b8 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/089657.wgsl.expected.wgsl @@ -0,0 +1,19 @@ +fn select_089657() { + var res = select(vec3(1), vec3(1), true); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_089657(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_089657(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_089657(); +} diff --git a/test/tint/builtins/gen/literal/select/10e73b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/10e73b.wgsl.expected.dxc.hlsl index 1aaa5caac9..c52b572f04 100644 --- a/test/tint/builtins/gen/literal/select/10e73b.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/select/10e73b.wgsl.expected.dxc.hlsl @@ -1,5 +1,5 @@ void select_10e73b() { - float16_t res = (true ? float16_t(0.0h) : float16_t(0.0h)); + float16_t res = float16_t(0.0h); } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/10e73b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/10e73b.wgsl.expected.glsl index bab4323c43..65d3a9810d 100644 --- a/test/tint/builtins/gen/literal/select/10e73b.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/select/10e73b.wgsl.expected.glsl @@ -2,7 +2,7 @@ #extension GL_AMD_gpu_shader_half_float : require void select_10e73b() { - float16_t res = (true ? 0.0hf : 0.0hf); + float16_t res = 0.0hf; } vec4 vertex_main() { @@ -23,7 +23,7 @@ void main() { precision mediump float; void select_10e73b() { - float16_t res = (true ? 0.0hf : 0.0hf); + float16_t res = 0.0hf; } void fragment_main() { @@ -38,7 +38,7 @@ void main() { #extension GL_AMD_gpu_shader_half_float : require void select_10e73b() { - float16_t res = (true ? 0.0hf : 0.0hf); + float16_t res = 0.0hf; } void compute_main() { diff --git a/test/tint/builtins/gen/literal/select/10e73b.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/10e73b.wgsl.expected.msl index b7c4cd594f..41bda4fda0 100644 --- a/test/tint/builtins/gen/literal/select/10e73b.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/select/10e73b.wgsl.expected.msl @@ -2,7 +2,7 @@ using namespace metal; void select_10e73b() { - half res = select(0.0h, 0.0h, true); + half res = 0.0h; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/10e73b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/10e73b.wgsl.expected.spvasm index af36e83608..8c2401f1e6 100644 --- a/test/tint/builtins/gen/literal/select/10e73b.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/select/10e73b.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 34 +; Bound: 31 ; Schema: 0 OpCapability Shader OpCapability Float16 @@ -35,38 +35,35 @@ %void = OpTypeVoid %9 = OpTypeFunction %void %half = OpTypeFloat 16 - %bool = OpTypeBool - %true = OpConstantTrue %bool - %17 = OpConstantNull %half + %14 = OpConstantNull %half %_ptr_Function_half = OpTypePointer Function %half - %20 = OpTypeFunction %v4float + %17 = OpTypeFunction %v4float %float_1 = OpConstant %float 1 %select_10e73b = OpFunction %void None %9 %12 = OpLabel - %res = OpVariable %_ptr_Function_half Function %17 - %13 = OpSelect %half %true %17 %17 - OpStore %res %13 + %res = OpVariable %_ptr_Function_half Function %14 + OpStore %res %14 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %20 - %22 = OpLabel - %23 = OpFunctionCall %void %select_10e73b +%vertex_main_inner = OpFunction %v4float None %17 + %19 = OpLabel + %20 = OpFunctionCall %void %select_10e73b OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %25 = OpLabel - %26 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %26 + %22 = OpLabel + %23 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %23 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 + %26 = OpLabel + %27 = OpFunctionCall %void %select_10e73b + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 %29 = OpLabel %30 = OpFunctionCall %void %select_10e73b OpReturn OpFunctionEnd -%compute_main = OpFunction %void None %9 - %32 = OpLabel - %33 = OpFunctionCall %void %select_10e73b - OpReturn - OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/17441a.wgsl b/test/tint/builtins/gen/literal/select/17441a.wgsl new file mode 100644 index 0000000000..2ff8210877 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/17441a.wgsl @@ -0,0 +1,43 @@ +// Copyright 2022 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//////////////////////////////////////////////////////////////////////////////// +// File generated by tools/src/cmd/gen +// using the template: +// test/tint/builtins/gen/gen.wgsl.tmpl +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn select(vec<4, fa>, vec<4, fa>, bool) -> vec<4, fa> +fn select_17441a() { + var res = select(vec4(1), vec4(1), true); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_17441a(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_17441a(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_17441a(); +} diff --git a/test/tint/builtins/gen/literal/select/17441a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/17441a.wgsl.expected.dxc.hlsl new file mode 100644 index 0000000000..9051e8cd93 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/17441a.wgsl.expected.dxc.hlsl @@ -0,0 +1,30 @@ +void select_17441a() { + int4 res = (1).xxxx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_17441a(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_17441a(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_17441a(); + return; +} diff --git a/test/tint/builtins/gen/literal/select/17441a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/17441a.wgsl.expected.fxc.hlsl new file mode 100644 index 0000000000..9051e8cd93 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/17441a.wgsl.expected.fxc.hlsl @@ -0,0 +1,30 @@ +void select_17441a() { + int4 res = (1).xxxx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_17441a(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_17441a(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_17441a(); + return; +} diff --git a/test/tint/builtins/gen/literal/select/17441a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/17441a.wgsl.expected.glsl new file mode 100644 index 0000000000..28ec5fab8f --- /dev/null +++ b/test/tint/builtins/gen/literal/select/17441a.wgsl.expected.glsl @@ -0,0 +1,49 @@ +#version 310 es + +void select_17441a() { + ivec4 res = ivec4(1); +} + +vec4 vertex_main() { + select_17441a(); + return vec4(0.0f); +} + +void main() { + gl_PointSize = 1.0; + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +void select_17441a() { + ivec4 res = ivec4(1); +} + +void fragment_main() { + select_17441a(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +void select_17441a() { + ivec4 res = ivec4(1); +} + +void compute_main() { + select_17441a(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +} diff --git a/test/tint/builtins/gen/literal/select/17441a.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/17441a.wgsl.expected.msl new file mode 100644 index 0000000000..c5476ad676 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/17441a.wgsl.expected.msl @@ -0,0 +1,33 @@ +#include + +using namespace metal; +void select_17441a() { + int4 res = int4(1); +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + select_17441a(); + return float4(0.0f); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + select_17441a(); + return; +} + +kernel void compute_main() { + select_17441a(); + return; +} + diff --git a/test/tint/builtins/gen/literal/select/17441a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/17441a.wgsl.expected.spvasm new file mode 100644 index 0000000000..e1b41e5d56 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/17441a.wgsl.expected.spvasm @@ -0,0 +1,68 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 34 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %select_17441a "select_17441a" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %void = OpTypeVoid + %9 = OpTypeFunction %void + %int = OpTypeInt 32 1 + %v4int = OpTypeVector %int 4 + %int_1 = OpConstant %int 1 + %16 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1 +%_ptr_Function_v4int = OpTypePointer Function %v4int + %19 = OpConstantNull %v4int + %20 = OpTypeFunction %v4float + %float_1 = OpConstant %float 1 +%select_17441a = OpFunction %void None %9 + %12 = OpLabel + %res = OpVariable %_ptr_Function_v4int Function %19 + OpStore %res %16 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %20 + %22 = OpLabel + %23 = OpFunctionCall %void %select_17441a + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %9 + %25 = OpLabel + %26 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %26 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %9 + %29 = OpLabel + %30 = OpFunctionCall %void %select_17441a + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 + %32 = OpLabel + %33 = OpFunctionCall %void %select_17441a + OpReturn + OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/17441a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/17441a.wgsl.expected.wgsl new file mode 100644 index 0000000000..c67c505812 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/17441a.wgsl.expected.wgsl @@ -0,0 +1,19 @@ +fn select_17441a() { + var res = select(vec4(1), vec4(1), true); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_17441a(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_17441a(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_17441a(); +} diff --git a/test/tint/builtins/gen/literal/select/1ada2a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/1ada2a.wgsl.expected.dxc.hlsl index 87d78068f0..c719f6c792 100644 --- a/test/tint/builtins/gen/literal/select/1ada2a.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/select/1ada2a.wgsl.expected.dxc.hlsl @@ -1,5 +1,5 @@ void select_1ada2a() { - vector res = (true ? (float16_t(0.0h)).xxx : (float16_t(0.0h)).xxx); + vector res = (float16_t(0.0h)).xxx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/1ada2a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/1ada2a.wgsl.expected.glsl index 63526f1b59..9150c64460 100644 --- a/test/tint/builtins/gen/literal/select/1ada2a.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/select/1ada2a.wgsl.expected.glsl @@ -2,7 +2,7 @@ #extension GL_AMD_gpu_shader_half_float : require void select_1ada2a() { - f16vec3 res = (true ? f16vec3(0.0hf) : f16vec3(0.0hf)); + f16vec3 res = f16vec3(0.0hf); } vec4 vertex_main() { @@ -23,7 +23,7 @@ void main() { precision mediump float; void select_1ada2a() { - f16vec3 res = (true ? f16vec3(0.0hf) : f16vec3(0.0hf)); + f16vec3 res = f16vec3(0.0hf); } void fragment_main() { @@ -38,7 +38,7 @@ void main() { #extension GL_AMD_gpu_shader_half_float : require void select_1ada2a() { - f16vec3 res = (true ? f16vec3(0.0hf) : f16vec3(0.0hf)); + f16vec3 res = f16vec3(0.0hf); } void compute_main() { diff --git a/test/tint/builtins/gen/literal/select/1ada2a.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/1ada2a.wgsl.expected.msl index bc21eda6ab..f310524c5a 100644 --- a/test/tint/builtins/gen/literal/select/1ada2a.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/select/1ada2a.wgsl.expected.msl @@ -2,7 +2,7 @@ using namespace metal; void select_1ada2a() { - half3 res = select(half3(0.0h), half3(0.0h), true); + half3 res = half3(0.0h); } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/1ada2a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/1ada2a.wgsl.expected.spvasm index 23393570b4..e2e371bd27 100644 --- a/test/tint/builtins/gen/literal/select/1ada2a.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/select/1ada2a.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 40 +; Bound: 32 ; Schema: 0 OpCapability Shader OpCapability Float16 @@ -36,43 +36,35 @@ %9 = OpTypeFunction %void %half = OpTypeFloat 16 %v3half = OpTypeVector %half 3 - %bool = OpTypeBool - %true = OpConstantTrue %bool - %18 = OpConstantNull %v3half - %v3bool = OpTypeVector %bool 3 -%_ptr_Function_v3bool = OpTypePointer Function %v3bool - %22 = OpConstantNull %v3bool + %15 = OpConstantNull %v3half %_ptr_Function_v3half = OpTypePointer Function %v3half - %26 = OpTypeFunction %v4float + %18 = OpTypeFunction %v4float %float_1 = OpConstant %float 1 %select_1ada2a = OpFunction %void None %9 %12 = OpLabel - %20 = OpVariable %_ptr_Function_v3bool Function %22 - %res = OpVariable %_ptr_Function_v3half Function %18 - %23 = OpCompositeConstruct %v3bool %true %true %true - %13 = OpSelect %v3half %23 %18 %18 - OpStore %res %13 + %res = OpVariable %_ptr_Function_v3half Function %15 + OpStore %res %15 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %26 - %28 = OpLabel - %29 = OpFunctionCall %void %select_1ada2a +%vertex_main_inner = OpFunction %v4float None %18 + %20 = OpLabel + %21 = OpFunctionCall %void %select_1ada2a OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %31 = OpLabel - %32 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %32 + %23 = OpLabel + %24 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %24 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 - %35 = OpLabel - %36 = OpFunctionCall %void %select_1ada2a + %27 = OpLabel + %28 = OpFunctionCall %void %select_1ada2a OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9 - %38 = OpLabel - %39 = OpFunctionCall %void %select_1ada2a + %30 = OpLabel + %31 = OpFunctionCall %void %select_1ada2a OpReturn OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.dxc.hlsl index 19b70cc884..4fd33a5c0d 100644 --- a/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.dxc.hlsl @@ -1,5 +1,5 @@ void select_1e960b() { - uint2 res = ((true).xx ? (1u).xx : (1u).xx); + uint2 res = (1u).xx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.fxc.hlsl index 19b70cc884..4fd33a5c0d 100644 --- a/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.fxc.hlsl +++ b/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.fxc.hlsl @@ -1,5 +1,5 @@ void select_1e960b() { - uint2 res = ((true).xx ? (1u).xx : (1u).xx); + uint2 res = (1u).xx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.glsl index 54ed91da7a..57e10012a7 100644 --- a/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.glsl @@ -1,7 +1,7 @@ #version 310 es void select_1e960b() { - uvec2 res = mix(uvec2(1u), uvec2(1u), bvec2(true)); + uvec2 res = uvec2(1u); } vec4 vertex_main() { @@ -21,7 +21,7 @@ void main() { precision mediump float; void select_1e960b() { - uvec2 res = mix(uvec2(1u), uvec2(1u), bvec2(true)); + uvec2 res = uvec2(1u); } void fragment_main() { @@ -35,7 +35,7 @@ void main() { #version 310 es void select_1e960b() { - uvec2 res = mix(uvec2(1u), uvec2(1u), bvec2(true)); + uvec2 res = uvec2(1u); } void compute_main() { diff --git a/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.msl index b540a011aa..082d901f77 100644 --- a/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.msl @@ -2,7 +2,7 @@ using namespace metal; void select_1e960b() { - uint2 res = select(uint2(1u), uint2(1u), bool2(true)); + uint2 res = uint2(1u); } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.spvasm index a564f3192e..2b108b9f7a 100644 --- a/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 39 +; Bound: 34 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -32,42 +32,37 @@ %9 = OpTypeFunction %void %uint = OpTypeInt 32 0 %v2uint = OpTypeVector %uint 2 - %bool = OpTypeBool - %v2bool = OpTypeVector %bool 2 - %true = OpConstantTrue %bool - %19 = OpConstantComposite %v2bool %true %true %uint_1 = OpConstant %uint 1 - %21 = OpConstantComposite %v2uint %uint_1 %uint_1 + %16 = OpConstantComposite %v2uint %uint_1 %uint_1 %_ptr_Function_v2uint = OpTypePointer Function %v2uint - %24 = OpConstantNull %v2uint - %25 = OpTypeFunction %v4float + %19 = OpConstantNull %v2uint + %20 = OpTypeFunction %v4float %float_1 = OpConstant %float 1 %select_1e960b = OpFunction %void None %9 %12 = OpLabel - %res = OpVariable %_ptr_Function_v2uint Function %24 - %13 = OpSelect %v2uint %19 %21 %21 - OpStore %res %13 + %res = OpVariable %_ptr_Function_v2uint Function %19 + OpStore %res %16 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %25 - %27 = OpLabel - %28 = OpFunctionCall %void %select_1e960b +%vertex_main_inner = OpFunction %v4float None %20 + %22 = OpLabel + %23 = OpFunctionCall %void %select_1e960b OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %30 = OpLabel - %31 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %31 + %25 = OpLabel + %26 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %26 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 - %34 = OpLabel - %35 = OpFunctionCall %void %select_1e960b + %29 = OpLabel + %30 = OpFunctionCall %void %select_1e960b OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9 - %37 = OpLabel - %38 = OpFunctionCall %void %select_1e960b + %32 = OpLabel + %33 = OpFunctionCall %void %select_1e960b OpReturn OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/1f4d93.wgsl b/test/tint/builtins/gen/literal/select/1f4d93.wgsl new file mode 100644 index 0000000000..39fc716010 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/1f4d93.wgsl @@ -0,0 +1,43 @@ +// Copyright 2022 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//////////////////////////////////////////////////////////////////////////////// +// File generated by tools/src/cmd/gen +// using the template: +// test/tint/builtins/gen/gen.wgsl.tmpl +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn select(vec<2, fa>, vec<2, fa>, vec<2, bool>) -> vec<2, fa> +fn select_1f4d93() { + var res = select(vec2(1), vec2(1), vec2(true)); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_1f4d93(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_1f4d93(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_1f4d93(); +} diff --git a/test/tint/builtins/gen/literal/select/1f4d93.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/1f4d93.wgsl.expected.dxc.hlsl new file mode 100644 index 0000000000..82aa3bdaee --- /dev/null +++ b/test/tint/builtins/gen/literal/select/1f4d93.wgsl.expected.dxc.hlsl @@ -0,0 +1,30 @@ +void select_1f4d93() { + int2 res = (1).xx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_1f4d93(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_1f4d93(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_1f4d93(); + return; +} diff --git a/test/tint/builtins/gen/literal/select/1f4d93.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/1f4d93.wgsl.expected.fxc.hlsl new file mode 100644 index 0000000000..82aa3bdaee --- /dev/null +++ b/test/tint/builtins/gen/literal/select/1f4d93.wgsl.expected.fxc.hlsl @@ -0,0 +1,30 @@ +void select_1f4d93() { + int2 res = (1).xx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_1f4d93(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_1f4d93(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_1f4d93(); + return; +} diff --git a/test/tint/builtins/gen/literal/select/1f4d93.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/1f4d93.wgsl.expected.glsl new file mode 100644 index 0000000000..cfee134fbb --- /dev/null +++ b/test/tint/builtins/gen/literal/select/1f4d93.wgsl.expected.glsl @@ -0,0 +1,49 @@ +#version 310 es + +void select_1f4d93() { + ivec2 res = ivec2(1); +} + +vec4 vertex_main() { + select_1f4d93(); + return vec4(0.0f); +} + +void main() { + gl_PointSize = 1.0; + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +void select_1f4d93() { + ivec2 res = ivec2(1); +} + +void fragment_main() { + select_1f4d93(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +void select_1f4d93() { + ivec2 res = ivec2(1); +} + +void compute_main() { + select_1f4d93(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +} diff --git a/test/tint/builtins/gen/literal/select/1f4d93.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/1f4d93.wgsl.expected.msl new file mode 100644 index 0000000000..d0a3e49a3f --- /dev/null +++ b/test/tint/builtins/gen/literal/select/1f4d93.wgsl.expected.msl @@ -0,0 +1,33 @@ +#include + +using namespace metal; +void select_1f4d93() { + int2 res = int2(1); +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + select_1f4d93(); + return float4(0.0f); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + select_1f4d93(); + return; +} + +kernel void compute_main() { + select_1f4d93(); + return; +} + diff --git a/test/tint/builtins/gen/literal/select/1f4d93.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/1f4d93.wgsl.expected.spvasm new file mode 100644 index 0000000000..839806a5cf --- /dev/null +++ b/test/tint/builtins/gen/literal/select/1f4d93.wgsl.expected.spvasm @@ -0,0 +1,68 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 34 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %select_1f4d93 "select_1f4d93" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %void = OpTypeVoid + %9 = OpTypeFunction %void + %int = OpTypeInt 32 1 + %v2int = OpTypeVector %int 2 + %int_1 = OpConstant %int 1 + %16 = OpConstantComposite %v2int %int_1 %int_1 +%_ptr_Function_v2int = OpTypePointer Function %v2int + %19 = OpConstantNull %v2int + %20 = OpTypeFunction %v4float + %float_1 = OpConstant %float 1 +%select_1f4d93 = OpFunction %void None %9 + %12 = OpLabel + %res = OpVariable %_ptr_Function_v2int Function %19 + OpStore %res %16 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %20 + %22 = OpLabel + %23 = OpFunctionCall %void %select_1f4d93 + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %9 + %25 = OpLabel + %26 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %26 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %9 + %29 = OpLabel + %30 = OpFunctionCall %void %select_1f4d93 + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 + %32 = OpLabel + %33 = OpFunctionCall %void %select_1f4d93 + OpReturn + OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/1f4d93.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/1f4d93.wgsl.expected.wgsl new file mode 100644 index 0000000000..bb7262bb9d --- /dev/null +++ b/test/tint/builtins/gen/literal/select/1f4d93.wgsl.expected.wgsl @@ -0,0 +1,19 @@ +fn select_1f4d93() { + var res = select(vec2(1), vec2(1), vec2(true)); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_1f4d93(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_1f4d93(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_1f4d93(); +} diff --git a/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.dxc.hlsl index 2dc967e483..6503dc5934 100644 --- a/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.dxc.hlsl @@ -1,5 +1,5 @@ void select_266aff() { - float2 res = ((true).xx ? (1.0f).xx : (1.0f).xx); + float2 res = (1.0f).xx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.fxc.hlsl index 2dc967e483..6503dc5934 100644 --- a/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.fxc.hlsl +++ b/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.fxc.hlsl @@ -1,5 +1,5 @@ void select_266aff() { - float2 res = ((true).xx ? (1.0f).xx : (1.0f).xx); + float2 res = (1.0f).xx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.glsl index 8eb8ecfb4c..8fed55e8b8 100644 --- a/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.glsl @@ -1,7 +1,7 @@ #version 310 es void select_266aff() { - vec2 res = mix(vec2(1.0f), vec2(1.0f), bvec2(true)); + vec2 res = vec2(1.0f); } vec4 vertex_main() { @@ -21,7 +21,7 @@ void main() { precision mediump float; void select_266aff() { - vec2 res = mix(vec2(1.0f), vec2(1.0f), bvec2(true)); + vec2 res = vec2(1.0f); } void fragment_main() { @@ -35,7 +35,7 @@ void main() { #version 310 es void select_266aff() { - vec2 res = mix(vec2(1.0f), vec2(1.0f), bvec2(true)); + vec2 res = vec2(1.0f); } void compute_main() { diff --git a/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.msl index fb2037e2d2..e60d44f2d4 100644 --- a/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.msl @@ -2,7 +2,7 @@ using namespace metal; void select_266aff() { - float2 res = select(float2(1.0f), float2(1.0f), bool2(true)); + float2 res = float2(1.0f); } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.spvasm index 131a743713..7232eb8864 100644 --- a/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 37 +; Bound: 32 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -31,41 +31,36 @@ %void = OpTypeVoid %9 = OpTypeFunction %void %v2float = OpTypeVector %float 2 - %bool = OpTypeBool - %v2bool = OpTypeVector %bool 2 - %true = OpConstantTrue %bool - %18 = OpConstantComposite %v2bool %true %true %float_1 = OpConstant %float 1 - %20 = OpConstantComposite %v2float %float_1 %float_1 + %15 = OpConstantComposite %v2float %float_1 %float_1 %_ptr_Function_v2float = OpTypePointer Function %v2float - %23 = OpConstantNull %v2float - %24 = OpTypeFunction %v4float + %18 = OpConstantNull %v2float + %19 = OpTypeFunction %v4float %select_266aff = OpFunction %void None %9 %12 = OpLabel - %res = OpVariable %_ptr_Function_v2float Function %23 - %13 = OpSelect %v2float %18 %20 %20 - OpStore %res %13 + %res = OpVariable %_ptr_Function_v2float Function %18 + OpStore %res %15 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %24 - %26 = OpLabel - %27 = OpFunctionCall %void %select_266aff +%vertex_main_inner = OpFunction %v4float None %19 + %21 = OpLabel + %22 = OpFunctionCall %void %select_266aff OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %29 = OpLabel - %30 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %30 + %24 = OpLabel + %25 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %25 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 - %32 = OpLabel - %33 = OpFunctionCall %void %select_266aff + %27 = OpLabel + %28 = OpFunctionCall %void %select_266aff OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9 - %35 = OpLabel - %36 = OpFunctionCall %void %select_266aff + %30 = OpLabel + %31 = OpFunctionCall %void %select_266aff OpReturn OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.dxc.hlsl index 839a95c951..c461d57ef8 100644 --- a/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.dxc.hlsl @@ -1,5 +1,5 @@ void select_28a27e() { - uint3 res = ((true).xxx ? (1u).xxx : (1u).xxx); + uint3 res = (1u).xxx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.fxc.hlsl index 839a95c951..c461d57ef8 100644 --- a/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.fxc.hlsl +++ b/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.fxc.hlsl @@ -1,5 +1,5 @@ void select_28a27e() { - uint3 res = ((true).xxx ? (1u).xxx : (1u).xxx); + uint3 res = (1u).xxx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.glsl index 6085586885..741758b9c5 100644 --- a/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.glsl @@ -1,7 +1,7 @@ #version 310 es void select_28a27e() { - uvec3 res = mix(uvec3(1u), uvec3(1u), bvec3(true)); + uvec3 res = uvec3(1u); } vec4 vertex_main() { @@ -21,7 +21,7 @@ void main() { precision mediump float; void select_28a27e() { - uvec3 res = mix(uvec3(1u), uvec3(1u), bvec3(true)); + uvec3 res = uvec3(1u); } void fragment_main() { @@ -35,7 +35,7 @@ void main() { #version 310 es void select_28a27e() { - uvec3 res = mix(uvec3(1u), uvec3(1u), bvec3(true)); + uvec3 res = uvec3(1u); } void compute_main() { diff --git a/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.msl index af33466ffd..bc5889d72f 100644 --- a/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.msl @@ -2,7 +2,7 @@ using namespace metal; void select_28a27e() { - uint3 res = select(uint3(1u), uint3(1u), bool3(true)); + uint3 res = uint3(1u); } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.spvasm index 33269e9871..e6ceb98c7c 100644 --- a/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 39 +; Bound: 34 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -32,42 +32,37 @@ %9 = OpTypeFunction %void %uint = OpTypeInt 32 0 %v3uint = OpTypeVector %uint 3 - %bool = OpTypeBool - %v3bool = OpTypeVector %bool 3 - %true = OpConstantTrue %bool - %19 = OpConstantComposite %v3bool %true %true %true %uint_1 = OpConstant %uint 1 - %21 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1 + %16 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1 %_ptr_Function_v3uint = OpTypePointer Function %v3uint - %24 = OpConstantNull %v3uint - %25 = OpTypeFunction %v4float + %19 = OpConstantNull %v3uint + %20 = OpTypeFunction %v4float %float_1 = OpConstant %float 1 %select_28a27e = OpFunction %void None %9 %12 = OpLabel - %res = OpVariable %_ptr_Function_v3uint Function %24 - %13 = OpSelect %v3uint %19 %21 %21 - OpStore %res %13 + %res = OpVariable %_ptr_Function_v3uint Function %19 + OpStore %res %16 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %25 - %27 = OpLabel - %28 = OpFunctionCall %void %select_28a27e +%vertex_main_inner = OpFunction %v4float None %20 + %22 = OpLabel + %23 = OpFunctionCall %void %select_28a27e OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %30 = OpLabel - %31 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %31 + %25 = OpLabel + %26 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %26 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 - %34 = OpLabel - %35 = OpFunctionCall %void %select_28a27e + %29 = OpLabel + %30 = OpFunctionCall %void %select_28a27e OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9 - %37 = OpLabel - %38 = OpFunctionCall %void %select_28a27e + %32 = OpLabel + %33 = OpFunctionCall %void %select_28a27e OpReturn OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/2c96d4.wgsl b/test/tint/builtins/gen/literal/select/2c96d4.wgsl new file mode 100644 index 0000000000..561e714afe --- /dev/null +++ b/test/tint/builtins/gen/literal/select/2c96d4.wgsl @@ -0,0 +1,43 @@ +// Copyright 2022 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//////////////////////////////////////////////////////////////////////////////// +// File generated by tools/src/cmd/gen +// using the template: +// test/tint/builtins/gen/gen.wgsl.tmpl +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn select(vec<3, fa>, vec<3, fa>, vec<3, bool>) -> vec<3, fa> +fn select_2c96d4() { + var res = select(vec3(1), vec3(1), vec3(true)); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_2c96d4(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_2c96d4(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_2c96d4(); +} diff --git a/test/tint/builtins/gen/literal/select/2c96d4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/2c96d4.wgsl.expected.dxc.hlsl new file mode 100644 index 0000000000..e2a7f24b98 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/2c96d4.wgsl.expected.dxc.hlsl @@ -0,0 +1,30 @@ +void select_2c96d4() { + int3 res = (1).xxx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_2c96d4(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_2c96d4(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_2c96d4(); + return; +} diff --git a/test/tint/builtins/gen/literal/select/2c96d4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/2c96d4.wgsl.expected.fxc.hlsl new file mode 100644 index 0000000000..e2a7f24b98 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/2c96d4.wgsl.expected.fxc.hlsl @@ -0,0 +1,30 @@ +void select_2c96d4() { + int3 res = (1).xxx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_2c96d4(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_2c96d4(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_2c96d4(); + return; +} diff --git a/test/tint/builtins/gen/literal/select/2c96d4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/2c96d4.wgsl.expected.glsl new file mode 100644 index 0000000000..1d78e5a87d --- /dev/null +++ b/test/tint/builtins/gen/literal/select/2c96d4.wgsl.expected.glsl @@ -0,0 +1,49 @@ +#version 310 es + +void select_2c96d4() { + ivec3 res = ivec3(1); +} + +vec4 vertex_main() { + select_2c96d4(); + return vec4(0.0f); +} + +void main() { + gl_PointSize = 1.0; + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +void select_2c96d4() { + ivec3 res = ivec3(1); +} + +void fragment_main() { + select_2c96d4(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +void select_2c96d4() { + ivec3 res = ivec3(1); +} + +void compute_main() { + select_2c96d4(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +} diff --git a/test/tint/builtins/gen/literal/select/2c96d4.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/2c96d4.wgsl.expected.msl new file mode 100644 index 0000000000..dcea1607fa --- /dev/null +++ b/test/tint/builtins/gen/literal/select/2c96d4.wgsl.expected.msl @@ -0,0 +1,33 @@ +#include + +using namespace metal; +void select_2c96d4() { + int3 res = int3(1); +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + select_2c96d4(); + return float4(0.0f); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + select_2c96d4(); + return; +} + +kernel void compute_main() { + select_2c96d4(); + return; +} + diff --git a/test/tint/builtins/gen/literal/select/2c96d4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/2c96d4.wgsl.expected.spvasm new file mode 100644 index 0000000000..7c2242828b --- /dev/null +++ b/test/tint/builtins/gen/literal/select/2c96d4.wgsl.expected.spvasm @@ -0,0 +1,68 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 34 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %select_2c96d4 "select_2c96d4" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %void = OpTypeVoid + %9 = OpTypeFunction %void + %int = OpTypeInt 32 1 + %v3int = OpTypeVector %int 3 + %int_1 = OpConstant %int 1 + %16 = OpConstantComposite %v3int %int_1 %int_1 %int_1 +%_ptr_Function_v3int = OpTypePointer Function %v3int + %19 = OpConstantNull %v3int + %20 = OpTypeFunction %v4float + %float_1 = OpConstant %float 1 +%select_2c96d4 = OpFunction %void None %9 + %12 = OpLabel + %res = OpVariable %_ptr_Function_v3int Function %19 + OpStore %res %16 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %20 + %22 = OpLabel + %23 = OpFunctionCall %void %select_2c96d4 + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %9 + %25 = OpLabel + %26 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %26 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %9 + %29 = OpLabel + %30 = OpFunctionCall %void %select_2c96d4 + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 + %32 = OpLabel + %33 = OpFunctionCall %void %select_2c96d4 + OpReturn + OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/2c96d4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/2c96d4.wgsl.expected.wgsl new file mode 100644 index 0000000000..1206e993f7 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/2c96d4.wgsl.expected.wgsl @@ -0,0 +1,19 @@ +fn select_2c96d4() { + var res = select(vec3(1), vec3(1), vec3(true)); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_2c96d4(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_2c96d4(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_2c96d4(); +} diff --git a/test/tint/builtins/gen/literal/select/3a14be.wgsl b/test/tint/builtins/gen/literal/select/3a14be.wgsl new file mode 100644 index 0000000000..1913688174 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/3a14be.wgsl @@ -0,0 +1,43 @@ +// Copyright 2022 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//////////////////////////////////////////////////////////////////////////////// +// File generated by tools/src/cmd/gen +// using the template: +// test/tint/builtins/gen/gen.wgsl.tmpl +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn select(vec<2, ia>, vec<2, ia>, bool) -> vec<2, ia> +fn select_3a14be() { + var res = select(vec2(1.0), vec2(1.0), true); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_3a14be(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_3a14be(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_3a14be(); +} diff --git a/test/tint/builtins/gen/literal/select/3a14be.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/3a14be.wgsl.expected.dxc.hlsl new file mode 100644 index 0000000000..22346fa625 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/3a14be.wgsl.expected.dxc.hlsl @@ -0,0 +1,30 @@ +void select_3a14be() { + float2 res = (1.0f).xx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_3a14be(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_3a14be(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_3a14be(); + return; +} diff --git a/test/tint/builtins/gen/literal/select/3a14be.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/3a14be.wgsl.expected.fxc.hlsl new file mode 100644 index 0000000000..22346fa625 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/3a14be.wgsl.expected.fxc.hlsl @@ -0,0 +1,30 @@ +void select_3a14be() { + float2 res = (1.0f).xx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_3a14be(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_3a14be(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_3a14be(); + return; +} diff --git a/test/tint/builtins/gen/literal/select/3a14be.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/3a14be.wgsl.expected.glsl new file mode 100644 index 0000000000..e087441d7f --- /dev/null +++ b/test/tint/builtins/gen/literal/select/3a14be.wgsl.expected.glsl @@ -0,0 +1,49 @@ +#version 310 es + +void select_3a14be() { + vec2 res = vec2(1.0f); +} + +vec4 vertex_main() { + select_3a14be(); + return vec4(0.0f); +} + +void main() { + gl_PointSize = 1.0; + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +void select_3a14be() { + vec2 res = vec2(1.0f); +} + +void fragment_main() { + select_3a14be(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +void select_3a14be() { + vec2 res = vec2(1.0f); +} + +void compute_main() { + select_3a14be(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +} diff --git a/test/tint/builtins/gen/literal/select/3a14be.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/3a14be.wgsl.expected.msl new file mode 100644 index 0000000000..1b30556341 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/3a14be.wgsl.expected.msl @@ -0,0 +1,33 @@ +#include + +using namespace metal; +void select_3a14be() { + float2 res = float2(1.0f); +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + select_3a14be(); + return float4(0.0f); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + select_3a14be(); + return; +} + +kernel void compute_main() { + select_3a14be(); + return; +} + diff --git a/test/tint/builtins/gen/literal/select/3a14be.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/3a14be.wgsl.expected.spvasm new file mode 100644 index 0000000000..d2f8374dec --- /dev/null +++ b/test/tint/builtins/gen/literal/select/3a14be.wgsl.expected.spvasm @@ -0,0 +1,66 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 32 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %select_3a14be "select_3a14be" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %void = OpTypeVoid + %9 = OpTypeFunction %void + %v2float = OpTypeVector %float 2 + %float_1 = OpConstant %float 1 + %15 = OpConstantComposite %v2float %float_1 %float_1 +%_ptr_Function_v2float = OpTypePointer Function %v2float + %18 = OpConstantNull %v2float + %19 = OpTypeFunction %v4float +%select_3a14be = OpFunction %void None %9 + %12 = OpLabel + %res = OpVariable %_ptr_Function_v2float Function %18 + OpStore %res %15 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %19 + %21 = OpLabel + %22 = OpFunctionCall %void %select_3a14be + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %9 + %24 = OpLabel + %25 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %25 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %9 + %27 = OpLabel + %28 = OpFunctionCall %void %select_3a14be + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 + %30 = OpLabel + %31 = OpFunctionCall %void %select_3a14be + OpReturn + OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/3a14be.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/3a14be.wgsl.expected.wgsl new file mode 100644 index 0000000000..31e57a114d --- /dev/null +++ b/test/tint/builtins/gen/literal/select/3a14be.wgsl.expected.wgsl @@ -0,0 +1,19 @@ +fn select_3a14be() { + var res = select(vec2(1.0), vec2(1.0), true); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_3a14be(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_3a14be(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_3a14be(); +} diff --git a/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.dxc.hlsl index fdfa6e6df9..698ece9937 100644 --- a/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.dxc.hlsl @@ -1,5 +1,5 @@ void select_3c25ce() { - bool3 res = (true ? (true).xxx : (true).xxx); + bool3 res = (true).xxx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.fxc.hlsl index fdfa6e6df9..698ece9937 100644 --- a/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.fxc.hlsl +++ b/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.fxc.hlsl @@ -1,5 +1,5 @@ void select_3c25ce() { - bool3 res = (true ? (true).xxx : (true).xxx); + bool3 res = (true).xxx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.glsl index bac0f4e03e..aeecc20724 100644 --- a/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.glsl @@ -1,7 +1,7 @@ #version 310 es void select_3c25ce() { - bvec3 res = (true ? bvec3(true) : bvec3(true)); + bvec3 res = bvec3(true); } vec4 vertex_main() { @@ -21,7 +21,7 @@ void main() { precision mediump float; void select_3c25ce() { - bvec3 res = (true ? bvec3(true) : bvec3(true)); + bvec3 res = bvec3(true); } void fragment_main() { @@ -35,7 +35,7 @@ void main() { #version 310 es void select_3c25ce() { - bvec3 res = (true ? bvec3(true) : bvec3(true)); + bvec3 res = bvec3(true); } void compute_main() { diff --git a/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.msl index 2db2e7d2ba..771550e58b 100644 --- a/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.msl @@ -2,7 +2,7 @@ using namespace metal; void select_3c25ce() { - bool3 res = select(bool3(true), bool3(true), true); + bool3 res = bool3(true); } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.spvasm index ad81aedeb1..3aab9caf65 100644 --- a/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 37 +; Bound: 34 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -33,39 +33,36 @@ %bool = OpTypeBool %v3bool = OpTypeVector %bool 3 %true = OpConstantTrue %bool - %17 = OpConstantComposite %v3bool %true %true %true + %16 = OpConstantComposite %v3bool %true %true %true %_ptr_Function_v3bool = OpTypePointer Function %v3bool - %20 = OpConstantNull %v3bool - %23 = OpTypeFunction %v4float + %19 = OpConstantNull %v3bool + %20 = OpTypeFunction %v4float %float_1 = OpConstant %float 1 %select_3c25ce = OpFunction %void None %9 %12 = OpLabel - %18 = OpVariable %_ptr_Function_v3bool Function %20 - %res = OpVariable %_ptr_Function_v3bool Function %20 - %21 = OpCompositeConstruct %v3bool %true %true %true - %13 = OpSelect %v3bool %21 %17 %17 - OpStore %res %13 + %res = OpVariable %_ptr_Function_v3bool Function %19 + OpStore %res %16 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %23 - %25 = OpLabel - %26 = OpFunctionCall %void %select_3c25ce +%vertex_main_inner = OpFunction %v4float None %20 + %22 = OpLabel + %23 = OpFunctionCall %void %select_3c25ce OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %28 = OpLabel - %29 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %29 + %25 = OpLabel + %26 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %26 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 + %29 = OpLabel + %30 = OpFunctionCall %void %select_3c25ce + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 %32 = OpLabel %33 = OpFunctionCall %void %select_3c25ce OpReturn OpFunctionEnd -%compute_main = OpFunction %void None %9 - %35 = OpLabel - %36 = OpFunctionCall %void %select_3c25ce - OpReturn - OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.dxc.hlsl index 3ed856de2c..f5bb2ecd6a 100644 --- a/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.dxc.hlsl @@ -1,5 +1,5 @@ void select_416e14() { - float res = (true ? 1.0f : 1.0f); + float res = 1.0f; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.fxc.hlsl index 3ed856de2c..f5bb2ecd6a 100644 --- a/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.fxc.hlsl +++ b/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.fxc.hlsl @@ -1,5 +1,5 @@ void select_416e14() { - float res = (true ? 1.0f : 1.0f); + float res = 1.0f; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.glsl index fd8341b0a3..415d49f926 100644 --- a/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.glsl @@ -1,7 +1,7 @@ #version 310 es void select_416e14() { - float res = (true ? 1.0f : 1.0f); + float res = 1.0f; } vec4 vertex_main() { @@ -21,7 +21,7 @@ void main() { precision mediump float; void select_416e14() { - float res = (true ? 1.0f : 1.0f); + float res = 1.0f; } void fragment_main() { @@ -35,7 +35,7 @@ void main() { #version 310 es void select_416e14() { - float res = (true ? 1.0f : 1.0f); + float res = 1.0f; } void compute_main() { diff --git a/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.msl index 78cbe35012..952392a6f3 100644 --- a/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.msl @@ -2,7 +2,7 @@ using namespace metal; void select_416e14() { - float res = select(1.0f, 1.0f, true); + float res = 1.0f; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.spvasm index 1a8250f095..1142a57412 100644 --- a/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 32 +; Bound: 29 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -30,37 +30,34 @@ %vertex_point_size = OpVariable %_ptr_Output_float Output %8 %void = OpTypeVoid %9 = OpTypeFunction %void - %bool = OpTypeBool - %true = OpConstantTrue %bool %float_1 = OpConstant %float 1 %_ptr_Function_float = OpTypePointer Function %float - %19 = OpTypeFunction %v4float + %16 = OpTypeFunction %v4float %select_416e14 = OpFunction %void None %9 %12 = OpLabel %res = OpVariable %_ptr_Function_float Function %8 - %13 = OpSelect %float %true %float_1 %float_1 - OpStore %res %13 + OpStore %res %float_1 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %19 - %21 = OpLabel - %22 = OpFunctionCall %void %select_416e14 +%vertex_main_inner = OpFunction %v4float None %16 + %18 = OpLabel + %19 = OpFunctionCall %void %select_416e14 OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %24 = OpLabel - %25 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %25 + %21 = OpLabel + %22 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %22 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 + %24 = OpLabel + %25 = OpFunctionCall %void %select_416e14 + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 %27 = OpLabel %28 = OpFunctionCall %void %select_416e14 OpReturn OpFunctionEnd -%compute_main = OpFunction %void None %9 - %30 = OpLabel - %31 = OpFunctionCall %void %select_416e14 - OpReturn - OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/431dfb.wgsl b/test/tint/builtins/gen/literal/select/431dfb.wgsl new file mode 100644 index 0000000000..00c5f8f4e5 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/431dfb.wgsl @@ -0,0 +1,43 @@ +// Copyright 2022 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//////////////////////////////////////////////////////////////////////////////// +// File generated by tools/src/cmd/gen +// using the template: +// test/tint/builtins/gen/gen.wgsl.tmpl +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn select(vec<2, ia>, vec<2, ia>, vec<2, bool>) -> vec<2, ia> +fn select_431dfb() { + var res = select(vec2(1.0), vec2(1.0), vec2(true)); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_431dfb(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_431dfb(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_431dfb(); +} diff --git a/test/tint/builtins/gen/literal/select/431dfb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/431dfb.wgsl.expected.dxc.hlsl new file mode 100644 index 0000000000..ede2038f26 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/431dfb.wgsl.expected.dxc.hlsl @@ -0,0 +1,30 @@ +void select_431dfb() { + float2 res = (1.0f).xx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_431dfb(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_431dfb(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_431dfb(); + return; +} diff --git a/test/tint/builtins/gen/literal/select/431dfb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/431dfb.wgsl.expected.fxc.hlsl new file mode 100644 index 0000000000..ede2038f26 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/431dfb.wgsl.expected.fxc.hlsl @@ -0,0 +1,30 @@ +void select_431dfb() { + float2 res = (1.0f).xx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_431dfb(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_431dfb(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_431dfb(); + return; +} diff --git a/test/tint/builtins/gen/literal/select/431dfb.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/431dfb.wgsl.expected.glsl new file mode 100644 index 0000000000..41b39543ad --- /dev/null +++ b/test/tint/builtins/gen/literal/select/431dfb.wgsl.expected.glsl @@ -0,0 +1,49 @@ +#version 310 es + +void select_431dfb() { + vec2 res = vec2(1.0f); +} + +vec4 vertex_main() { + select_431dfb(); + return vec4(0.0f); +} + +void main() { + gl_PointSize = 1.0; + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +void select_431dfb() { + vec2 res = vec2(1.0f); +} + +void fragment_main() { + select_431dfb(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +void select_431dfb() { + vec2 res = vec2(1.0f); +} + +void compute_main() { + select_431dfb(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +} diff --git a/test/tint/builtins/gen/literal/select/431dfb.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/431dfb.wgsl.expected.msl new file mode 100644 index 0000000000..7f93cbc57c --- /dev/null +++ b/test/tint/builtins/gen/literal/select/431dfb.wgsl.expected.msl @@ -0,0 +1,33 @@ +#include + +using namespace metal; +void select_431dfb() { + float2 res = float2(1.0f); +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + select_431dfb(); + return float4(0.0f); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + select_431dfb(); + return; +} + +kernel void compute_main() { + select_431dfb(); + return; +} + diff --git a/test/tint/builtins/gen/literal/select/431dfb.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/431dfb.wgsl.expected.spvasm new file mode 100644 index 0000000000..3fa7edfe87 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/431dfb.wgsl.expected.spvasm @@ -0,0 +1,66 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 32 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %select_431dfb "select_431dfb" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %void = OpTypeVoid + %9 = OpTypeFunction %void + %v2float = OpTypeVector %float 2 + %float_1 = OpConstant %float 1 + %15 = OpConstantComposite %v2float %float_1 %float_1 +%_ptr_Function_v2float = OpTypePointer Function %v2float + %18 = OpConstantNull %v2float + %19 = OpTypeFunction %v4float +%select_431dfb = OpFunction %void None %9 + %12 = OpLabel + %res = OpVariable %_ptr_Function_v2float Function %18 + OpStore %res %15 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %19 + %21 = OpLabel + %22 = OpFunctionCall %void %select_431dfb + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %9 + %24 = OpLabel + %25 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %25 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %9 + %27 = OpLabel + %28 = OpFunctionCall %void %select_431dfb + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 + %30 = OpLabel + %31 = OpFunctionCall %void %select_431dfb + OpReturn + OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/431dfb.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/431dfb.wgsl.expected.wgsl new file mode 100644 index 0000000000..19e7f957c3 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/431dfb.wgsl.expected.wgsl @@ -0,0 +1,19 @@ +fn select_431dfb() { + var res = select(vec2(1.0), vec2(1.0), vec2(true)); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_431dfb(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_431dfb(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_431dfb(); +} diff --git a/test/tint/builtins/gen/literal/select/43741e.wgsl b/test/tint/builtins/gen/literal/select/43741e.wgsl new file mode 100644 index 0000000000..bfc51fb25b --- /dev/null +++ b/test/tint/builtins/gen/literal/select/43741e.wgsl @@ -0,0 +1,43 @@ +// Copyright 2022 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//////////////////////////////////////////////////////////////////////////////// +// File generated by tools/src/cmd/gen +// using the template: +// test/tint/builtins/gen/gen.wgsl.tmpl +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn select(vec<4, fa>, vec<4, fa>, vec<4, bool>) -> vec<4, fa> +fn select_43741e() { + var res = select(vec4(1), vec4(1), vec4(true)); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_43741e(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_43741e(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_43741e(); +} diff --git a/test/tint/builtins/gen/literal/select/43741e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/43741e.wgsl.expected.dxc.hlsl new file mode 100644 index 0000000000..5a9cab558b --- /dev/null +++ b/test/tint/builtins/gen/literal/select/43741e.wgsl.expected.dxc.hlsl @@ -0,0 +1,30 @@ +void select_43741e() { + int4 res = (1).xxxx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_43741e(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_43741e(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_43741e(); + return; +} diff --git a/test/tint/builtins/gen/literal/select/43741e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/43741e.wgsl.expected.fxc.hlsl new file mode 100644 index 0000000000..5a9cab558b --- /dev/null +++ b/test/tint/builtins/gen/literal/select/43741e.wgsl.expected.fxc.hlsl @@ -0,0 +1,30 @@ +void select_43741e() { + int4 res = (1).xxxx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_43741e(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_43741e(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_43741e(); + return; +} diff --git a/test/tint/builtins/gen/literal/select/43741e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/43741e.wgsl.expected.glsl new file mode 100644 index 0000000000..9b3d87dee3 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/43741e.wgsl.expected.glsl @@ -0,0 +1,49 @@ +#version 310 es + +void select_43741e() { + ivec4 res = ivec4(1); +} + +vec4 vertex_main() { + select_43741e(); + return vec4(0.0f); +} + +void main() { + gl_PointSize = 1.0; + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +void select_43741e() { + ivec4 res = ivec4(1); +} + +void fragment_main() { + select_43741e(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +void select_43741e() { + ivec4 res = ivec4(1); +} + +void compute_main() { + select_43741e(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +} diff --git a/test/tint/builtins/gen/literal/select/43741e.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/43741e.wgsl.expected.msl new file mode 100644 index 0000000000..13576be9fa --- /dev/null +++ b/test/tint/builtins/gen/literal/select/43741e.wgsl.expected.msl @@ -0,0 +1,33 @@ +#include + +using namespace metal; +void select_43741e() { + int4 res = int4(1); +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + select_43741e(); + return float4(0.0f); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + select_43741e(); + return; +} + +kernel void compute_main() { + select_43741e(); + return; +} + diff --git a/test/tint/builtins/gen/literal/select/43741e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/43741e.wgsl.expected.spvasm new file mode 100644 index 0000000000..35bb1f7f5c --- /dev/null +++ b/test/tint/builtins/gen/literal/select/43741e.wgsl.expected.spvasm @@ -0,0 +1,68 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 34 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %select_43741e "select_43741e" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %void = OpTypeVoid + %9 = OpTypeFunction %void + %int = OpTypeInt 32 1 + %v4int = OpTypeVector %int 4 + %int_1 = OpConstant %int 1 + %16 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1 +%_ptr_Function_v4int = OpTypePointer Function %v4int + %19 = OpConstantNull %v4int + %20 = OpTypeFunction %v4float + %float_1 = OpConstant %float 1 +%select_43741e = OpFunction %void None %9 + %12 = OpLabel + %res = OpVariable %_ptr_Function_v4int Function %19 + OpStore %res %16 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %20 + %22 = OpLabel + %23 = OpFunctionCall %void %select_43741e + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %9 + %25 = OpLabel + %26 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %26 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %9 + %29 = OpLabel + %30 = OpFunctionCall %void %select_43741e + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 + %32 = OpLabel + %33 = OpFunctionCall %void %select_43741e + OpReturn + OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/43741e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/43741e.wgsl.expected.wgsl new file mode 100644 index 0000000000..eacc89b6f7 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/43741e.wgsl.expected.wgsl @@ -0,0 +1,19 @@ +fn select_43741e() { + var res = select(vec4(1), vec4(1), vec4(true)); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_43741e(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_43741e(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_43741e(); +} diff --git a/test/tint/builtins/gen/literal/select/494051.wgsl b/test/tint/builtins/gen/literal/select/494051.wgsl new file mode 100644 index 0000000000..2034c91b73 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/494051.wgsl @@ -0,0 +1,43 @@ +// Copyright 2022 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//////////////////////////////////////////////////////////////////////////////// +// File generated by tools/src/cmd/gen +// using the template: +// test/tint/builtins/gen/gen.wgsl.tmpl +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn select(fa, fa, bool) -> fa +fn select_494051() { + var res = select(1, 1, true); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_494051(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_494051(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_494051(); +} diff --git a/test/tint/builtins/gen/literal/select/494051.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/494051.wgsl.expected.dxc.hlsl new file mode 100644 index 0000000000..14a81e01ac --- /dev/null +++ b/test/tint/builtins/gen/literal/select/494051.wgsl.expected.dxc.hlsl @@ -0,0 +1,30 @@ +void select_494051() { + int res = 1; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_494051(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_494051(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_494051(); + return; +} diff --git a/test/tint/builtins/gen/literal/select/494051.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/494051.wgsl.expected.fxc.hlsl new file mode 100644 index 0000000000..14a81e01ac --- /dev/null +++ b/test/tint/builtins/gen/literal/select/494051.wgsl.expected.fxc.hlsl @@ -0,0 +1,30 @@ +void select_494051() { + int res = 1; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_494051(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_494051(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_494051(); + return; +} diff --git a/test/tint/builtins/gen/literal/select/494051.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/494051.wgsl.expected.glsl new file mode 100644 index 0000000000..d098cb279d --- /dev/null +++ b/test/tint/builtins/gen/literal/select/494051.wgsl.expected.glsl @@ -0,0 +1,49 @@ +#version 310 es + +void select_494051() { + int res = 1; +} + +vec4 vertex_main() { + select_494051(); + return vec4(0.0f); +} + +void main() { + gl_PointSize = 1.0; + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +void select_494051() { + int res = 1; +} + +void fragment_main() { + select_494051(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +void select_494051() { + int res = 1; +} + +void compute_main() { + select_494051(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +} diff --git a/test/tint/builtins/gen/literal/select/494051.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/494051.wgsl.expected.msl new file mode 100644 index 0000000000..c10821f5c0 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/494051.wgsl.expected.msl @@ -0,0 +1,33 @@ +#include + +using namespace metal; +void select_494051() { + int res = 1; +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + select_494051(); + return float4(0.0f); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + select_494051(); + return; +} + +kernel void compute_main() { + select_494051(); + return; +} + diff --git a/test/tint/builtins/gen/literal/select/494051.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/494051.wgsl.expected.spvasm new file mode 100644 index 0000000000..c71721d906 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/494051.wgsl.expected.spvasm @@ -0,0 +1,66 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 32 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %select_494051 "select_494051" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %void = OpTypeVoid + %9 = OpTypeFunction %void + %int = OpTypeInt 32 1 + %int_1 = OpConstant %int 1 +%_ptr_Function_int = OpTypePointer Function %int + %17 = OpConstantNull %int + %18 = OpTypeFunction %v4float + %float_1 = OpConstant %float 1 +%select_494051 = OpFunction %void None %9 + %12 = OpLabel + %res = OpVariable %_ptr_Function_int Function %17 + OpStore %res %int_1 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %18 + %20 = OpLabel + %21 = OpFunctionCall %void %select_494051 + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %9 + %23 = OpLabel + %24 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %24 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %9 + %27 = OpLabel + %28 = OpFunctionCall %void %select_494051 + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 + %30 = OpLabel + %31 = OpFunctionCall %void %select_494051 + OpReturn + OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/494051.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/494051.wgsl.expected.wgsl new file mode 100644 index 0000000000..9a91518901 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/494051.wgsl.expected.wgsl @@ -0,0 +1,19 @@ +fn select_494051() { + var res = select(1, 1, true); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_494051(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_494051(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_494051(); +} diff --git a/test/tint/builtins/gen/literal/select/4c4738.wgsl b/test/tint/builtins/gen/literal/select/4c4738.wgsl new file mode 100644 index 0000000000..69541be854 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/4c4738.wgsl @@ -0,0 +1,43 @@ +// Copyright 2022 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//////////////////////////////////////////////////////////////////////////////// +// File generated by tools/src/cmd/gen +// using the template: +// test/tint/builtins/gen/gen.wgsl.tmpl +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn select(vec<4, ia>, vec<4, ia>, vec<4, bool>) -> vec<4, ia> +fn select_4c4738() { + var res = select(vec4(1.0), vec4(1.0), vec4(true)); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_4c4738(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_4c4738(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_4c4738(); +} diff --git a/test/tint/builtins/gen/literal/select/4c4738.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/4c4738.wgsl.expected.dxc.hlsl new file mode 100644 index 0000000000..2186b86378 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/4c4738.wgsl.expected.dxc.hlsl @@ -0,0 +1,30 @@ +void select_4c4738() { + float4 res = (1.0f).xxxx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_4c4738(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_4c4738(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_4c4738(); + return; +} diff --git a/test/tint/builtins/gen/literal/select/4c4738.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/4c4738.wgsl.expected.fxc.hlsl new file mode 100644 index 0000000000..2186b86378 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/4c4738.wgsl.expected.fxc.hlsl @@ -0,0 +1,30 @@ +void select_4c4738() { + float4 res = (1.0f).xxxx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_4c4738(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_4c4738(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_4c4738(); + return; +} diff --git a/test/tint/builtins/gen/literal/select/4c4738.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/4c4738.wgsl.expected.glsl new file mode 100644 index 0000000000..7fc35db97f --- /dev/null +++ b/test/tint/builtins/gen/literal/select/4c4738.wgsl.expected.glsl @@ -0,0 +1,49 @@ +#version 310 es + +void select_4c4738() { + vec4 res = vec4(1.0f); +} + +vec4 vertex_main() { + select_4c4738(); + return vec4(0.0f); +} + +void main() { + gl_PointSize = 1.0; + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +void select_4c4738() { + vec4 res = vec4(1.0f); +} + +void fragment_main() { + select_4c4738(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +void select_4c4738() { + vec4 res = vec4(1.0f); +} + +void compute_main() { + select_4c4738(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +} diff --git a/test/tint/builtins/gen/literal/select/4c4738.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/4c4738.wgsl.expected.msl new file mode 100644 index 0000000000..2ca6118472 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/4c4738.wgsl.expected.msl @@ -0,0 +1,33 @@ +#include + +using namespace metal; +void select_4c4738() { + float4 res = float4(1.0f); +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + select_4c4738(); + return float4(0.0f); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + select_4c4738(); + return; +} + +kernel void compute_main() { + select_4c4738(); + return; +} + diff --git a/test/tint/builtins/gen/literal/select/4c4738.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/4c4738.wgsl.expected.spvasm new file mode 100644 index 0000000000..9f57347df3 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/4c4738.wgsl.expected.spvasm @@ -0,0 +1,64 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 30 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %select_4c4738 "select_4c4738" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %void = OpTypeVoid + %9 = OpTypeFunction %void + %float_1 = OpConstant %float 1 + %14 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 +%_ptr_Function_v4float = OpTypePointer Function %v4float + %17 = OpTypeFunction %v4float +%select_4c4738 = OpFunction %void None %9 + %12 = OpLabel + %res = OpVariable %_ptr_Function_v4float Function %5 + OpStore %res %14 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %17 + %19 = OpLabel + %20 = OpFunctionCall %void %select_4c4738 + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %9 + %22 = OpLabel + %23 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %23 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %9 + %25 = OpLabel + %26 = OpFunctionCall %void %select_4c4738 + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 + %28 = OpLabel + %29 = OpFunctionCall %void %select_4c4738 + OpReturn + OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/4c4738.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/4c4738.wgsl.expected.wgsl new file mode 100644 index 0000000000..af92edb972 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/4c4738.wgsl.expected.wgsl @@ -0,0 +1,19 @@ +fn select_4c4738() { + var res = select(vec4(1.0), vec4(1.0), vec4(true)); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_4c4738(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_4c4738(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_4c4738(); +} diff --git a/test/tint/builtins/gen/literal/select/4e60da.wgsl b/test/tint/builtins/gen/literal/select/4e60da.wgsl new file mode 100644 index 0000000000..f40ff21861 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/4e60da.wgsl @@ -0,0 +1,43 @@ +// Copyright 2022 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//////////////////////////////////////////////////////////////////////////////// +// File generated by tools/src/cmd/gen +// using the template: +// test/tint/builtins/gen/gen.wgsl.tmpl +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn select(vec<2, fa>, vec<2, fa>, bool) -> vec<2, fa> +fn select_4e60da() { + var res = select(vec2(1), vec2(1), true); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_4e60da(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_4e60da(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_4e60da(); +} diff --git a/test/tint/builtins/gen/literal/select/4e60da.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/4e60da.wgsl.expected.dxc.hlsl new file mode 100644 index 0000000000..72f42f73dd --- /dev/null +++ b/test/tint/builtins/gen/literal/select/4e60da.wgsl.expected.dxc.hlsl @@ -0,0 +1,30 @@ +void select_4e60da() { + int2 res = (1).xx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_4e60da(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_4e60da(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_4e60da(); + return; +} diff --git a/test/tint/builtins/gen/literal/select/4e60da.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/4e60da.wgsl.expected.fxc.hlsl new file mode 100644 index 0000000000..72f42f73dd --- /dev/null +++ b/test/tint/builtins/gen/literal/select/4e60da.wgsl.expected.fxc.hlsl @@ -0,0 +1,30 @@ +void select_4e60da() { + int2 res = (1).xx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_4e60da(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_4e60da(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_4e60da(); + return; +} diff --git a/test/tint/builtins/gen/literal/select/4e60da.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/4e60da.wgsl.expected.glsl new file mode 100644 index 0000000000..815c0cebbf --- /dev/null +++ b/test/tint/builtins/gen/literal/select/4e60da.wgsl.expected.glsl @@ -0,0 +1,49 @@ +#version 310 es + +void select_4e60da() { + ivec2 res = ivec2(1); +} + +vec4 vertex_main() { + select_4e60da(); + return vec4(0.0f); +} + +void main() { + gl_PointSize = 1.0; + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +void select_4e60da() { + ivec2 res = ivec2(1); +} + +void fragment_main() { + select_4e60da(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +void select_4e60da() { + ivec2 res = ivec2(1); +} + +void compute_main() { + select_4e60da(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +} diff --git a/test/tint/builtins/gen/literal/select/4e60da.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/4e60da.wgsl.expected.msl new file mode 100644 index 0000000000..ad6911bb1a --- /dev/null +++ b/test/tint/builtins/gen/literal/select/4e60da.wgsl.expected.msl @@ -0,0 +1,33 @@ +#include + +using namespace metal; +void select_4e60da() { + int2 res = int2(1); +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + select_4e60da(); + return float4(0.0f); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + select_4e60da(); + return; +} + +kernel void compute_main() { + select_4e60da(); + return; +} + diff --git a/test/tint/builtins/gen/literal/select/4e60da.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/4e60da.wgsl.expected.spvasm new file mode 100644 index 0000000000..118769b519 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/4e60da.wgsl.expected.spvasm @@ -0,0 +1,68 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 34 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %select_4e60da "select_4e60da" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %void = OpTypeVoid + %9 = OpTypeFunction %void + %int = OpTypeInt 32 1 + %v2int = OpTypeVector %int 2 + %int_1 = OpConstant %int 1 + %16 = OpConstantComposite %v2int %int_1 %int_1 +%_ptr_Function_v2int = OpTypePointer Function %v2int + %19 = OpConstantNull %v2int + %20 = OpTypeFunction %v4float + %float_1 = OpConstant %float 1 +%select_4e60da = OpFunction %void None %9 + %12 = OpLabel + %res = OpVariable %_ptr_Function_v2int Function %19 + OpStore %res %16 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %20 + %22 = OpLabel + %23 = OpFunctionCall %void %select_4e60da + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %9 + %25 = OpLabel + %26 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %26 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %9 + %29 = OpLabel + %30 = OpFunctionCall %void %select_4e60da + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 + %32 = OpLabel + %33 = OpFunctionCall %void %select_4e60da + OpReturn + OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/4e60da.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/4e60da.wgsl.expected.wgsl new file mode 100644 index 0000000000..b913710aac --- /dev/null +++ b/test/tint/builtins/gen/literal/select/4e60da.wgsl.expected.wgsl @@ -0,0 +1,19 @@ +fn select_4e60da() { + var res = select(vec2(1), vec2(1), true); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_4e60da(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_4e60da(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_4e60da(); +} diff --git a/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.dxc.hlsl index 04067a8a6f..47079d0cfa 100644 --- a/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.dxc.hlsl @@ -1,5 +1,5 @@ void select_51b047() { - uint2 res = (true ? (1u).xx : (1u).xx); + uint2 res = (1u).xx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.fxc.hlsl index 04067a8a6f..47079d0cfa 100644 --- a/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.fxc.hlsl +++ b/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.fxc.hlsl @@ -1,5 +1,5 @@ void select_51b047() { - uint2 res = (true ? (1u).xx : (1u).xx); + uint2 res = (1u).xx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.glsl index cc8df231c9..00263d62fc 100644 --- a/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.glsl @@ -1,7 +1,7 @@ #version 310 es void select_51b047() { - uvec2 res = (true ? uvec2(1u) : uvec2(1u)); + uvec2 res = uvec2(1u); } vec4 vertex_main() { @@ -21,7 +21,7 @@ void main() { precision mediump float; void select_51b047() { - uvec2 res = (true ? uvec2(1u) : uvec2(1u)); + uvec2 res = uvec2(1u); } void fragment_main() { @@ -35,7 +35,7 @@ void main() { #version 310 es void select_51b047() { - uvec2 res = (true ? uvec2(1u) : uvec2(1u)); + uvec2 res = uvec2(1u); } void compute_main() { diff --git a/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.msl index ecc3ac7d3a..3024efc9e8 100644 --- a/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.msl @@ -2,7 +2,7 @@ using namespace metal; void select_51b047() { - uint2 res = select(uint2(1u), uint2(1u), true); + uint2 res = uint2(1u); } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.spvasm index 8ee6bdc6aa..303297830d 100644 --- a/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 42 +; Bound: 34 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -32,45 +32,37 @@ %9 = OpTypeFunction %void %uint = OpTypeInt 32 0 %v2uint = OpTypeVector %uint 2 - %bool = OpTypeBool - %true = OpConstantTrue %bool %uint_1 = OpConstant %uint 1 - %19 = OpConstantComposite %v2uint %uint_1 %uint_1 - %v2bool = OpTypeVector %bool 2 -%_ptr_Function_v2bool = OpTypePointer Function %v2bool - %23 = OpConstantNull %v2bool + %16 = OpConstantComposite %v2uint %uint_1 %uint_1 %_ptr_Function_v2uint = OpTypePointer Function %v2uint - %27 = OpConstantNull %v2uint - %28 = OpTypeFunction %v4float + %19 = OpConstantNull %v2uint + %20 = OpTypeFunction %v4float %float_1 = OpConstant %float 1 %select_51b047 = OpFunction %void None %9 %12 = OpLabel - %21 = OpVariable %_ptr_Function_v2bool Function %23 - %res = OpVariable %_ptr_Function_v2uint Function %27 - %24 = OpCompositeConstruct %v2bool %true %true - %13 = OpSelect %v2uint %24 %19 %19 - OpStore %res %13 + %res = OpVariable %_ptr_Function_v2uint Function %19 + OpStore %res %16 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %28 - %30 = OpLabel - %31 = OpFunctionCall %void %select_51b047 +%vertex_main_inner = OpFunction %v4float None %20 + %22 = OpLabel + %23 = OpFunctionCall %void %select_51b047 OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %33 = OpLabel - %34 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %34 + %25 = OpLabel + %26 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %26 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 - %37 = OpLabel - %38 = OpFunctionCall %void %select_51b047 + %29 = OpLabel + %30 = OpFunctionCall %void %select_51b047 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9 - %40 = OpLabel - %41 = OpFunctionCall %void %select_51b047 + %32 = OpLabel + %33 = OpFunctionCall %void %select_51b047 OpReturn OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/53d518.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/53d518.wgsl.expected.dxc.hlsl index 95ed17f271..861ff192ae 100644 --- a/test/tint/builtins/gen/literal/select/53d518.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/select/53d518.wgsl.expected.dxc.hlsl @@ -1,5 +1,5 @@ void select_53d518() { - vector res = ((true).xxx ? (float16_t(0.0h)).xxx : (float16_t(0.0h)).xxx); + vector res = (float16_t(0.0h)).xxx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/53d518.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/53d518.wgsl.expected.glsl index 1ecee212e7..b4d88fd6f7 100644 --- a/test/tint/builtins/gen/literal/select/53d518.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/select/53d518.wgsl.expected.glsl @@ -2,7 +2,7 @@ #extension GL_AMD_gpu_shader_half_float : require void select_53d518() { - f16vec3 res = mix(f16vec3(0.0hf), f16vec3(0.0hf), bvec3(true)); + f16vec3 res = f16vec3(0.0hf); } vec4 vertex_main() { @@ -23,7 +23,7 @@ void main() { precision mediump float; void select_53d518() { - f16vec3 res = mix(f16vec3(0.0hf), f16vec3(0.0hf), bvec3(true)); + f16vec3 res = f16vec3(0.0hf); } void fragment_main() { @@ -38,7 +38,7 @@ void main() { #extension GL_AMD_gpu_shader_half_float : require void select_53d518() { - f16vec3 res = mix(f16vec3(0.0hf), f16vec3(0.0hf), bvec3(true)); + f16vec3 res = f16vec3(0.0hf); } void compute_main() { diff --git a/test/tint/builtins/gen/literal/select/53d518.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/53d518.wgsl.expected.msl index 9338705490..071a65a146 100644 --- a/test/tint/builtins/gen/literal/select/53d518.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/select/53d518.wgsl.expected.msl @@ -2,7 +2,7 @@ using namespace metal; void select_53d518() { - half3 res = select(half3(0.0h), half3(0.0h), bool3(true)); + half3 res = half3(0.0h); } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/53d518.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/53d518.wgsl.expected.spvasm index f76cbacd9e..3697f80790 100644 --- a/test/tint/builtins/gen/literal/select/53d518.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/select/53d518.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 37 +; Bound: 32 ; Schema: 0 OpCapability Shader OpCapability Float16 @@ -36,40 +36,35 @@ %9 = OpTypeFunction %void %half = OpTypeFloat 16 %v3half = OpTypeVector %half 3 - %bool = OpTypeBool - %v3bool = OpTypeVector %bool 3 - %true = OpConstantTrue %bool - %19 = OpConstantComposite %v3bool %true %true %true - %20 = OpConstantNull %v3half + %15 = OpConstantNull %v3half %_ptr_Function_v3half = OpTypePointer Function %v3half - %23 = OpTypeFunction %v4float + %18 = OpTypeFunction %v4float %float_1 = OpConstant %float 1 %select_53d518 = OpFunction %void None %9 %12 = OpLabel - %res = OpVariable %_ptr_Function_v3half Function %20 - %13 = OpSelect %v3half %19 %20 %20 - OpStore %res %13 + %res = OpVariable %_ptr_Function_v3half Function %15 + OpStore %res %15 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %23 - %25 = OpLabel - %26 = OpFunctionCall %void %select_53d518 +%vertex_main_inner = OpFunction %v4float None %18 + %20 = OpLabel + %21 = OpFunctionCall %void %select_53d518 OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %28 = OpLabel - %29 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %29 + %23 = OpLabel + %24 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %24 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 - %32 = OpLabel - %33 = OpFunctionCall %void %select_53d518 + %27 = OpLabel + %28 = OpFunctionCall %void %select_53d518 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9 - %35 = OpLabel - %36 = OpFunctionCall %void %select_53d518 + %30 = OpLabel + %31 = OpFunctionCall %void %select_53d518 OpReturn OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/713567.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/713567.wgsl.expected.dxc.hlsl index c2c69a8563..c7c759b588 100644 --- a/test/tint/builtins/gen/literal/select/713567.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/select/713567.wgsl.expected.dxc.hlsl @@ -1,5 +1,5 @@ void select_713567() { - float4 res = (true ? (1.0f).xxxx : (1.0f).xxxx); + float4 res = (1.0f).xxxx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/713567.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/713567.wgsl.expected.fxc.hlsl index c2c69a8563..c7c759b588 100644 --- a/test/tint/builtins/gen/literal/select/713567.wgsl.expected.fxc.hlsl +++ b/test/tint/builtins/gen/literal/select/713567.wgsl.expected.fxc.hlsl @@ -1,5 +1,5 @@ void select_713567() { - float4 res = (true ? (1.0f).xxxx : (1.0f).xxxx); + float4 res = (1.0f).xxxx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/713567.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/713567.wgsl.expected.glsl index 9246c39463..38cd12e23f 100644 --- a/test/tint/builtins/gen/literal/select/713567.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/select/713567.wgsl.expected.glsl @@ -1,7 +1,7 @@ #version 310 es void select_713567() { - vec4 res = (true ? vec4(1.0f) : vec4(1.0f)); + vec4 res = vec4(1.0f); } vec4 vertex_main() { @@ -21,7 +21,7 @@ void main() { precision mediump float; void select_713567() { - vec4 res = (true ? vec4(1.0f) : vec4(1.0f)); + vec4 res = vec4(1.0f); } void fragment_main() { @@ -35,7 +35,7 @@ void main() { #version 310 es void select_713567() { - vec4 res = (true ? vec4(1.0f) : vec4(1.0f)); + vec4 res = vec4(1.0f); } void compute_main() { diff --git a/test/tint/builtins/gen/literal/select/713567.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/713567.wgsl.expected.msl index ea28af2c24..5ecebb7175 100644 --- a/test/tint/builtins/gen/literal/select/713567.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/select/713567.wgsl.expected.msl @@ -2,7 +2,7 @@ using namespace metal; void select_713567() { - float4 res = select(float4(1.0f), float4(1.0f), true); + float4 res = float4(1.0f); } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/713567.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/713567.wgsl.expected.spvasm index 6c41ce14ef..6cb438f0f6 100644 --- a/test/tint/builtins/gen/literal/select/713567.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/select/713567.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 38 +; Bound: 30 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -30,43 +30,35 @@ %vertex_point_size = OpVariable %_ptr_Output_float Output %8 %void = OpTypeVoid %9 = OpTypeFunction %void - %bool = OpTypeBool - %true = OpConstantTrue %bool %float_1 = OpConstant %float 1 - %17 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 - %v4bool = OpTypeVector %bool 4 -%_ptr_Function_v4bool = OpTypePointer Function %v4bool - %21 = OpConstantNull %v4bool + %14 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 %_ptr_Function_v4float = OpTypePointer Function %v4float - %25 = OpTypeFunction %v4float + %17 = OpTypeFunction %v4float %select_713567 = OpFunction %void None %9 %12 = OpLabel - %19 = OpVariable %_ptr_Function_v4bool Function %21 %res = OpVariable %_ptr_Function_v4float Function %5 - %22 = OpCompositeConstruct %v4bool %true %true %true %true - %13 = OpSelect %v4float %22 %17 %17 - OpStore %res %13 + OpStore %res %14 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %25 - %27 = OpLabel - %28 = OpFunctionCall %void %select_713567 +%vertex_main_inner = OpFunction %v4float None %17 + %19 = OpLabel + %20 = OpFunctionCall %void %select_713567 OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %30 = OpLabel - %31 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %31 + %22 = OpLabel + %23 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %23 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 - %33 = OpLabel - %34 = OpFunctionCall %void %select_713567 + %25 = OpLabel + %26 = OpFunctionCall %void %select_713567 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9 - %36 = OpLabel - %37 = OpFunctionCall %void %select_713567 + %28 = OpLabel + %29 = OpFunctionCall %void %select_713567 OpReturn OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.dxc.hlsl index a49ff2fb42..00c03391bb 100644 --- a/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.dxc.hlsl @@ -1,5 +1,5 @@ void select_78be5f() { - float3 res = (true ? (1.0f).xxx : (1.0f).xxx); + float3 res = (1.0f).xxx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.fxc.hlsl index a49ff2fb42..00c03391bb 100644 --- a/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.fxc.hlsl +++ b/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.fxc.hlsl @@ -1,5 +1,5 @@ void select_78be5f() { - float3 res = (true ? (1.0f).xxx : (1.0f).xxx); + float3 res = (1.0f).xxx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.glsl index 139ca165c2..c7d87084bb 100644 --- a/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.glsl @@ -1,7 +1,7 @@ #version 310 es void select_78be5f() { - vec3 res = (true ? vec3(1.0f) : vec3(1.0f)); + vec3 res = vec3(1.0f); } vec4 vertex_main() { @@ -21,7 +21,7 @@ void main() { precision mediump float; void select_78be5f() { - vec3 res = (true ? vec3(1.0f) : vec3(1.0f)); + vec3 res = vec3(1.0f); } void fragment_main() { @@ -35,7 +35,7 @@ void main() { #version 310 es void select_78be5f() { - vec3 res = (true ? vec3(1.0f) : vec3(1.0f)); + vec3 res = vec3(1.0f); } void compute_main() { diff --git a/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.msl index e01f02712b..1710bd4d26 100644 --- a/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.msl @@ -2,7 +2,7 @@ using namespace metal; void select_78be5f() { - float3 res = select(float3(1.0f), float3(1.0f), true); + float3 res = float3(1.0f); } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.spvasm index ce23c7b024..b347c1c79f 100644 --- a/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 40 +; Bound: 32 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -31,44 +31,36 @@ %void = OpTypeVoid %9 = OpTypeFunction %void %v3float = OpTypeVector %float 3 - %bool = OpTypeBool - %true = OpConstantTrue %bool %float_1 = OpConstant %float 1 - %18 = OpConstantComposite %v3float %float_1 %float_1 %float_1 - %v3bool = OpTypeVector %bool 3 -%_ptr_Function_v3bool = OpTypePointer Function %v3bool - %22 = OpConstantNull %v3bool + %15 = OpConstantComposite %v3float %float_1 %float_1 %float_1 %_ptr_Function_v3float = OpTypePointer Function %v3float - %26 = OpConstantNull %v3float - %27 = OpTypeFunction %v4float + %18 = OpConstantNull %v3float + %19 = OpTypeFunction %v4float %select_78be5f = OpFunction %void None %9 %12 = OpLabel - %20 = OpVariable %_ptr_Function_v3bool Function %22 - %res = OpVariable %_ptr_Function_v3float Function %26 - %23 = OpCompositeConstruct %v3bool %true %true %true - %13 = OpSelect %v3float %23 %18 %18 - OpStore %res %13 + %res = OpVariable %_ptr_Function_v3float Function %18 + OpStore %res %15 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %27 - %29 = OpLabel - %30 = OpFunctionCall %void %select_78be5f +%vertex_main_inner = OpFunction %v4float None %19 + %21 = OpLabel + %22 = OpFunctionCall %void %select_78be5f OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %32 = OpLabel - %33 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %33 + %24 = OpLabel + %25 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %25 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 - %35 = OpLabel - %36 = OpFunctionCall %void %select_78be5f + %27 = OpLabel + %28 = OpFunctionCall %void %select_78be5f OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9 - %38 = OpLabel - %39 = OpFunctionCall %void %select_78be5f + %30 = OpLabel + %31 = OpFunctionCall %void %select_78be5f OpReturn OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.dxc.hlsl index b319508739..1779a6da6b 100644 --- a/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.dxc.hlsl @@ -1,5 +1,5 @@ void select_80a9a9() { - bool3 res = ((true).xxx ? (true).xxx : (true).xxx); + bool3 res = (true).xxx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.fxc.hlsl index b319508739..1779a6da6b 100644 --- a/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.fxc.hlsl +++ b/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.fxc.hlsl @@ -1,5 +1,5 @@ void select_80a9a9() { - bool3 res = ((true).xxx ? (true).xxx : (true).xxx); + bool3 res = (true).xxx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.glsl index e2195563cd..a8069b5237 100644 --- a/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.glsl @@ -1,7 +1,7 @@ #version 310 es void select_80a9a9() { - bvec3 res = mix(bvec3(true), bvec3(true), bvec3(true)); + bvec3 res = bvec3(true); } vec4 vertex_main() { @@ -21,7 +21,7 @@ void main() { precision mediump float; void select_80a9a9() { - bvec3 res = mix(bvec3(true), bvec3(true), bvec3(true)); + bvec3 res = bvec3(true); } void fragment_main() { @@ -35,7 +35,7 @@ void main() { #version 310 es void select_80a9a9() { - bvec3 res = mix(bvec3(true), bvec3(true), bvec3(true)); + bvec3 res = bvec3(true); } void compute_main() { diff --git a/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.msl index f6cc3e5649..11c9377770 100644 --- a/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.msl @@ -2,7 +2,7 @@ using namespace metal; void select_80a9a9() { - bool3 res = select(bool3(true), bool3(true), bool3(true)); + bool3 res = bool3(true); } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.spvasm index 0fbf2a154f..d8968ab4a9 100644 --- a/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 35 +; Bound: 34 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -33,37 +33,36 @@ %bool = OpTypeBool %v3bool = OpTypeVector %bool 3 %true = OpConstantTrue %bool - %17 = OpConstantComposite %v3bool %true %true %true + %16 = OpConstantComposite %v3bool %true %true %true %_ptr_Function_v3bool = OpTypePointer Function %v3bool - %20 = OpConstantNull %v3bool - %21 = OpTypeFunction %v4float + %19 = OpConstantNull %v3bool + %20 = OpTypeFunction %v4float %float_1 = OpConstant %float 1 %select_80a9a9 = OpFunction %void None %9 %12 = OpLabel - %res = OpVariable %_ptr_Function_v3bool Function %20 - %13 = OpSelect %v3bool %17 %17 %17 - OpStore %res %13 + %res = OpVariable %_ptr_Function_v3bool Function %19 + OpStore %res %16 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %21 - %23 = OpLabel - %24 = OpFunctionCall %void %select_80a9a9 +%vertex_main_inner = OpFunction %v4float None %20 + %22 = OpLabel + %23 = OpFunctionCall %void %select_80a9a9 OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %26 = OpLabel - %27 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %27 + %25 = OpLabel + %26 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %26 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 - %30 = OpLabel - %31 = OpFunctionCall %void %select_80a9a9 + %29 = OpLabel + %30 = OpFunctionCall %void %select_80a9a9 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9 - %33 = OpLabel - %34 = OpFunctionCall %void %select_80a9a9 + %32 = OpLabel + %33 = OpFunctionCall %void %select_80a9a9 OpReturn OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/830dd9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/830dd9.wgsl.expected.dxc.hlsl index 3bf576f1cb..9ccab1be17 100644 --- a/test/tint/builtins/gen/literal/select/830dd9.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/select/830dd9.wgsl.expected.dxc.hlsl @@ -1,5 +1,5 @@ void select_830dd9() { - vector res = (true ? (float16_t(0.0h)).xxxx : (float16_t(0.0h)).xxxx); + vector res = (float16_t(0.0h)).xxxx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/830dd9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/830dd9.wgsl.expected.glsl index 69a2b653d9..665c49e1af 100644 --- a/test/tint/builtins/gen/literal/select/830dd9.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/select/830dd9.wgsl.expected.glsl @@ -2,7 +2,7 @@ #extension GL_AMD_gpu_shader_half_float : require void select_830dd9() { - f16vec4 res = (true ? f16vec4(0.0hf) : f16vec4(0.0hf)); + f16vec4 res = f16vec4(0.0hf); } vec4 vertex_main() { @@ -23,7 +23,7 @@ void main() { precision mediump float; void select_830dd9() { - f16vec4 res = (true ? f16vec4(0.0hf) : f16vec4(0.0hf)); + f16vec4 res = f16vec4(0.0hf); } void fragment_main() { @@ -38,7 +38,7 @@ void main() { #extension GL_AMD_gpu_shader_half_float : require void select_830dd9() { - f16vec4 res = (true ? f16vec4(0.0hf) : f16vec4(0.0hf)); + f16vec4 res = f16vec4(0.0hf); } void compute_main() { diff --git a/test/tint/builtins/gen/literal/select/830dd9.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/830dd9.wgsl.expected.msl index f779aebce2..6763d90177 100644 --- a/test/tint/builtins/gen/literal/select/830dd9.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/select/830dd9.wgsl.expected.msl @@ -2,7 +2,7 @@ using namespace metal; void select_830dd9() { - half4 res = select(half4(0.0h), half4(0.0h), true); + half4 res = half4(0.0h); } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/830dd9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/830dd9.wgsl.expected.spvasm index 5dfcbe6249..debde2abf4 100644 --- a/test/tint/builtins/gen/literal/select/830dd9.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/select/830dd9.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 40 +; Bound: 32 ; Schema: 0 OpCapability Shader OpCapability Float16 @@ -36,43 +36,35 @@ %9 = OpTypeFunction %void %half = OpTypeFloat 16 %v4half = OpTypeVector %half 4 - %bool = OpTypeBool - %true = OpConstantTrue %bool - %18 = OpConstantNull %v4half - %v4bool = OpTypeVector %bool 4 -%_ptr_Function_v4bool = OpTypePointer Function %v4bool - %22 = OpConstantNull %v4bool + %15 = OpConstantNull %v4half %_ptr_Function_v4half = OpTypePointer Function %v4half - %26 = OpTypeFunction %v4float + %18 = OpTypeFunction %v4float %float_1 = OpConstant %float 1 %select_830dd9 = OpFunction %void None %9 %12 = OpLabel - %20 = OpVariable %_ptr_Function_v4bool Function %22 - %res = OpVariable %_ptr_Function_v4half Function %18 - %23 = OpCompositeConstruct %v4bool %true %true %true %true - %13 = OpSelect %v4half %23 %18 %18 - OpStore %res %13 + %res = OpVariable %_ptr_Function_v4half Function %15 + OpStore %res %15 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %26 - %28 = OpLabel - %29 = OpFunctionCall %void %select_830dd9 +%vertex_main_inner = OpFunction %v4float None %18 + %20 = OpLabel + %21 = OpFunctionCall %void %select_830dd9 OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %31 = OpLabel - %32 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %32 + %23 = OpLabel + %24 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %24 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 - %35 = OpLabel - %36 = OpFunctionCall %void %select_830dd9 + %27 = OpLabel + %28 = OpFunctionCall %void %select_830dd9 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9 - %38 = OpLabel - %39 = OpFunctionCall %void %select_830dd9 + %30 = OpLabel + %31 = OpFunctionCall %void %select_830dd9 OpReturn OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/86f9bd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/86f9bd.wgsl.expected.dxc.hlsl index 528ebaf882..8b55bbb1af 100644 --- a/test/tint/builtins/gen/literal/select/86f9bd.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/select/86f9bd.wgsl.expected.dxc.hlsl @@ -1,5 +1,5 @@ void select_86f9bd() { - vector res = (true ? (float16_t(0.0h)).xx : (float16_t(0.0h)).xx); + vector res = (float16_t(0.0h)).xx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/86f9bd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/86f9bd.wgsl.expected.glsl index 1ee2a35bf4..002de10931 100644 --- a/test/tint/builtins/gen/literal/select/86f9bd.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/select/86f9bd.wgsl.expected.glsl @@ -2,7 +2,7 @@ #extension GL_AMD_gpu_shader_half_float : require void select_86f9bd() { - f16vec2 res = (true ? f16vec2(0.0hf) : f16vec2(0.0hf)); + f16vec2 res = f16vec2(0.0hf); } vec4 vertex_main() { @@ -23,7 +23,7 @@ void main() { precision mediump float; void select_86f9bd() { - f16vec2 res = (true ? f16vec2(0.0hf) : f16vec2(0.0hf)); + f16vec2 res = f16vec2(0.0hf); } void fragment_main() { @@ -38,7 +38,7 @@ void main() { #extension GL_AMD_gpu_shader_half_float : require void select_86f9bd() { - f16vec2 res = (true ? f16vec2(0.0hf) : f16vec2(0.0hf)); + f16vec2 res = f16vec2(0.0hf); } void compute_main() { diff --git a/test/tint/builtins/gen/literal/select/86f9bd.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/86f9bd.wgsl.expected.msl index 7b01210106..fd67e7b1e7 100644 --- a/test/tint/builtins/gen/literal/select/86f9bd.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/select/86f9bd.wgsl.expected.msl @@ -2,7 +2,7 @@ using namespace metal; void select_86f9bd() { - half2 res = select(half2(0.0h), half2(0.0h), true); + half2 res = half2(0.0h); } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/86f9bd.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/86f9bd.wgsl.expected.spvasm index 410963b624..8711cd2782 100644 --- a/test/tint/builtins/gen/literal/select/86f9bd.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/select/86f9bd.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 40 +; Bound: 32 ; Schema: 0 OpCapability Shader OpCapability Float16 @@ -36,43 +36,35 @@ %9 = OpTypeFunction %void %half = OpTypeFloat 16 %v2half = OpTypeVector %half 2 - %bool = OpTypeBool - %true = OpConstantTrue %bool - %18 = OpConstantNull %v2half - %v2bool = OpTypeVector %bool 2 -%_ptr_Function_v2bool = OpTypePointer Function %v2bool - %22 = OpConstantNull %v2bool + %15 = OpConstantNull %v2half %_ptr_Function_v2half = OpTypePointer Function %v2half - %26 = OpTypeFunction %v4float + %18 = OpTypeFunction %v4float %float_1 = OpConstant %float 1 %select_86f9bd = OpFunction %void None %9 %12 = OpLabel - %20 = OpVariable %_ptr_Function_v2bool Function %22 - %res = OpVariable %_ptr_Function_v2half Function %18 - %23 = OpCompositeConstruct %v2bool %true %true - %13 = OpSelect %v2half %23 %18 %18 - OpStore %res %13 + %res = OpVariable %_ptr_Function_v2half Function %15 + OpStore %res %15 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %26 - %28 = OpLabel - %29 = OpFunctionCall %void %select_86f9bd +%vertex_main_inner = OpFunction %v4float None %18 + %20 = OpLabel + %21 = OpFunctionCall %void %select_86f9bd OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %31 = OpLabel - %32 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %32 + %23 = OpLabel + %24 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %24 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 - %35 = OpLabel - %36 = OpFunctionCall %void %select_86f9bd + %27 = OpLabel + %28 = OpFunctionCall %void %select_86f9bd OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9 - %38 = OpLabel - %39 = OpFunctionCall %void %select_86f9bd + %30 = OpLabel + %31 = OpFunctionCall %void %select_86f9bd OpReturn OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.dxc.hlsl index 57f210d3bd..321717c3d0 100644 --- a/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.dxc.hlsl @@ -1,5 +1,5 @@ void select_8fa62c() { - int3 res = (true ? (1).xxx : (1).xxx); + int3 res = (1).xxx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.fxc.hlsl index 57f210d3bd..321717c3d0 100644 --- a/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.fxc.hlsl +++ b/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.fxc.hlsl @@ -1,5 +1,5 @@ void select_8fa62c() { - int3 res = (true ? (1).xxx : (1).xxx); + int3 res = (1).xxx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.glsl index 4b70835140..82ce6e0de4 100644 --- a/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.glsl @@ -1,7 +1,7 @@ #version 310 es void select_8fa62c() { - ivec3 res = (true ? ivec3(1) : ivec3(1)); + ivec3 res = ivec3(1); } vec4 vertex_main() { @@ -21,7 +21,7 @@ void main() { precision mediump float; void select_8fa62c() { - ivec3 res = (true ? ivec3(1) : ivec3(1)); + ivec3 res = ivec3(1); } void fragment_main() { @@ -35,7 +35,7 @@ void main() { #version 310 es void select_8fa62c() { - ivec3 res = (true ? ivec3(1) : ivec3(1)); + ivec3 res = ivec3(1); } void compute_main() { diff --git a/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.msl index 7e4ed08e8c..788da11cf0 100644 --- a/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.msl @@ -2,7 +2,7 @@ using namespace metal; void select_8fa62c() { - int3 res = select(int3(1), int3(1), true); + int3 res = int3(1); } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.spvasm index 16dfeac426..7b40d5c13f 100644 --- a/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 42 +; Bound: 34 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -32,45 +32,37 @@ %9 = OpTypeFunction %void %int = OpTypeInt 32 1 %v3int = OpTypeVector %int 3 - %bool = OpTypeBool - %true = OpConstantTrue %bool %int_1 = OpConstant %int 1 - %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1 - %v3bool = OpTypeVector %bool 3 -%_ptr_Function_v3bool = OpTypePointer Function %v3bool - %23 = OpConstantNull %v3bool + %16 = OpConstantComposite %v3int %int_1 %int_1 %int_1 %_ptr_Function_v3int = OpTypePointer Function %v3int - %27 = OpConstantNull %v3int - %28 = OpTypeFunction %v4float + %19 = OpConstantNull %v3int + %20 = OpTypeFunction %v4float %float_1 = OpConstant %float 1 %select_8fa62c = OpFunction %void None %9 %12 = OpLabel - %21 = OpVariable %_ptr_Function_v3bool Function %23 - %res = OpVariable %_ptr_Function_v3int Function %27 - %24 = OpCompositeConstruct %v3bool %true %true %true - %13 = OpSelect %v3int %24 %19 %19 - OpStore %res %13 + %res = OpVariable %_ptr_Function_v3int Function %19 + OpStore %res %16 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %28 - %30 = OpLabel - %31 = OpFunctionCall %void %select_8fa62c +%vertex_main_inner = OpFunction %v4float None %20 + %22 = OpLabel + %23 = OpFunctionCall %void %select_8fa62c OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %33 = OpLabel - %34 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %34 + %25 = OpLabel + %26 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %26 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 - %37 = OpLabel - %38 = OpFunctionCall %void %select_8fa62c + %29 = OpLabel + %30 = OpFunctionCall %void %select_8fa62c OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9 - %40 = OpLabel - %41 = OpFunctionCall %void %select_8fa62c + %32 = OpLabel + %33 = OpFunctionCall %void %select_8fa62c OpReturn OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.dxc.hlsl index 75093f5bd0..64d7bf337e 100644 --- a/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.dxc.hlsl @@ -1,5 +1,5 @@ void select_99f883() { - uint res = (true ? 1u : 1u); + uint res = 1u; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.fxc.hlsl index 75093f5bd0..64d7bf337e 100644 --- a/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.fxc.hlsl +++ b/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.fxc.hlsl @@ -1,5 +1,5 @@ void select_99f883() { - uint res = (true ? 1u : 1u); + uint res = 1u; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.glsl index 868fe4dbdd..527c01046d 100644 --- a/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.glsl @@ -1,7 +1,7 @@ #version 310 es void select_99f883() { - uint res = (true ? 1u : 1u); + uint res = 1u; } vec4 vertex_main() { @@ -21,7 +21,7 @@ void main() { precision mediump float; void select_99f883() { - uint res = (true ? 1u : 1u); + uint res = 1u; } void fragment_main() { @@ -35,7 +35,7 @@ void main() { #version 310 es void select_99f883() { - uint res = (true ? 1u : 1u); + uint res = 1u; } void compute_main() { diff --git a/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.msl index 2d5afcb05c..4cfee24fa6 100644 --- a/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.msl @@ -2,7 +2,7 @@ using namespace metal; void select_99f883() { - uint res = select(1u, 1u, true); + uint res = 1u; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.spvasm index f05c98730b..5767f906bb 100644 --- a/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 35 +; Bound: 32 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -31,39 +31,36 @@ %void = OpTypeVoid %9 = OpTypeFunction %void %uint = OpTypeInt 32 0 - %bool = OpTypeBool - %true = OpConstantTrue %bool %uint_1 = OpConstant %uint 1 %_ptr_Function_uint = OpTypePointer Function %uint - %20 = OpConstantNull %uint - %21 = OpTypeFunction %v4float + %17 = OpConstantNull %uint + %18 = OpTypeFunction %v4float %float_1 = OpConstant %float 1 %select_99f883 = OpFunction %void None %9 %12 = OpLabel - %res = OpVariable %_ptr_Function_uint Function %20 - %13 = OpSelect %uint %true %uint_1 %uint_1 - OpStore %res %13 + %res = OpVariable %_ptr_Function_uint Function %17 + OpStore %res %uint_1 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %21 - %23 = OpLabel - %24 = OpFunctionCall %void %select_99f883 +%vertex_main_inner = OpFunction %v4float None %18 + %20 = OpLabel + %21 = OpFunctionCall %void %select_99f883 OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %26 = OpLabel - %27 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %27 + %23 = OpLabel + %24 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %24 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 + %27 = OpLabel + %28 = OpFunctionCall %void %select_99f883 + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 %30 = OpLabel %31 = OpFunctionCall %void %select_99f883 OpReturn OpFunctionEnd -%compute_main = OpFunction %void None %9 - %33 = OpLabel - %34 = OpFunctionCall %void %select_99f883 - OpReturn - OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/9b478d.wgsl b/test/tint/builtins/gen/literal/select/9b478d.wgsl new file mode 100644 index 0000000000..f165558c66 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/9b478d.wgsl @@ -0,0 +1,43 @@ +// Copyright 2022 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//////////////////////////////////////////////////////////////////////////////// +// File generated by tools/src/cmd/gen +// using the template: +// test/tint/builtins/gen/gen.wgsl.tmpl +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn select(ia, ia, bool) -> ia +fn select_9b478d() { + var res = select(1.0, 1.0, true); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_9b478d(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_9b478d(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_9b478d(); +} diff --git a/test/tint/builtins/gen/literal/select/9b478d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/9b478d.wgsl.expected.dxc.hlsl new file mode 100644 index 0000000000..5400451aa3 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/9b478d.wgsl.expected.dxc.hlsl @@ -0,0 +1,30 @@ +void select_9b478d() { + float res = 1.0f; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_9b478d(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_9b478d(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_9b478d(); + return; +} diff --git a/test/tint/builtins/gen/literal/select/9b478d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/9b478d.wgsl.expected.fxc.hlsl new file mode 100644 index 0000000000..5400451aa3 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/9b478d.wgsl.expected.fxc.hlsl @@ -0,0 +1,30 @@ +void select_9b478d() { + float res = 1.0f; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_9b478d(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_9b478d(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_9b478d(); + return; +} diff --git a/test/tint/builtins/gen/literal/select/9b478d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/9b478d.wgsl.expected.glsl new file mode 100644 index 0000000000..0f1b3d0ff2 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/9b478d.wgsl.expected.glsl @@ -0,0 +1,49 @@ +#version 310 es + +void select_9b478d() { + float res = 1.0f; +} + +vec4 vertex_main() { + select_9b478d(); + return vec4(0.0f); +} + +void main() { + gl_PointSize = 1.0; + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +void select_9b478d() { + float res = 1.0f; +} + +void fragment_main() { + select_9b478d(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +void select_9b478d() { + float res = 1.0f; +} + +void compute_main() { + select_9b478d(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +} diff --git a/test/tint/builtins/gen/literal/select/9b478d.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/9b478d.wgsl.expected.msl new file mode 100644 index 0000000000..4744e7abc8 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/9b478d.wgsl.expected.msl @@ -0,0 +1,33 @@ +#include + +using namespace metal; +void select_9b478d() { + float res = 1.0f; +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + select_9b478d(); + return float4(0.0f); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + select_9b478d(); + return; +} + +kernel void compute_main() { + select_9b478d(); + return; +} + diff --git a/test/tint/builtins/gen/literal/select/9b478d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/9b478d.wgsl.expected.spvasm new file mode 100644 index 0000000000..3ca443acda --- /dev/null +++ b/test/tint/builtins/gen/literal/select/9b478d.wgsl.expected.spvasm @@ -0,0 +1,63 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 29 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %select_9b478d "select_9b478d" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %void = OpTypeVoid + %9 = OpTypeFunction %void + %float_1 = OpConstant %float 1 +%_ptr_Function_float = OpTypePointer Function %float + %16 = OpTypeFunction %v4float +%select_9b478d = OpFunction %void None %9 + %12 = OpLabel + %res = OpVariable %_ptr_Function_float Function %8 + OpStore %res %float_1 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %16 + %18 = OpLabel + %19 = OpFunctionCall %void %select_9b478d + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %9 + %21 = OpLabel + %22 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %22 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %9 + %24 = OpLabel + %25 = OpFunctionCall %void %select_9b478d + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 + %27 = OpLabel + %28 = OpFunctionCall %void %select_9b478d + OpReturn + OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/9b478d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/9b478d.wgsl.expected.wgsl new file mode 100644 index 0000000000..886df0d551 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/9b478d.wgsl.expected.wgsl @@ -0,0 +1,19 @@ +fn select_9b478d() { + var res = select(1.0, 1.0, true); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_9b478d(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_9b478d(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_9b478d(); +} diff --git a/test/tint/builtins/gen/literal/select/a081f1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/a081f1.wgsl.expected.dxc.hlsl index 3eb1517459..4d8b7a1d2a 100644 --- a/test/tint/builtins/gen/literal/select/a081f1.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/select/a081f1.wgsl.expected.dxc.hlsl @@ -1,5 +1,5 @@ void select_a081f1() { - vector res = ((true).xxxx ? (float16_t(0.0h)).xxxx : (float16_t(0.0h)).xxxx); + vector res = (float16_t(0.0h)).xxxx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/a081f1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/a081f1.wgsl.expected.glsl index a486535d5c..8b2a610ec8 100644 --- a/test/tint/builtins/gen/literal/select/a081f1.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/select/a081f1.wgsl.expected.glsl @@ -2,7 +2,7 @@ #extension GL_AMD_gpu_shader_half_float : require void select_a081f1() { - f16vec4 res = mix(f16vec4(0.0hf), f16vec4(0.0hf), bvec4(true)); + f16vec4 res = f16vec4(0.0hf); } vec4 vertex_main() { @@ -23,7 +23,7 @@ void main() { precision mediump float; void select_a081f1() { - f16vec4 res = mix(f16vec4(0.0hf), f16vec4(0.0hf), bvec4(true)); + f16vec4 res = f16vec4(0.0hf); } void fragment_main() { @@ -38,7 +38,7 @@ void main() { #extension GL_AMD_gpu_shader_half_float : require void select_a081f1() { - f16vec4 res = mix(f16vec4(0.0hf), f16vec4(0.0hf), bvec4(true)); + f16vec4 res = f16vec4(0.0hf); } void compute_main() { diff --git a/test/tint/builtins/gen/literal/select/a081f1.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/a081f1.wgsl.expected.msl index fddeb4d432..75ed4b4841 100644 --- a/test/tint/builtins/gen/literal/select/a081f1.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/select/a081f1.wgsl.expected.msl @@ -2,7 +2,7 @@ using namespace metal; void select_a081f1() { - half4 res = select(half4(0.0h), half4(0.0h), bool4(true)); + half4 res = half4(0.0h); } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/a081f1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/a081f1.wgsl.expected.spvasm index 37e70c6c25..c775c95c01 100644 --- a/test/tint/builtins/gen/literal/select/a081f1.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/select/a081f1.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 37 +; Bound: 32 ; Schema: 0 OpCapability Shader OpCapability Float16 @@ -36,40 +36,35 @@ %9 = OpTypeFunction %void %half = OpTypeFloat 16 %v4half = OpTypeVector %half 4 - %bool = OpTypeBool - %v4bool = OpTypeVector %bool 4 - %true = OpConstantTrue %bool - %19 = OpConstantComposite %v4bool %true %true %true %true - %20 = OpConstantNull %v4half + %15 = OpConstantNull %v4half %_ptr_Function_v4half = OpTypePointer Function %v4half - %23 = OpTypeFunction %v4float + %18 = OpTypeFunction %v4float %float_1 = OpConstant %float 1 %select_a081f1 = OpFunction %void None %9 %12 = OpLabel - %res = OpVariable %_ptr_Function_v4half Function %20 - %13 = OpSelect %v4half %19 %20 %20 - OpStore %res %13 + %res = OpVariable %_ptr_Function_v4half Function %15 + OpStore %res %15 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %23 - %25 = OpLabel - %26 = OpFunctionCall %void %select_a081f1 +%vertex_main_inner = OpFunction %v4float None %18 + %20 = OpLabel + %21 = OpFunctionCall %void %select_a081f1 OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %28 = OpLabel - %29 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %29 + %23 = OpLabel + %24 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %24 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 - %32 = OpLabel - %33 = OpFunctionCall %void %select_a081f1 + %27 = OpLabel + %28 = OpFunctionCall %void %select_a081f1 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9 - %35 = OpLabel - %36 = OpFunctionCall %void %select_a081f1 + %30 = OpLabel + %31 = OpFunctionCall %void %select_a081f1 OpReturn OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.dxc.hlsl index e87fb0a1a9..31b13ae53d 100644 --- a/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.dxc.hlsl @@ -1,5 +1,5 @@ void select_a2860e() { - int4 res = ((true).xxxx ? (1).xxxx : (1).xxxx); + int4 res = (1).xxxx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.fxc.hlsl index e87fb0a1a9..31b13ae53d 100644 --- a/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.fxc.hlsl +++ b/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.fxc.hlsl @@ -1,5 +1,5 @@ void select_a2860e() { - int4 res = ((true).xxxx ? (1).xxxx : (1).xxxx); + int4 res = (1).xxxx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.glsl index c323c86db8..2ec8950511 100644 --- a/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.glsl @@ -1,7 +1,7 @@ #version 310 es void select_a2860e() { - ivec4 res = mix(ivec4(1), ivec4(1), bvec4(true)); + ivec4 res = ivec4(1); } vec4 vertex_main() { @@ -21,7 +21,7 @@ void main() { precision mediump float; void select_a2860e() { - ivec4 res = mix(ivec4(1), ivec4(1), bvec4(true)); + ivec4 res = ivec4(1); } void fragment_main() { @@ -35,7 +35,7 @@ void main() { #version 310 es void select_a2860e() { - ivec4 res = mix(ivec4(1), ivec4(1), bvec4(true)); + ivec4 res = ivec4(1); } void compute_main() { diff --git a/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.msl index b81f26a13c..bf66e04591 100644 --- a/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.msl @@ -2,7 +2,7 @@ using namespace metal; void select_a2860e() { - int4 res = select(int4(1), int4(1), bool4(true)); + int4 res = int4(1); } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.spvasm index be8a0ca84a..151b64c412 100644 --- a/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 39 +; Bound: 34 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -32,42 +32,37 @@ %9 = OpTypeFunction %void %int = OpTypeInt 32 1 %v4int = OpTypeVector %int 4 - %bool = OpTypeBool - %v4bool = OpTypeVector %bool 4 - %true = OpConstantTrue %bool - %19 = OpConstantComposite %v4bool %true %true %true %true %int_1 = OpConstant %int 1 - %21 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1 + %16 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1 %_ptr_Function_v4int = OpTypePointer Function %v4int - %24 = OpConstantNull %v4int - %25 = OpTypeFunction %v4float + %19 = OpConstantNull %v4int + %20 = OpTypeFunction %v4float %float_1 = OpConstant %float 1 %select_a2860e = OpFunction %void None %9 %12 = OpLabel - %res = OpVariable %_ptr_Function_v4int Function %24 - %13 = OpSelect %v4int %19 %21 %21 - OpStore %res %13 + %res = OpVariable %_ptr_Function_v4int Function %19 + OpStore %res %16 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %25 - %27 = OpLabel - %28 = OpFunctionCall %void %select_a2860e +%vertex_main_inner = OpFunction %v4float None %20 + %22 = OpLabel + %23 = OpFunctionCall %void %select_a2860e OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %30 = OpLabel - %31 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %31 + %25 = OpLabel + %26 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %26 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 - %34 = OpLabel - %35 = OpFunctionCall %void %select_a2860e + %29 = OpLabel + %30 = OpFunctionCall %void %select_a2860e OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9 - %37 = OpLabel - %38 = OpFunctionCall %void %select_a2860e + %32 = OpLabel + %33 = OpFunctionCall %void %select_a2860e OpReturn OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.dxc.hlsl index 7436b53f24..4f7879f871 100644 --- a/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.dxc.hlsl @@ -1,5 +1,5 @@ void select_ab069f() { - int4 res = (true ? (1).xxxx : (1).xxxx); + int4 res = (1).xxxx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.fxc.hlsl index 7436b53f24..4f7879f871 100644 --- a/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.fxc.hlsl +++ b/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.fxc.hlsl @@ -1,5 +1,5 @@ void select_ab069f() { - int4 res = (true ? (1).xxxx : (1).xxxx); + int4 res = (1).xxxx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.glsl index 5de0446c6c..402371aa50 100644 --- a/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.glsl @@ -1,7 +1,7 @@ #version 310 es void select_ab069f() { - ivec4 res = (true ? ivec4(1) : ivec4(1)); + ivec4 res = ivec4(1); } vec4 vertex_main() { @@ -21,7 +21,7 @@ void main() { precision mediump float; void select_ab069f() { - ivec4 res = (true ? ivec4(1) : ivec4(1)); + ivec4 res = ivec4(1); } void fragment_main() { @@ -35,7 +35,7 @@ void main() { #version 310 es void select_ab069f() { - ivec4 res = (true ? ivec4(1) : ivec4(1)); + ivec4 res = ivec4(1); } void compute_main() { diff --git a/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.msl index fe40e00cd9..e3118fa571 100644 --- a/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.msl @@ -2,7 +2,7 @@ using namespace metal; void select_ab069f() { - int4 res = select(int4(1), int4(1), true); + int4 res = int4(1); } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.spvasm index 5714961423..1006752051 100644 --- a/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 42 +; Bound: 34 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -32,45 +32,37 @@ %9 = OpTypeFunction %void %int = OpTypeInt 32 1 %v4int = OpTypeVector %int 4 - %bool = OpTypeBool - %true = OpConstantTrue %bool %int_1 = OpConstant %int 1 - %19 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1 - %v4bool = OpTypeVector %bool 4 -%_ptr_Function_v4bool = OpTypePointer Function %v4bool - %23 = OpConstantNull %v4bool + %16 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1 %_ptr_Function_v4int = OpTypePointer Function %v4int - %27 = OpConstantNull %v4int - %28 = OpTypeFunction %v4float + %19 = OpConstantNull %v4int + %20 = OpTypeFunction %v4float %float_1 = OpConstant %float 1 %select_ab069f = OpFunction %void None %9 %12 = OpLabel - %21 = OpVariable %_ptr_Function_v4bool Function %23 - %res = OpVariable %_ptr_Function_v4int Function %27 - %24 = OpCompositeConstruct %v4bool %true %true %true %true - %13 = OpSelect %v4int %24 %19 %19 - OpStore %res %13 + %res = OpVariable %_ptr_Function_v4int Function %19 + OpStore %res %16 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %28 - %30 = OpLabel - %31 = OpFunctionCall %void %select_ab069f +%vertex_main_inner = OpFunction %v4float None %20 + %22 = OpLabel + %23 = OpFunctionCall %void %select_ab069f OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %33 = OpLabel - %34 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %34 + %25 = OpLabel + %26 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %26 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 - %37 = OpLabel - %38 = OpFunctionCall %void %select_ab069f + %29 = OpLabel + %30 = OpFunctionCall %void %select_ab069f OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9 - %40 = OpLabel - %41 = OpFunctionCall %void %select_ab069f + %32 = OpLabel + %33 = OpFunctionCall %void %select_ab069f OpReturn OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.dxc.hlsl index d48819734b..1beac9decd 100644 --- a/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.dxc.hlsl @@ -1,5 +1,5 @@ void select_b04721() { - uint3 res = (true ? (1u).xxx : (1u).xxx); + uint3 res = (1u).xxx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.fxc.hlsl index d48819734b..1beac9decd 100644 --- a/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.fxc.hlsl +++ b/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.fxc.hlsl @@ -1,5 +1,5 @@ void select_b04721() { - uint3 res = (true ? (1u).xxx : (1u).xxx); + uint3 res = (1u).xxx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.glsl index bfc7dcf0d8..e1cf07c3ed 100644 --- a/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.glsl @@ -1,7 +1,7 @@ #version 310 es void select_b04721() { - uvec3 res = (true ? uvec3(1u) : uvec3(1u)); + uvec3 res = uvec3(1u); } vec4 vertex_main() { @@ -21,7 +21,7 @@ void main() { precision mediump float; void select_b04721() { - uvec3 res = (true ? uvec3(1u) : uvec3(1u)); + uvec3 res = uvec3(1u); } void fragment_main() { @@ -35,7 +35,7 @@ void main() { #version 310 es void select_b04721() { - uvec3 res = (true ? uvec3(1u) : uvec3(1u)); + uvec3 res = uvec3(1u); } void compute_main() { diff --git a/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.msl index 03c0349c5a..8f4b6e02b4 100644 --- a/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.msl @@ -2,7 +2,7 @@ using namespace metal; void select_b04721() { - uint3 res = select(uint3(1u), uint3(1u), true); + uint3 res = uint3(1u); } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.spvasm index 5508f4d8ee..bed83f8fc4 100644 --- a/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 42 +; Bound: 34 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -32,45 +32,37 @@ %9 = OpTypeFunction %void %uint = OpTypeInt 32 0 %v3uint = OpTypeVector %uint 3 - %bool = OpTypeBool - %true = OpConstantTrue %bool %uint_1 = OpConstant %uint 1 - %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1 - %v3bool = OpTypeVector %bool 3 -%_ptr_Function_v3bool = OpTypePointer Function %v3bool - %23 = OpConstantNull %v3bool + %16 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1 %_ptr_Function_v3uint = OpTypePointer Function %v3uint - %27 = OpConstantNull %v3uint - %28 = OpTypeFunction %v4float + %19 = OpConstantNull %v3uint + %20 = OpTypeFunction %v4float %float_1 = OpConstant %float 1 %select_b04721 = OpFunction %void None %9 %12 = OpLabel - %21 = OpVariable %_ptr_Function_v3bool Function %23 - %res = OpVariable %_ptr_Function_v3uint Function %27 - %24 = OpCompositeConstruct %v3bool %true %true %true - %13 = OpSelect %v3uint %24 %19 %19 - OpStore %res %13 + %res = OpVariable %_ptr_Function_v3uint Function %19 + OpStore %res %16 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %28 - %30 = OpLabel - %31 = OpFunctionCall %void %select_b04721 +%vertex_main_inner = OpFunction %v4float None %20 + %22 = OpLabel + %23 = OpFunctionCall %void %select_b04721 OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %33 = OpLabel - %34 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %34 + %25 = OpLabel + %26 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %26 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 - %37 = OpLabel - %38 = OpFunctionCall %void %select_b04721 + %29 = OpLabel + %30 = OpFunctionCall %void %select_b04721 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9 - %40 = OpLabel - %41 = OpFunctionCall %void %select_b04721 + %32 = OpLabel + %33 = OpFunctionCall %void %select_b04721 OpReturn OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/b93806.wgsl b/test/tint/builtins/gen/literal/select/b93806.wgsl new file mode 100644 index 0000000000..9c7d498190 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/b93806.wgsl @@ -0,0 +1,43 @@ +// Copyright 2022 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//////////////////////////////////////////////////////////////////////////////// +// File generated by tools/src/cmd/gen +// using the template: +// test/tint/builtins/gen/gen.wgsl.tmpl +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn select(vec<3, ia>, vec<3, ia>, vec<3, bool>) -> vec<3, ia> +fn select_b93806() { + var res = select(vec3(1.0), vec3(1.0), vec3(true)); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_b93806(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_b93806(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_b93806(); +} diff --git a/test/tint/builtins/gen/literal/select/b93806.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/b93806.wgsl.expected.dxc.hlsl new file mode 100644 index 0000000000..2ba5be3216 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/b93806.wgsl.expected.dxc.hlsl @@ -0,0 +1,30 @@ +void select_b93806() { + float3 res = (1.0f).xxx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_b93806(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_b93806(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_b93806(); + return; +} diff --git a/test/tint/builtins/gen/literal/select/b93806.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/b93806.wgsl.expected.fxc.hlsl new file mode 100644 index 0000000000..2ba5be3216 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/b93806.wgsl.expected.fxc.hlsl @@ -0,0 +1,30 @@ +void select_b93806() { + float3 res = (1.0f).xxx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_b93806(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_b93806(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_b93806(); + return; +} diff --git a/test/tint/builtins/gen/literal/select/b93806.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/b93806.wgsl.expected.glsl new file mode 100644 index 0000000000..db609c85fa --- /dev/null +++ b/test/tint/builtins/gen/literal/select/b93806.wgsl.expected.glsl @@ -0,0 +1,49 @@ +#version 310 es + +void select_b93806() { + vec3 res = vec3(1.0f); +} + +vec4 vertex_main() { + select_b93806(); + return vec4(0.0f); +} + +void main() { + gl_PointSize = 1.0; + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +void select_b93806() { + vec3 res = vec3(1.0f); +} + +void fragment_main() { + select_b93806(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +void select_b93806() { + vec3 res = vec3(1.0f); +} + +void compute_main() { + select_b93806(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +} diff --git a/test/tint/builtins/gen/literal/select/b93806.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/b93806.wgsl.expected.msl new file mode 100644 index 0000000000..5d45b26350 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/b93806.wgsl.expected.msl @@ -0,0 +1,33 @@ +#include + +using namespace metal; +void select_b93806() { + float3 res = float3(1.0f); +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + select_b93806(); + return float4(0.0f); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + select_b93806(); + return; +} + +kernel void compute_main() { + select_b93806(); + return; +} + diff --git a/test/tint/builtins/gen/literal/select/b93806.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/b93806.wgsl.expected.spvasm new file mode 100644 index 0000000000..cfeb646075 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/b93806.wgsl.expected.spvasm @@ -0,0 +1,66 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 32 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %select_b93806 "select_b93806" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %void = OpTypeVoid + %9 = OpTypeFunction %void + %v3float = OpTypeVector %float 3 + %float_1 = OpConstant %float 1 + %15 = OpConstantComposite %v3float %float_1 %float_1 %float_1 +%_ptr_Function_v3float = OpTypePointer Function %v3float + %18 = OpConstantNull %v3float + %19 = OpTypeFunction %v4float +%select_b93806 = OpFunction %void None %9 + %12 = OpLabel + %res = OpVariable %_ptr_Function_v3float Function %18 + OpStore %res %15 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %19 + %21 = OpLabel + %22 = OpFunctionCall %void %select_b93806 + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %9 + %24 = OpLabel + %25 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %25 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %9 + %27 = OpLabel + %28 = OpFunctionCall %void %select_b93806 + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 + %30 = OpLabel + %31 = OpFunctionCall %void %select_b93806 + OpReturn + OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/b93806.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/b93806.wgsl.expected.wgsl new file mode 100644 index 0000000000..d518b43705 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/b93806.wgsl.expected.wgsl @@ -0,0 +1,19 @@ +fn select_b93806() { + var res = select(vec3(1.0), vec3(1.0), vec3(true)); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_b93806(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_b93806(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_b93806(); +} diff --git a/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.dxc.hlsl index 0b807d377b..d6ece17636 100644 --- a/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.dxc.hlsl @@ -1,5 +1,5 @@ void select_bb447f() { - int2 res = (true ? (1).xx : (1).xx); + int2 res = (1).xx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.fxc.hlsl index 0b807d377b..d6ece17636 100644 --- a/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.fxc.hlsl +++ b/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.fxc.hlsl @@ -1,5 +1,5 @@ void select_bb447f() { - int2 res = (true ? (1).xx : (1).xx); + int2 res = (1).xx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.glsl index e0e4446deb..00d143089b 100644 --- a/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.glsl @@ -1,7 +1,7 @@ #version 310 es void select_bb447f() { - ivec2 res = (true ? ivec2(1) : ivec2(1)); + ivec2 res = ivec2(1); } vec4 vertex_main() { @@ -21,7 +21,7 @@ void main() { precision mediump float; void select_bb447f() { - ivec2 res = (true ? ivec2(1) : ivec2(1)); + ivec2 res = ivec2(1); } void fragment_main() { @@ -35,7 +35,7 @@ void main() { #version 310 es void select_bb447f() { - ivec2 res = (true ? ivec2(1) : ivec2(1)); + ivec2 res = ivec2(1); } void compute_main() { diff --git a/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.msl index a1349a485b..7dfb2973f5 100644 --- a/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.msl @@ -2,7 +2,7 @@ using namespace metal; void select_bb447f() { - int2 res = select(int2(1), int2(1), true); + int2 res = int2(1); } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.spvasm index a45e966c98..cd93d757f5 100644 --- a/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 42 +; Bound: 34 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -32,45 +32,37 @@ %9 = OpTypeFunction %void %int = OpTypeInt 32 1 %v2int = OpTypeVector %int 2 - %bool = OpTypeBool - %true = OpConstantTrue %bool %int_1 = OpConstant %int 1 - %19 = OpConstantComposite %v2int %int_1 %int_1 - %v2bool = OpTypeVector %bool 2 -%_ptr_Function_v2bool = OpTypePointer Function %v2bool - %23 = OpConstantNull %v2bool + %16 = OpConstantComposite %v2int %int_1 %int_1 %_ptr_Function_v2int = OpTypePointer Function %v2int - %27 = OpConstantNull %v2int - %28 = OpTypeFunction %v4float + %19 = OpConstantNull %v2int + %20 = OpTypeFunction %v4float %float_1 = OpConstant %float 1 %select_bb447f = OpFunction %void None %9 %12 = OpLabel - %21 = OpVariable %_ptr_Function_v2bool Function %23 - %res = OpVariable %_ptr_Function_v2int Function %27 - %24 = OpCompositeConstruct %v2bool %true %true - %13 = OpSelect %v2int %24 %19 %19 - OpStore %res %13 + %res = OpVariable %_ptr_Function_v2int Function %19 + OpStore %res %16 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %28 - %30 = OpLabel - %31 = OpFunctionCall %void %select_bb447f +%vertex_main_inner = OpFunction %v4float None %20 + %22 = OpLabel + %23 = OpFunctionCall %void %select_bb447f OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %33 = OpLabel - %34 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %34 + %25 = OpLabel + %26 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %26 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 - %37 = OpLabel - %38 = OpFunctionCall %void %select_bb447f + %29 = OpLabel + %30 = OpFunctionCall %void %select_bb447f OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9 - %40 = OpLabel - %41 = OpFunctionCall %void %select_bb447f + %32 = OpLabel + %33 = OpFunctionCall %void %select_bb447f OpReturn OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.dxc.hlsl index 9d696b5e13..79f1c8fb1e 100644 --- a/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.dxc.hlsl @@ -1,5 +1,5 @@ void select_bb8aae() { - float4 res = ((true).xxxx ? (1.0f).xxxx : (1.0f).xxxx); + float4 res = (1.0f).xxxx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.fxc.hlsl index 9d696b5e13..79f1c8fb1e 100644 --- a/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.fxc.hlsl +++ b/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.fxc.hlsl @@ -1,5 +1,5 @@ void select_bb8aae() { - float4 res = ((true).xxxx ? (1.0f).xxxx : (1.0f).xxxx); + float4 res = (1.0f).xxxx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.glsl index 5509024aa3..6f92c6bb03 100644 --- a/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.glsl @@ -1,7 +1,7 @@ #version 310 es void select_bb8aae() { - vec4 res = mix(vec4(1.0f), vec4(1.0f), bvec4(true)); + vec4 res = vec4(1.0f); } vec4 vertex_main() { @@ -21,7 +21,7 @@ void main() { precision mediump float; void select_bb8aae() { - vec4 res = mix(vec4(1.0f), vec4(1.0f), bvec4(true)); + vec4 res = vec4(1.0f); } void fragment_main() { @@ -35,7 +35,7 @@ void main() { #version 310 es void select_bb8aae() { - vec4 res = mix(vec4(1.0f), vec4(1.0f), bvec4(true)); + vec4 res = vec4(1.0f); } void compute_main() { diff --git a/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.msl index b165f0ca81..aaa8e6fd97 100644 --- a/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.msl @@ -2,7 +2,7 @@ using namespace metal; void select_bb8aae() { - float4 res = select(float4(1.0f), float4(1.0f), bool4(true)); + float4 res = float4(1.0f); } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.spvasm index 32b22cd8e0..f7e409044b 100644 --- a/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 35 +; Bound: 30 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -30,40 +30,35 @@ %vertex_point_size = OpVariable %_ptr_Output_float Output %8 %void = OpTypeVoid %9 = OpTypeFunction %void - %bool = OpTypeBool - %v4bool = OpTypeVector %bool 4 - %true = OpConstantTrue %bool - %17 = OpConstantComposite %v4bool %true %true %true %true %float_1 = OpConstant %float 1 - %19 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 + %14 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 %_ptr_Function_v4float = OpTypePointer Function %v4float - %22 = OpTypeFunction %v4float + %17 = OpTypeFunction %v4float %select_bb8aae = OpFunction %void None %9 %12 = OpLabel %res = OpVariable %_ptr_Function_v4float Function %5 - %13 = OpSelect %v4float %17 %19 %19 - OpStore %res %13 + OpStore %res %14 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %22 - %24 = OpLabel - %25 = OpFunctionCall %void %select_bb8aae +%vertex_main_inner = OpFunction %v4float None %17 + %19 = OpLabel + %20 = OpFunctionCall %void %select_bb8aae OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %27 = OpLabel - %28 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %28 + %22 = OpLabel + %23 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %23 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 - %30 = OpLabel - %31 = OpFunctionCall %void %select_bb8aae + %25 = OpLabel + %26 = OpFunctionCall %void %select_bb8aae OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9 - %33 = OpLabel - %34 = OpFunctionCall %void %select_bb8aae + %28 = OpLabel + %29 = OpFunctionCall %void %select_bb8aae OpReturn OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.dxc.hlsl index ee028a12bd..21697bc19b 100644 --- a/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.dxc.hlsl @@ -1,5 +1,5 @@ void select_bf3d29() { - float2 res = (true ? (1.0f).xx : (1.0f).xx); + float2 res = (1.0f).xx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.fxc.hlsl index ee028a12bd..21697bc19b 100644 --- a/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.fxc.hlsl +++ b/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.fxc.hlsl @@ -1,5 +1,5 @@ void select_bf3d29() { - float2 res = (true ? (1.0f).xx : (1.0f).xx); + float2 res = (1.0f).xx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.glsl index a51f6f3e46..f710165402 100644 --- a/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.glsl @@ -1,7 +1,7 @@ #version 310 es void select_bf3d29() { - vec2 res = (true ? vec2(1.0f) : vec2(1.0f)); + vec2 res = vec2(1.0f); } vec4 vertex_main() { @@ -21,7 +21,7 @@ void main() { precision mediump float; void select_bf3d29() { - vec2 res = (true ? vec2(1.0f) : vec2(1.0f)); + vec2 res = vec2(1.0f); } void fragment_main() { @@ -35,7 +35,7 @@ void main() { #version 310 es void select_bf3d29() { - vec2 res = (true ? vec2(1.0f) : vec2(1.0f)); + vec2 res = vec2(1.0f); } void compute_main() { diff --git a/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.msl index 6989bc14fe..bb5bc3062c 100644 --- a/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.msl @@ -2,7 +2,7 @@ using namespace metal; void select_bf3d29() { - float2 res = select(float2(1.0f), float2(1.0f), true); + float2 res = float2(1.0f); } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.spvasm index 6c9333f5d8..78234e07ff 100644 --- a/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 40 +; Bound: 32 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -31,44 +31,36 @@ %void = OpTypeVoid %9 = OpTypeFunction %void %v2float = OpTypeVector %float 2 - %bool = OpTypeBool - %true = OpConstantTrue %bool %float_1 = OpConstant %float 1 - %18 = OpConstantComposite %v2float %float_1 %float_1 - %v2bool = OpTypeVector %bool 2 -%_ptr_Function_v2bool = OpTypePointer Function %v2bool - %22 = OpConstantNull %v2bool + %15 = OpConstantComposite %v2float %float_1 %float_1 %_ptr_Function_v2float = OpTypePointer Function %v2float - %26 = OpConstantNull %v2float - %27 = OpTypeFunction %v4float + %18 = OpConstantNull %v2float + %19 = OpTypeFunction %v4float %select_bf3d29 = OpFunction %void None %9 %12 = OpLabel - %20 = OpVariable %_ptr_Function_v2bool Function %22 - %res = OpVariable %_ptr_Function_v2float Function %26 - %23 = OpCompositeConstruct %v2bool %true %true - %13 = OpSelect %v2float %23 %18 %18 - OpStore %res %13 + %res = OpVariable %_ptr_Function_v2float Function %18 + OpStore %res %15 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %27 - %29 = OpLabel - %30 = OpFunctionCall %void %select_bf3d29 +%vertex_main_inner = OpFunction %v4float None %19 + %21 = OpLabel + %22 = OpFunctionCall %void %select_bf3d29 OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %32 = OpLabel - %33 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %33 + %24 = OpLabel + %25 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %25 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 - %35 = OpLabel - %36 = OpFunctionCall %void %select_bf3d29 + %27 = OpLabel + %28 = OpFunctionCall %void %select_bf3d29 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9 - %38 = OpLabel - %39 = OpFunctionCall %void %select_bf3d29 + %30 = OpLabel + %31 = OpFunctionCall %void %select_bf3d29 OpReturn OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.dxc.hlsl index 69c808e426..5cfc5d3ab3 100644 --- a/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.dxc.hlsl @@ -1,5 +1,5 @@ void select_c31f9e() { - bool res = (true ? true : true); + bool res = true; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.fxc.hlsl index 69c808e426..5cfc5d3ab3 100644 --- a/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.fxc.hlsl +++ b/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.fxc.hlsl @@ -1,5 +1,5 @@ void select_c31f9e() { - bool res = (true ? true : true); + bool res = true; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.glsl index 0ef947ba23..84283663a1 100644 --- a/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.glsl @@ -1,7 +1,7 @@ #version 310 es void select_c31f9e() { - bool res = (true ? true : true); + bool res = true; } vec4 vertex_main() { @@ -21,7 +21,7 @@ void main() { precision mediump float; void select_c31f9e() { - bool res = (true ? true : true); + bool res = true; } void fragment_main() { @@ -35,7 +35,7 @@ void main() { #version 310 es void select_c31f9e() { - bool res = (true ? true : true); + bool res = true; } void compute_main() { diff --git a/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.msl index bb2e033e6a..b3bcd826aa 100644 --- a/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.msl @@ -2,7 +2,7 @@ using namespace metal; void select_c31f9e() { - bool res = select(true, true, true); + bool res = true; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.spvasm index fb10e96c32..85f6e87546 100644 --- a/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 33 +; Bound: 32 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -33,35 +33,34 @@ %bool = OpTypeBool %true = OpConstantTrue %bool %_ptr_Function_bool = OpTypePointer Function %bool - %18 = OpConstantNull %bool - %19 = OpTypeFunction %v4float + %17 = OpConstantNull %bool + %18 = OpTypeFunction %v4float %float_1 = OpConstant %float 1 %select_c31f9e = OpFunction %void None %9 %12 = OpLabel - %res = OpVariable %_ptr_Function_bool Function %18 - %13 = OpSelect %bool %true %true %true - OpStore %res %13 + %res = OpVariable %_ptr_Function_bool Function %17 + OpStore %res %true OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %19 - %21 = OpLabel - %22 = OpFunctionCall %void %select_c31f9e +%vertex_main_inner = OpFunction %v4float None %18 + %20 = OpLabel + %21 = OpFunctionCall %void %select_c31f9e OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %24 = OpLabel - %25 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %25 + %23 = OpLabel + %24 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %24 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 - %28 = OpLabel - %29 = OpFunctionCall %void %select_c31f9e + %27 = OpLabel + %28 = OpFunctionCall %void %select_c31f9e OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9 - %31 = OpLabel - %32 = OpFunctionCall %void %select_c31f9e + %30 = OpLabel + %31 = OpFunctionCall %void %select_c31f9e OpReturn OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.dxc.hlsl index ccdd95864a..2c8046541e 100644 --- a/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.dxc.hlsl @@ -1,5 +1,5 @@ void select_c41bd1() { - bool4 res = (true ? (true).xxxx : (true).xxxx); + bool4 res = (true).xxxx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.fxc.hlsl index ccdd95864a..2c8046541e 100644 --- a/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.fxc.hlsl +++ b/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.fxc.hlsl @@ -1,5 +1,5 @@ void select_c41bd1() { - bool4 res = (true ? (true).xxxx : (true).xxxx); + bool4 res = (true).xxxx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.glsl index c31ed7a184..8ddb6b8967 100644 --- a/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.glsl @@ -1,7 +1,7 @@ #version 310 es void select_c41bd1() { - bvec4 res = (true ? bvec4(true) : bvec4(true)); + bvec4 res = bvec4(true); } vec4 vertex_main() { @@ -21,7 +21,7 @@ void main() { precision mediump float; void select_c41bd1() { - bvec4 res = (true ? bvec4(true) : bvec4(true)); + bvec4 res = bvec4(true); } void fragment_main() { @@ -35,7 +35,7 @@ void main() { #version 310 es void select_c41bd1() { - bvec4 res = (true ? bvec4(true) : bvec4(true)); + bvec4 res = bvec4(true); } void compute_main() { diff --git a/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.msl index dc9b3b9d77..60243cb327 100644 --- a/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.msl @@ -2,7 +2,7 @@ using namespace metal; void select_c41bd1() { - bool4 res = select(bool4(true), bool4(true), true); + bool4 res = bool4(true); } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.spvasm index b81194c8d4..982051d2c0 100644 --- a/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 37 +; Bound: 34 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -33,39 +33,36 @@ %bool = OpTypeBool %v4bool = OpTypeVector %bool 4 %true = OpConstantTrue %bool - %17 = OpConstantComposite %v4bool %true %true %true %true + %16 = OpConstantComposite %v4bool %true %true %true %true %_ptr_Function_v4bool = OpTypePointer Function %v4bool - %20 = OpConstantNull %v4bool - %23 = OpTypeFunction %v4float + %19 = OpConstantNull %v4bool + %20 = OpTypeFunction %v4float %float_1 = OpConstant %float 1 %select_c41bd1 = OpFunction %void None %9 %12 = OpLabel - %18 = OpVariable %_ptr_Function_v4bool Function %20 - %res = OpVariable %_ptr_Function_v4bool Function %20 - %21 = OpCompositeConstruct %v4bool %true %true %true %true - %13 = OpSelect %v4bool %21 %17 %17 - OpStore %res %13 + %res = OpVariable %_ptr_Function_v4bool Function %19 + OpStore %res %16 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %23 - %25 = OpLabel - %26 = OpFunctionCall %void %select_c41bd1 +%vertex_main_inner = OpFunction %v4float None %20 + %22 = OpLabel + %23 = OpFunctionCall %void %select_c41bd1 OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %28 = OpLabel - %29 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %29 + %25 = OpLabel + %26 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %26 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 + %29 = OpLabel + %30 = OpFunctionCall %void %select_c41bd1 + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 %32 = OpLabel %33 = OpFunctionCall %void %select_c41bd1 OpReturn OpFunctionEnd -%compute_main = OpFunction %void None %9 - %35 = OpLabel - %36 = OpFunctionCall %void %select_c41bd1 - OpReturn - OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.dxc.hlsl index c309f05b9a..c9d2a537e6 100644 --- a/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.dxc.hlsl @@ -1,5 +1,5 @@ void select_c4a4ef() { - uint4 res = ((true).xxxx ? (1u).xxxx : (1u).xxxx); + uint4 res = (1u).xxxx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.fxc.hlsl index c309f05b9a..c9d2a537e6 100644 --- a/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.fxc.hlsl +++ b/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.fxc.hlsl @@ -1,5 +1,5 @@ void select_c4a4ef() { - uint4 res = ((true).xxxx ? (1u).xxxx : (1u).xxxx); + uint4 res = (1u).xxxx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.glsl index bb831d6141..9be3db9772 100644 --- a/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.glsl @@ -1,7 +1,7 @@ #version 310 es void select_c4a4ef() { - uvec4 res = mix(uvec4(1u), uvec4(1u), bvec4(true)); + uvec4 res = uvec4(1u); } vec4 vertex_main() { @@ -21,7 +21,7 @@ void main() { precision mediump float; void select_c4a4ef() { - uvec4 res = mix(uvec4(1u), uvec4(1u), bvec4(true)); + uvec4 res = uvec4(1u); } void fragment_main() { @@ -35,7 +35,7 @@ void main() { #version 310 es void select_c4a4ef() { - uvec4 res = mix(uvec4(1u), uvec4(1u), bvec4(true)); + uvec4 res = uvec4(1u); } void compute_main() { diff --git a/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.msl index 0a7ea61a66..aa7f5e82ba 100644 --- a/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.msl @@ -2,7 +2,7 @@ using namespace metal; void select_c4a4ef() { - uint4 res = select(uint4(1u), uint4(1u), bool4(true)); + uint4 res = uint4(1u); } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.spvasm index 83779278aa..252327e138 100644 --- a/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 39 +; Bound: 34 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -32,42 +32,37 @@ %9 = OpTypeFunction %void %uint = OpTypeInt 32 0 %v4uint = OpTypeVector %uint 4 - %bool = OpTypeBool - %v4bool = OpTypeVector %bool 4 - %true = OpConstantTrue %bool - %19 = OpConstantComposite %v4bool %true %true %true %true %uint_1 = OpConstant %uint 1 - %21 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1 + %16 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1 %_ptr_Function_v4uint = OpTypePointer Function %v4uint - %24 = OpConstantNull %v4uint - %25 = OpTypeFunction %v4float + %19 = OpConstantNull %v4uint + %20 = OpTypeFunction %v4float %float_1 = OpConstant %float 1 %select_c4a4ef = OpFunction %void None %9 %12 = OpLabel - %res = OpVariable %_ptr_Function_v4uint Function %24 - %13 = OpSelect %v4uint %19 %21 %21 - OpStore %res %13 + %res = OpVariable %_ptr_Function_v4uint Function %19 + OpStore %res %16 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %25 - %27 = OpLabel - %28 = OpFunctionCall %void %select_c4a4ef +%vertex_main_inner = OpFunction %v4float None %20 + %22 = OpLabel + %23 = OpFunctionCall %void %select_c4a4ef OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %30 = OpLabel - %31 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %31 + %25 = OpLabel + %26 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %26 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 - %34 = OpLabel - %35 = OpFunctionCall %void %select_c4a4ef + %29 = OpLabel + %30 = OpFunctionCall %void %select_c4a4ef OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9 - %37 = OpLabel - %38 = OpFunctionCall %void %select_c4a4ef + %32 = OpLabel + %33 = OpFunctionCall %void %select_c4a4ef OpReturn OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.dxc.hlsl index 93fbebcd58..ac9a7bdb75 100644 --- a/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.dxc.hlsl @@ -1,5 +1,5 @@ void select_cb9301() { - bool2 res = ((true).xx ? (true).xx : (true).xx); + bool2 res = (true).xx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.fxc.hlsl index 93fbebcd58..ac9a7bdb75 100644 --- a/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.fxc.hlsl +++ b/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.fxc.hlsl @@ -1,5 +1,5 @@ void select_cb9301() { - bool2 res = ((true).xx ? (true).xx : (true).xx); + bool2 res = (true).xx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.glsl index 5737cf4959..df5b1e1d1d 100644 --- a/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.glsl @@ -1,7 +1,7 @@ #version 310 es void select_cb9301() { - bvec2 res = mix(bvec2(true), bvec2(true), bvec2(true)); + bvec2 res = bvec2(true); } vec4 vertex_main() { @@ -21,7 +21,7 @@ void main() { precision mediump float; void select_cb9301() { - bvec2 res = mix(bvec2(true), bvec2(true), bvec2(true)); + bvec2 res = bvec2(true); } void fragment_main() { @@ -35,7 +35,7 @@ void main() { #version 310 es void select_cb9301() { - bvec2 res = mix(bvec2(true), bvec2(true), bvec2(true)); + bvec2 res = bvec2(true); } void compute_main() { diff --git a/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.msl index b3a7fb1a3e..41ce190a83 100644 --- a/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.msl @@ -2,7 +2,7 @@ using namespace metal; void select_cb9301() { - bool2 res = select(bool2(true), bool2(true), bool2(true)); + bool2 res = bool2(true); } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.spvasm index 7e893d3669..d8729530f1 100644 --- a/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 35 +; Bound: 34 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -33,37 +33,36 @@ %bool = OpTypeBool %v2bool = OpTypeVector %bool 2 %true = OpConstantTrue %bool - %17 = OpConstantComposite %v2bool %true %true + %16 = OpConstantComposite %v2bool %true %true %_ptr_Function_v2bool = OpTypePointer Function %v2bool - %20 = OpConstantNull %v2bool - %21 = OpTypeFunction %v4float + %19 = OpConstantNull %v2bool + %20 = OpTypeFunction %v4float %float_1 = OpConstant %float 1 %select_cb9301 = OpFunction %void None %9 %12 = OpLabel - %res = OpVariable %_ptr_Function_v2bool Function %20 - %13 = OpSelect %v2bool %17 %17 %17 - OpStore %res %13 + %res = OpVariable %_ptr_Function_v2bool Function %19 + OpStore %res %16 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %21 - %23 = OpLabel - %24 = OpFunctionCall %void %select_cb9301 +%vertex_main_inner = OpFunction %v4float None %20 + %22 = OpLabel + %23 = OpFunctionCall %void %select_cb9301 OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %26 = OpLabel - %27 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %27 + %25 = OpLabel + %26 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %26 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 - %30 = OpLabel - %31 = OpFunctionCall %void %select_cb9301 + %29 = OpLabel + %30 = OpFunctionCall %void %select_cb9301 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9 - %33 = OpLabel - %34 = OpFunctionCall %void %select_cb9301 + %32 = OpLabel + %33 = OpFunctionCall %void %select_cb9301 OpReturn OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/dfab3b.wgsl b/test/tint/builtins/gen/literal/select/dfab3b.wgsl new file mode 100644 index 0000000000..d01e23bfec --- /dev/null +++ b/test/tint/builtins/gen/literal/select/dfab3b.wgsl @@ -0,0 +1,43 @@ +// Copyright 2022 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//////////////////////////////////////////////////////////////////////////////// +// File generated by tools/src/cmd/gen +// using the template: +// test/tint/builtins/gen/gen.wgsl.tmpl +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn select(vec<3, ia>, vec<3, ia>, bool) -> vec<3, ia> +fn select_dfab3b() { + var res = select(vec3(1.0), vec3(1.0), true); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_dfab3b(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_dfab3b(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_dfab3b(); +} diff --git a/test/tint/builtins/gen/literal/select/dfab3b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/dfab3b.wgsl.expected.dxc.hlsl new file mode 100644 index 0000000000..353db6eb3c --- /dev/null +++ b/test/tint/builtins/gen/literal/select/dfab3b.wgsl.expected.dxc.hlsl @@ -0,0 +1,30 @@ +void select_dfab3b() { + float3 res = (1.0f).xxx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_dfab3b(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_dfab3b(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_dfab3b(); + return; +} diff --git a/test/tint/builtins/gen/literal/select/dfab3b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/dfab3b.wgsl.expected.fxc.hlsl new file mode 100644 index 0000000000..353db6eb3c --- /dev/null +++ b/test/tint/builtins/gen/literal/select/dfab3b.wgsl.expected.fxc.hlsl @@ -0,0 +1,30 @@ +void select_dfab3b() { + float3 res = (1.0f).xxx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_dfab3b(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_dfab3b(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_dfab3b(); + return; +} diff --git a/test/tint/builtins/gen/literal/select/dfab3b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/dfab3b.wgsl.expected.glsl new file mode 100644 index 0000000000..b10eb86af2 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/dfab3b.wgsl.expected.glsl @@ -0,0 +1,49 @@ +#version 310 es + +void select_dfab3b() { + vec3 res = vec3(1.0f); +} + +vec4 vertex_main() { + select_dfab3b(); + return vec4(0.0f); +} + +void main() { + gl_PointSize = 1.0; + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +void select_dfab3b() { + vec3 res = vec3(1.0f); +} + +void fragment_main() { + select_dfab3b(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +void select_dfab3b() { + vec3 res = vec3(1.0f); +} + +void compute_main() { + select_dfab3b(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +} diff --git a/test/tint/builtins/gen/literal/select/dfab3b.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/dfab3b.wgsl.expected.msl new file mode 100644 index 0000000000..e99afc1ec7 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/dfab3b.wgsl.expected.msl @@ -0,0 +1,33 @@ +#include + +using namespace metal; +void select_dfab3b() { + float3 res = float3(1.0f); +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + select_dfab3b(); + return float4(0.0f); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + select_dfab3b(); + return; +} + +kernel void compute_main() { + select_dfab3b(); + return; +} + diff --git a/test/tint/builtins/gen/literal/select/dfab3b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/dfab3b.wgsl.expected.spvasm new file mode 100644 index 0000000000..c69ae4b7b0 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/dfab3b.wgsl.expected.spvasm @@ -0,0 +1,66 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 32 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %select_dfab3b "select_dfab3b" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %void = OpTypeVoid + %9 = OpTypeFunction %void + %v3float = OpTypeVector %float 3 + %float_1 = OpConstant %float 1 + %15 = OpConstantComposite %v3float %float_1 %float_1 %float_1 +%_ptr_Function_v3float = OpTypePointer Function %v3float + %18 = OpConstantNull %v3float + %19 = OpTypeFunction %v4float +%select_dfab3b = OpFunction %void None %9 + %12 = OpLabel + %res = OpVariable %_ptr_Function_v3float Function %18 + OpStore %res %15 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %19 + %21 = OpLabel + %22 = OpFunctionCall %void %select_dfab3b + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %9 + %24 = OpLabel + %25 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %25 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %9 + %27 = OpLabel + %28 = OpFunctionCall %void %select_dfab3b + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 + %30 = OpLabel + %31 = OpFunctionCall %void %select_dfab3b + OpReturn + OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/dfab3b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/dfab3b.wgsl.expected.wgsl new file mode 100644 index 0000000000..1495e0f3e9 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/dfab3b.wgsl.expected.wgsl @@ -0,0 +1,19 @@ +fn select_dfab3b() { + var res = select(vec3(1.0), vec3(1.0), true); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_dfab3b(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_dfab3b(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_dfab3b(); +} diff --git a/test/tint/builtins/gen/literal/select/e381c3.wgsl b/test/tint/builtins/gen/literal/select/e381c3.wgsl new file mode 100644 index 0000000000..c38a0e48b4 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/e381c3.wgsl @@ -0,0 +1,43 @@ +// Copyright 2022 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//////////////////////////////////////////////////////////////////////////////// +// File generated by tools/src/cmd/gen +// using the template: +// test/tint/builtins/gen/gen.wgsl.tmpl +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn select(vec<4, ia>, vec<4, ia>, bool) -> vec<4, ia> +fn select_e381c3() { + var res = select(vec4(1.0), vec4(1.0), true); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_e381c3(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_e381c3(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_e381c3(); +} diff --git a/test/tint/builtins/gen/literal/select/e381c3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/e381c3.wgsl.expected.dxc.hlsl new file mode 100644 index 0000000000..ab06e7121d --- /dev/null +++ b/test/tint/builtins/gen/literal/select/e381c3.wgsl.expected.dxc.hlsl @@ -0,0 +1,30 @@ +void select_e381c3() { + float4 res = (1.0f).xxxx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_e381c3(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_e381c3(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_e381c3(); + return; +} diff --git a/test/tint/builtins/gen/literal/select/e381c3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/e381c3.wgsl.expected.fxc.hlsl new file mode 100644 index 0000000000..ab06e7121d --- /dev/null +++ b/test/tint/builtins/gen/literal/select/e381c3.wgsl.expected.fxc.hlsl @@ -0,0 +1,30 @@ +void select_e381c3() { + float4 res = (1.0f).xxxx; +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_e381c3(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_e381c3(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_e381c3(); + return; +} diff --git a/test/tint/builtins/gen/literal/select/e381c3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/e381c3.wgsl.expected.glsl new file mode 100644 index 0000000000..b7807edf5e --- /dev/null +++ b/test/tint/builtins/gen/literal/select/e381c3.wgsl.expected.glsl @@ -0,0 +1,49 @@ +#version 310 es + +void select_e381c3() { + vec4 res = vec4(1.0f); +} + +vec4 vertex_main() { + select_e381c3(); + return vec4(0.0f); +} + +void main() { + gl_PointSize = 1.0; + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +void select_e381c3() { + vec4 res = vec4(1.0f); +} + +void fragment_main() { + select_e381c3(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +void select_e381c3() { + vec4 res = vec4(1.0f); +} + +void compute_main() { + select_e381c3(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +} diff --git a/test/tint/builtins/gen/literal/select/e381c3.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/e381c3.wgsl.expected.msl new file mode 100644 index 0000000000..d5f75ad5ea --- /dev/null +++ b/test/tint/builtins/gen/literal/select/e381c3.wgsl.expected.msl @@ -0,0 +1,33 @@ +#include + +using namespace metal; +void select_e381c3() { + float4 res = float4(1.0f); +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + select_e381c3(); + return float4(0.0f); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + select_e381c3(); + return; +} + +kernel void compute_main() { + select_e381c3(); + return; +} + diff --git a/test/tint/builtins/gen/literal/select/e381c3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/e381c3.wgsl.expected.spvasm new file mode 100644 index 0000000000..b208fee030 --- /dev/null +++ b/test/tint/builtins/gen/literal/select/e381c3.wgsl.expected.spvasm @@ -0,0 +1,64 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 30 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %select_e381c3 "select_e381c3" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %void = OpTypeVoid + %9 = OpTypeFunction %void + %float_1 = OpConstant %float 1 + %14 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 +%_ptr_Function_v4float = OpTypePointer Function %v4float + %17 = OpTypeFunction %v4float +%select_e381c3 = OpFunction %void None %9 + %12 = OpLabel + %res = OpVariable %_ptr_Function_v4float Function %5 + OpStore %res %14 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %17 + %19 = OpLabel + %20 = OpFunctionCall %void %select_e381c3 + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %9 + %22 = OpLabel + %23 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %23 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %9 + %25 = OpLabel + %26 = OpFunctionCall %void %select_e381c3 + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 + %28 = OpLabel + %29 = OpFunctionCall %void %select_e381c3 + OpReturn + OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/e381c3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/e381c3.wgsl.expected.wgsl new file mode 100644 index 0000000000..530838fc0c --- /dev/null +++ b/test/tint/builtins/gen/literal/select/e381c3.wgsl.expected.wgsl @@ -0,0 +1,19 @@ +fn select_e381c3() { + var res = select(vec4(1.0), vec4(1.0), true); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_e381c3(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_e381c3(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_e381c3(); +} diff --git a/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.dxc.hlsl index 0876d282d7..69fcd0f3ca 100644 --- a/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.dxc.hlsl @@ -1,5 +1,5 @@ void select_e3e028() { - bool4 res = ((true).xxxx ? (true).xxxx : (true).xxxx); + bool4 res = (true).xxxx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.fxc.hlsl index 0876d282d7..69fcd0f3ca 100644 --- a/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.fxc.hlsl +++ b/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.fxc.hlsl @@ -1,5 +1,5 @@ void select_e3e028() { - bool4 res = ((true).xxxx ? (true).xxxx : (true).xxxx); + bool4 res = (true).xxxx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.glsl index a28a0395e4..85663ee82d 100644 --- a/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.glsl @@ -1,7 +1,7 @@ #version 310 es void select_e3e028() { - bvec4 res = mix(bvec4(true), bvec4(true), bvec4(true)); + bvec4 res = bvec4(true); } vec4 vertex_main() { @@ -21,7 +21,7 @@ void main() { precision mediump float; void select_e3e028() { - bvec4 res = mix(bvec4(true), bvec4(true), bvec4(true)); + bvec4 res = bvec4(true); } void fragment_main() { @@ -35,7 +35,7 @@ void main() { #version 310 es void select_e3e028() { - bvec4 res = mix(bvec4(true), bvec4(true), bvec4(true)); + bvec4 res = bvec4(true); } void compute_main() { diff --git a/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.msl index d25a5ae2d5..23e3cf2011 100644 --- a/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.msl @@ -2,7 +2,7 @@ using namespace metal; void select_e3e028() { - bool4 res = select(bool4(true), bool4(true), bool4(true)); + bool4 res = bool4(true); } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.spvasm index bbfa5e16a9..5434e510eb 100644 --- a/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 35 +; Bound: 34 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -33,37 +33,36 @@ %bool = OpTypeBool %v4bool = OpTypeVector %bool 4 %true = OpConstantTrue %bool - %17 = OpConstantComposite %v4bool %true %true %true %true + %16 = OpConstantComposite %v4bool %true %true %true %true %_ptr_Function_v4bool = OpTypePointer Function %v4bool - %20 = OpConstantNull %v4bool - %21 = OpTypeFunction %v4float + %19 = OpConstantNull %v4bool + %20 = OpTypeFunction %v4float %float_1 = OpConstant %float 1 %select_e3e028 = OpFunction %void None %9 %12 = OpLabel - %res = OpVariable %_ptr_Function_v4bool Function %20 - %13 = OpSelect %v4bool %17 %17 %17 - OpStore %res %13 + %res = OpVariable %_ptr_Function_v4bool Function %19 + OpStore %res %16 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %21 - %23 = OpLabel - %24 = OpFunctionCall %void %select_e3e028 +%vertex_main_inner = OpFunction %v4float None %20 + %22 = OpLabel + %23 = OpFunctionCall %void %select_e3e028 OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %26 = OpLabel - %27 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %27 + %25 = OpLabel + %26 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %26 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 - %30 = OpLabel - %31 = OpFunctionCall %void %select_e3e028 + %29 = OpLabel + %30 = OpFunctionCall %void %select_e3e028 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9 - %33 = OpLabel - %34 = OpFunctionCall %void %select_e3e028 + %32 = OpLabel + %33 = OpFunctionCall %void %select_e3e028 OpReturn OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.dxc.hlsl index 2bb8831ed0..f2ca2bc3b1 100644 --- a/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.dxc.hlsl @@ -1,5 +1,5 @@ void select_ebfea2() { - float3 res = ((true).xxx ? (1.0f).xxx : (1.0f).xxx); + float3 res = (1.0f).xxx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.fxc.hlsl index 2bb8831ed0..f2ca2bc3b1 100644 --- a/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.fxc.hlsl +++ b/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.fxc.hlsl @@ -1,5 +1,5 @@ void select_ebfea2() { - float3 res = ((true).xxx ? (1.0f).xxx : (1.0f).xxx); + float3 res = (1.0f).xxx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.glsl index 1fa1c53faa..0ef3eb0658 100644 --- a/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.glsl @@ -1,7 +1,7 @@ #version 310 es void select_ebfea2() { - vec3 res = mix(vec3(1.0f), vec3(1.0f), bvec3(true)); + vec3 res = vec3(1.0f); } vec4 vertex_main() { @@ -21,7 +21,7 @@ void main() { precision mediump float; void select_ebfea2() { - vec3 res = mix(vec3(1.0f), vec3(1.0f), bvec3(true)); + vec3 res = vec3(1.0f); } void fragment_main() { @@ -35,7 +35,7 @@ void main() { #version 310 es void select_ebfea2() { - vec3 res = mix(vec3(1.0f), vec3(1.0f), bvec3(true)); + vec3 res = vec3(1.0f); } void compute_main() { diff --git a/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.msl index 5d62fd1734..c46220138f 100644 --- a/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.msl @@ -2,7 +2,7 @@ using namespace metal; void select_ebfea2() { - float3 res = select(float3(1.0f), float3(1.0f), bool3(true)); + float3 res = float3(1.0f); } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.spvasm index b6e0c0316b..ce6c093b5f 100644 --- a/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 37 +; Bound: 32 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -31,41 +31,36 @@ %void = OpTypeVoid %9 = OpTypeFunction %void %v3float = OpTypeVector %float 3 - %bool = OpTypeBool - %v3bool = OpTypeVector %bool 3 - %true = OpConstantTrue %bool - %18 = OpConstantComposite %v3bool %true %true %true %float_1 = OpConstant %float 1 - %20 = OpConstantComposite %v3float %float_1 %float_1 %float_1 + %15 = OpConstantComposite %v3float %float_1 %float_1 %float_1 %_ptr_Function_v3float = OpTypePointer Function %v3float - %23 = OpConstantNull %v3float - %24 = OpTypeFunction %v4float + %18 = OpConstantNull %v3float + %19 = OpTypeFunction %v4float %select_ebfea2 = OpFunction %void None %9 %12 = OpLabel - %res = OpVariable %_ptr_Function_v3float Function %23 - %13 = OpSelect %v3float %18 %20 %20 - OpStore %res %13 + %res = OpVariable %_ptr_Function_v3float Function %18 + OpStore %res %15 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %24 - %26 = OpLabel - %27 = OpFunctionCall %void %select_ebfea2 +%vertex_main_inner = OpFunction %v4float None %19 + %21 = OpLabel + %22 = OpFunctionCall %void %select_ebfea2 OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %29 = OpLabel - %30 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %30 + %24 = OpLabel + %25 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %25 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 - %32 = OpLabel - %33 = OpFunctionCall %void %select_ebfea2 + %27 = OpLabel + %28 = OpFunctionCall %void %select_ebfea2 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9 - %35 = OpLabel - %36 = OpFunctionCall %void %select_ebfea2 + %30 = OpLabel + %31 = OpFunctionCall %void %select_ebfea2 OpReturn OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/ed7c13.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/ed7c13.wgsl.expected.dxc.hlsl index 1db2ca48d2..a15279afeb 100644 --- a/test/tint/builtins/gen/literal/select/ed7c13.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/select/ed7c13.wgsl.expected.dxc.hlsl @@ -1,5 +1,5 @@ void select_ed7c13() { - vector res = ((true).xx ? (float16_t(0.0h)).xx : (float16_t(0.0h)).xx); + vector res = (float16_t(0.0h)).xx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/ed7c13.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/ed7c13.wgsl.expected.glsl index 3e0564b2f8..a5fad2c745 100644 --- a/test/tint/builtins/gen/literal/select/ed7c13.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/select/ed7c13.wgsl.expected.glsl @@ -2,7 +2,7 @@ #extension GL_AMD_gpu_shader_half_float : require void select_ed7c13() { - f16vec2 res = mix(f16vec2(0.0hf), f16vec2(0.0hf), bvec2(true)); + f16vec2 res = f16vec2(0.0hf); } vec4 vertex_main() { @@ -23,7 +23,7 @@ void main() { precision mediump float; void select_ed7c13() { - f16vec2 res = mix(f16vec2(0.0hf), f16vec2(0.0hf), bvec2(true)); + f16vec2 res = f16vec2(0.0hf); } void fragment_main() { @@ -38,7 +38,7 @@ void main() { #extension GL_AMD_gpu_shader_half_float : require void select_ed7c13() { - f16vec2 res = mix(f16vec2(0.0hf), f16vec2(0.0hf), bvec2(true)); + f16vec2 res = f16vec2(0.0hf); } void compute_main() { diff --git a/test/tint/builtins/gen/literal/select/ed7c13.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/ed7c13.wgsl.expected.msl index 172c6dd67d..f02a9f6176 100644 --- a/test/tint/builtins/gen/literal/select/ed7c13.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/select/ed7c13.wgsl.expected.msl @@ -2,7 +2,7 @@ using namespace metal; void select_ed7c13() { - half2 res = select(half2(0.0h), half2(0.0h), bool2(true)); + half2 res = half2(0.0h); } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/ed7c13.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/ed7c13.wgsl.expected.spvasm index 3112c00a14..7a647b8710 100644 --- a/test/tint/builtins/gen/literal/select/ed7c13.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/select/ed7c13.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 37 +; Bound: 32 ; Schema: 0 OpCapability Shader OpCapability Float16 @@ -36,40 +36,35 @@ %9 = OpTypeFunction %void %half = OpTypeFloat 16 %v2half = OpTypeVector %half 2 - %bool = OpTypeBool - %v2bool = OpTypeVector %bool 2 - %true = OpConstantTrue %bool - %19 = OpConstantComposite %v2bool %true %true - %20 = OpConstantNull %v2half + %15 = OpConstantNull %v2half %_ptr_Function_v2half = OpTypePointer Function %v2half - %23 = OpTypeFunction %v4float + %18 = OpTypeFunction %v4float %float_1 = OpConstant %float 1 %select_ed7c13 = OpFunction %void None %9 %12 = OpLabel - %res = OpVariable %_ptr_Function_v2half Function %20 - %13 = OpSelect %v2half %19 %20 %20 - OpStore %res %13 + %res = OpVariable %_ptr_Function_v2half Function %15 + OpStore %res %15 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %23 - %25 = OpLabel - %26 = OpFunctionCall %void %select_ed7c13 +%vertex_main_inner = OpFunction %v4float None %18 + %20 = OpLabel + %21 = OpFunctionCall %void %select_ed7c13 OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %28 = OpLabel - %29 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %29 + %23 = OpLabel + %24 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %24 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 - %32 = OpLabel - %33 = OpFunctionCall %void %select_ed7c13 + %27 = OpLabel + %28 = OpFunctionCall %void %select_ed7c13 OpReturn OpFunctionEnd %compute_main = OpFunction %void None %9 - %35 = OpLabel - %36 = OpFunctionCall %void %select_ed7c13 + %30 = OpLabel + %31 = OpFunctionCall %void %select_ed7c13 OpReturn OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.dxc.hlsl index 204bba2277..1e27b9fb5c 100644 --- a/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.dxc.hlsl @@ -1,5 +1,5 @@ void select_ed8a15() { - int res = (true ? 1 : 1); + int res = 1; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.fxc.hlsl index 204bba2277..1e27b9fb5c 100644 --- a/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.fxc.hlsl +++ b/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.fxc.hlsl @@ -1,5 +1,5 @@ void select_ed8a15() { - int res = (true ? 1 : 1); + int res = 1; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.glsl index b89c5848c9..15adb772c4 100644 --- a/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.glsl @@ -1,7 +1,7 @@ #version 310 es void select_ed8a15() { - int res = (true ? 1 : 1); + int res = 1; } vec4 vertex_main() { @@ -21,7 +21,7 @@ void main() { precision mediump float; void select_ed8a15() { - int res = (true ? 1 : 1); + int res = 1; } void fragment_main() { @@ -35,7 +35,7 @@ void main() { #version 310 es void select_ed8a15() { - int res = (true ? 1 : 1); + int res = 1; } void compute_main() { diff --git a/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.msl index 159410ebc1..fc9ae48bb9 100644 --- a/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.msl @@ -2,7 +2,7 @@ using namespace metal; void select_ed8a15() { - int res = select(1, 1, true); + int res = 1; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.spvasm index 5dc45bf82d..d9735507cc 100644 --- a/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 35 +; Bound: 32 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -31,39 +31,36 @@ %void = OpTypeVoid %9 = OpTypeFunction %void %int = OpTypeInt 32 1 - %bool = OpTypeBool - %true = OpConstantTrue %bool %int_1 = OpConstant %int 1 %_ptr_Function_int = OpTypePointer Function %int - %20 = OpConstantNull %int - %21 = OpTypeFunction %v4float + %17 = OpConstantNull %int + %18 = OpTypeFunction %v4float %float_1 = OpConstant %float 1 %select_ed8a15 = OpFunction %void None %9 %12 = OpLabel - %res = OpVariable %_ptr_Function_int Function %20 - %13 = OpSelect %int %true %int_1 %int_1 - OpStore %res %13 + %res = OpVariable %_ptr_Function_int Function %17 + OpStore %res %int_1 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %21 - %23 = OpLabel - %24 = OpFunctionCall %void %select_ed8a15 +%vertex_main_inner = OpFunction %v4float None %18 + %20 = OpLabel + %21 = OpFunctionCall %void %select_ed8a15 OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %26 = OpLabel - %27 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %27 + %23 = OpLabel + %24 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %24 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 + %27 = OpLabel + %28 = OpFunctionCall %void %select_ed8a15 + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 %30 = OpLabel %31 = OpFunctionCall %void %select_ed8a15 OpReturn OpFunctionEnd -%compute_main = OpFunction %void None %9 - %33 = OpLabel - %34 = OpFunctionCall %void %select_ed8a15 - OpReturn - OpFunctionEnd diff --git a/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.dxc.hlsl index 09a9f42430..583b0dde0e 100644 --- a/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.dxc.hlsl @@ -1,5 +1,5 @@ void select_fb7e53() { - bool2 res = (true ? (true).xx : (true).xx); + bool2 res = (true).xx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.fxc.hlsl index 09a9f42430..583b0dde0e 100644 --- a/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.fxc.hlsl +++ b/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.fxc.hlsl @@ -1,5 +1,5 @@ void select_fb7e53() { - bool2 res = (true ? (true).xx : (true).xx); + bool2 res = (true).xx; } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.glsl index 4f655b8916..8aad385353 100644 --- a/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.glsl +++ b/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.glsl @@ -1,7 +1,7 @@ #version 310 es void select_fb7e53() { - bvec2 res = (true ? bvec2(true) : bvec2(true)); + bvec2 res = bvec2(true); } vec4 vertex_main() { @@ -21,7 +21,7 @@ void main() { precision mediump float; void select_fb7e53() { - bvec2 res = (true ? bvec2(true) : bvec2(true)); + bvec2 res = bvec2(true); } void fragment_main() { @@ -35,7 +35,7 @@ void main() { #version 310 es void select_fb7e53() { - bvec2 res = (true ? bvec2(true) : bvec2(true)); + bvec2 res = bvec2(true); } void compute_main() { diff --git a/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.msl b/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.msl index f1ba6f0fda..44f98a5a1c 100644 --- a/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.msl +++ b/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.msl @@ -2,7 +2,7 @@ using namespace metal; void select_fb7e53() { - bool2 res = select(bool2(true), bool2(true), true); + bool2 res = bool2(true); } struct tint_symbol { diff --git a/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.spvasm index 7b6deab35f..04cbf1337f 100644 --- a/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 37 +; Bound: 34 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -33,39 +33,36 @@ %bool = OpTypeBool %v2bool = OpTypeVector %bool 2 %true = OpConstantTrue %bool - %17 = OpConstantComposite %v2bool %true %true + %16 = OpConstantComposite %v2bool %true %true %_ptr_Function_v2bool = OpTypePointer Function %v2bool - %20 = OpConstantNull %v2bool - %23 = OpTypeFunction %v4float + %19 = OpConstantNull %v2bool + %20 = OpTypeFunction %v4float %float_1 = OpConstant %float 1 %select_fb7e53 = OpFunction %void None %9 %12 = OpLabel - %18 = OpVariable %_ptr_Function_v2bool Function %20 - %res = OpVariable %_ptr_Function_v2bool Function %20 - %21 = OpCompositeConstruct %v2bool %true %true - %13 = OpSelect %v2bool %21 %17 %17 - OpStore %res %13 + %res = OpVariable %_ptr_Function_v2bool Function %19 + OpStore %res %16 OpReturn OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %23 - %25 = OpLabel - %26 = OpFunctionCall %void %select_fb7e53 +%vertex_main_inner = OpFunction %v4float None %20 + %22 = OpLabel + %23 = OpFunctionCall %void %select_fb7e53 OpReturnValue %5 OpFunctionEnd %vertex_main = OpFunction %void None %9 - %28 = OpLabel - %29 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %29 + %25 = OpLabel + %26 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %26 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd %fragment_main = OpFunction %void None %9 + %29 = OpLabel + %30 = OpFunctionCall %void %select_fb7e53 + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 %32 = OpLabel %33 = OpFunctionCall %void %select_fb7e53 OpReturn OpFunctionEnd -%compute_main = OpFunction %void None %9 - %35 = OpLabel - %36 = OpFunctionCall %void %select_fb7e53 - OpReturn - OpFunctionEnd diff --git a/test/tint/builtins/gen/var/select/089657.wgsl b/test/tint/builtins/gen/var/select/089657.wgsl new file mode 100644 index 0000000000..eaed4bbd90 --- /dev/null +++ b/test/tint/builtins/gen/var/select/089657.wgsl @@ -0,0 +1,46 @@ +// Copyright 2022 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//////////////////////////////////////////////////////////////////////////////// +// File generated by tools/src/cmd/gen +// using the template: +// test/tint/builtins/gen/gen.wgsl.tmpl +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn select(vec<3, fa>, vec<3, fa>, bool) -> vec<3, fa> +fn select_089657() { + const arg_0 = vec3(1); + const arg_1 = vec3(1); + var arg_2 = true; + var res = select(arg_0, arg_1, arg_2); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_089657(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_089657(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_089657(); +} diff --git a/test/tint/builtins/gen/var/select/089657.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/089657.wgsl.expected.dxc.hlsl new file mode 100644 index 0000000000..dca35c7736 --- /dev/null +++ b/test/tint/builtins/gen/var/select/089657.wgsl.expected.dxc.hlsl @@ -0,0 +1,31 @@ +void select_089657() { + bool arg_2 = true; + int3 res = (arg_2 ? (1).xxx : (1).xxx); +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_089657(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_089657(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_089657(); + return; +} diff --git a/test/tint/builtins/gen/var/select/089657.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/089657.wgsl.expected.fxc.hlsl new file mode 100644 index 0000000000..dca35c7736 --- /dev/null +++ b/test/tint/builtins/gen/var/select/089657.wgsl.expected.fxc.hlsl @@ -0,0 +1,31 @@ +void select_089657() { + bool arg_2 = true; + int3 res = (arg_2 ? (1).xxx : (1).xxx); +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_089657(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_089657(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_089657(); + return; +} diff --git a/test/tint/builtins/gen/var/select/089657.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/089657.wgsl.expected.glsl new file mode 100644 index 0000000000..d709ba9b02 --- /dev/null +++ b/test/tint/builtins/gen/var/select/089657.wgsl.expected.glsl @@ -0,0 +1,52 @@ +#version 310 es + +void select_089657() { + bool arg_2 = true; + ivec3 res = (arg_2 ? ivec3(1) : ivec3(1)); +} + +vec4 vertex_main() { + select_089657(); + return vec4(0.0f); +} + +void main() { + gl_PointSize = 1.0; + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +void select_089657() { + bool arg_2 = true; + ivec3 res = (arg_2 ? ivec3(1) : ivec3(1)); +} + +void fragment_main() { + select_089657(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +void select_089657() { + bool arg_2 = true; + ivec3 res = (arg_2 ? ivec3(1) : ivec3(1)); +} + +void compute_main() { + select_089657(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +} diff --git a/test/tint/builtins/gen/var/select/089657.wgsl.expected.msl b/test/tint/builtins/gen/var/select/089657.wgsl.expected.msl new file mode 100644 index 0000000000..1d68da09c4 --- /dev/null +++ b/test/tint/builtins/gen/var/select/089657.wgsl.expected.msl @@ -0,0 +1,34 @@ +#include + +using namespace metal; +void select_089657() { + bool arg_2 = true; + int3 res = select(int3(1), int3(1), arg_2); +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + select_089657(); + return float4(0.0f); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + select_089657(); + return; +} + +kernel void compute_main() { + select_089657(); + return; +} + diff --git a/test/tint/builtins/gen/var/select/089657.wgsl.expected.spvasm b/test/tint/builtins/gen/var/select/089657.wgsl.expected.spvasm new file mode 100644 index 0000000000..2881e76101 --- /dev/null +++ b/test/tint/builtins/gen/var/select/089657.wgsl.expected.spvasm @@ -0,0 +1,82 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 46 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %select_089657 "select_089657" + OpName %arg_2 "arg_2" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %void = OpTypeVoid + %9 = OpTypeFunction %void + %bool = OpTypeBool + %true = OpConstantTrue %bool +%_ptr_Function_bool = OpTypePointer Function %bool + %17 = OpConstantNull %bool + %int = OpTypeInt 32 1 + %v3int = OpTypeVector %int 3 + %int_1 = OpConstant %int 1 + %23 = OpConstantComposite %v3int %int_1 %int_1 %int_1 + %v3bool = OpTypeVector %bool 3 +%_ptr_Function_v3bool = OpTypePointer Function %v3bool + %27 = OpConstantNull %v3bool +%_ptr_Function_v3int = OpTypePointer Function %v3int + %31 = OpConstantNull %v3int + %32 = OpTypeFunction %v4float + %float_1 = OpConstant %float 1 +%select_089657 = OpFunction %void None %9 + %12 = OpLabel + %arg_2 = OpVariable %_ptr_Function_bool Function %17 + %25 = OpVariable %_ptr_Function_v3bool Function %27 + %res = OpVariable %_ptr_Function_v3int Function %31 + OpStore %arg_2 %true + %21 = OpLoad %bool %arg_2 + %28 = OpCompositeConstruct %v3bool %21 %21 %21 + %18 = OpSelect %v3int %28 %23 %23 + OpStore %res %18 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %32 + %34 = OpLabel + %35 = OpFunctionCall %void %select_089657 + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %9 + %37 = OpLabel + %38 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %38 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %9 + %41 = OpLabel + %42 = OpFunctionCall %void %select_089657 + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 + %44 = OpLabel + %45 = OpFunctionCall %void %select_089657 + OpReturn + OpFunctionEnd diff --git a/test/tint/builtins/gen/var/select/089657.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/089657.wgsl.expected.wgsl new file mode 100644 index 0000000000..7ec7b030bd --- /dev/null +++ b/test/tint/builtins/gen/var/select/089657.wgsl.expected.wgsl @@ -0,0 +1,22 @@ +fn select_089657() { + const arg_0 = vec3(1); + const arg_1 = vec3(1); + var arg_2 = true; + var res = select(arg_0, arg_1, arg_2); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_089657(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_089657(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_089657(); +} diff --git a/test/tint/builtins/gen/var/select/17441a.wgsl b/test/tint/builtins/gen/var/select/17441a.wgsl new file mode 100644 index 0000000000..2adbd67ae3 --- /dev/null +++ b/test/tint/builtins/gen/var/select/17441a.wgsl @@ -0,0 +1,46 @@ +// Copyright 2022 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//////////////////////////////////////////////////////////////////////////////// +// File generated by tools/src/cmd/gen +// using the template: +// test/tint/builtins/gen/gen.wgsl.tmpl +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn select(vec<4, fa>, vec<4, fa>, bool) -> vec<4, fa> +fn select_17441a() { + const arg_0 = vec4(1); + const arg_1 = vec4(1); + var arg_2 = true; + var res = select(arg_0, arg_1, arg_2); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_17441a(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_17441a(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_17441a(); +} diff --git a/test/tint/builtins/gen/var/select/17441a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/17441a.wgsl.expected.dxc.hlsl new file mode 100644 index 0000000000..e56a262d2a --- /dev/null +++ b/test/tint/builtins/gen/var/select/17441a.wgsl.expected.dxc.hlsl @@ -0,0 +1,31 @@ +void select_17441a() { + bool arg_2 = true; + int4 res = (arg_2 ? (1).xxxx : (1).xxxx); +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_17441a(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_17441a(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_17441a(); + return; +} diff --git a/test/tint/builtins/gen/var/select/17441a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/17441a.wgsl.expected.fxc.hlsl new file mode 100644 index 0000000000..e56a262d2a --- /dev/null +++ b/test/tint/builtins/gen/var/select/17441a.wgsl.expected.fxc.hlsl @@ -0,0 +1,31 @@ +void select_17441a() { + bool arg_2 = true; + int4 res = (arg_2 ? (1).xxxx : (1).xxxx); +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_17441a(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_17441a(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_17441a(); + return; +} diff --git a/test/tint/builtins/gen/var/select/17441a.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/17441a.wgsl.expected.glsl new file mode 100644 index 0000000000..191bcf142b --- /dev/null +++ b/test/tint/builtins/gen/var/select/17441a.wgsl.expected.glsl @@ -0,0 +1,52 @@ +#version 310 es + +void select_17441a() { + bool arg_2 = true; + ivec4 res = (arg_2 ? ivec4(1) : ivec4(1)); +} + +vec4 vertex_main() { + select_17441a(); + return vec4(0.0f); +} + +void main() { + gl_PointSize = 1.0; + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +void select_17441a() { + bool arg_2 = true; + ivec4 res = (arg_2 ? ivec4(1) : ivec4(1)); +} + +void fragment_main() { + select_17441a(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +void select_17441a() { + bool arg_2 = true; + ivec4 res = (arg_2 ? ivec4(1) : ivec4(1)); +} + +void compute_main() { + select_17441a(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +} diff --git a/test/tint/builtins/gen/var/select/17441a.wgsl.expected.msl b/test/tint/builtins/gen/var/select/17441a.wgsl.expected.msl new file mode 100644 index 0000000000..85d2e41b75 --- /dev/null +++ b/test/tint/builtins/gen/var/select/17441a.wgsl.expected.msl @@ -0,0 +1,34 @@ +#include + +using namespace metal; +void select_17441a() { + bool arg_2 = true; + int4 res = select(int4(1), int4(1), arg_2); +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + select_17441a(); + return float4(0.0f); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + select_17441a(); + return; +} + +kernel void compute_main() { + select_17441a(); + return; +} + diff --git a/test/tint/builtins/gen/var/select/17441a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/select/17441a.wgsl.expected.spvasm new file mode 100644 index 0000000000..4a544b3247 --- /dev/null +++ b/test/tint/builtins/gen/var/select/17441a.wgsl.expected.spvasm @@ -0,0 +1,82 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 46 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %select_17441a "select_17441a" + OpName %arg_2 "arg_2" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %void = OpTypeVoid + %9 = OpTypeFunction %void + %bool = OpTypeBool + %true = OpConstantTrue %bool +%_ptr_Function_bool = OpTypePointer Function %bool + %17 = OpConstantNull %bool + %int = OpTypeInt 32 1 + %v4int = OpTypeVector %int 4 + %int_1 = OpConstant %int 1 + %23 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1 + %v4bool = OpTypeVector %bool 4 +%_ptr_Function_v4bool = OpTypePointer Function %v4bool + %27 = OpConstantNull %v4bool +%_ptr_Function_v4int = OpTypePointer Function %v4int + %31 = OpConstantNull %v4int + %32 = OpTypeFunction %v4float + %float_1 = OpConstant %float 1 +%select_17441a = OpFunction %void None %9 + %12 = OpLabel + %arg_2 = OpVariable %_ptr_Function_bool Function %17 + %25 = OpVariable %_ptr_Function_v4bool Function %27 + %res = OpVariable %_ptr_Function_v4int Function %31 + OpStore %arg_2 %true + %21 = OpLoad %bool %arg_2 + %28 = OpCompositeConstruct %v4bool %21 %21 %21 %21 + %18 = OpSelect %v4int %28 %23 %23 + OpStore %res %18 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %32 + %34 = OpLabel + %35 = OpFunctionCall %void %select_17441a + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %9 + %37 = OpLabel + %38 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %38 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %9 + %41 = OpLabel + %42 = OpFunctionCall %void %select_17441a + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 + %44 = OpLabel + %45 = OpFunctionCall %void %select_17441a + OpReturn + OpFunctionEnd diff --git a/test/tint/builtins/gen/var/select/17441a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/17441a.wgsl.expected.wgsl new file mode 100644 index 0000000000..f17956677e --- /dev/null +++ b/test/tint/builtins/gen/var/select/17441a.wgsl.expected.wgsl @@ -0,0 +1,22 @@ +fn select_17441a() { + const arg_0 = vec4(1); + const arg_1 = vec4(1); + var arg_2 = true; + var res = select(arg_0, arg_1, arg_2); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_17441a(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_17441a(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_17441a(); +} diff --git a/test/tint/builtins/gen/var/select/1f4d93.wgsl b/test/tint/builtins/gen/var/select/1f4d93.wgsl new file mode 100644 index 0000000000..9a73d9c8c4 --- /dev/null +++ b/test/tint/builtins/gen/var/select/1f4d93.wgsl @@ -0,0 +1,46 @@ +// Copyright 2022 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//////////////////////////////////////////////////////////////////////////////// +// File generated by tools/src/cmd/gen +// using the template: +// test/tint/builtins/gen/gen.wgsl.tmpl +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn select(vec<2, fa>, vec<2, fa>, vec<2, bool>) -> vec<2, fa> +fn select_1f4d93() { + const arg_0 = vec2(1); + const arg_1 = vec2(1); + var arg_2 = vec2(true); + var res = select(arg_0, arg_1, arg_2); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_1f4d93(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_1f4d93(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_1f4d93(); +} diff --git a/test/tint/builtins/gen/var/select/1f4d93.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/1f4d93.wgsl.expected.dxc.hlsl new file mode 100644 index 0000000000..af542e357a --- /dev/null +++ b/test/tint/builtins/gen/var/select/1f4d93.wgsl.expected.dxc.hlsl @@ -0,0 +1,31 @@ +void select_1f4d93() { + bool2 arg_2 = (true).xx; + int2 res = (arg_2 ? (1).xx : (1).xx); +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_1f4d93(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_1f4d93(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_1f4d93(); + return; +} diff --git a/test/tint/builtins/gen/var/select/1f4d93.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/1f4d93.wgsl.expected.fxc.hlsl new file mode 100644 index 0000000000..af542e357a --- /dev/null +++ b/test/tint/builtins/gen/var/select/1f4d93.wgsl.expected.fxc.hlsl @@ -0,0 +1,31 @@ +void select_1f4d93() { + bool2 arg_2 = (true).xx; + int2 res = (arg_2 ? (1).xx : (1).xx); +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_1f4d93(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_1f4d93(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_1f4d93(); + return; +} diff --git a/test/tint/builtins/gen/var/select/1f4d93.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/1f4d93.wgsl.expected.glsl new file mode 100644 index 0000000000..0b2931a3b7 --- /dev/null +++ b/test/tint/builtins/gen/var/select/1f4d93.wgsl.expected.glsl @@ -0,0 +1,52 @@ +#version 310 es + +void select_1f4d93() { + bvec2 arg_2 = bvec2(true); + ivec2 res = mix(ivec2(1), ivec2(1), arg_2); +} + +vec4 vertex_main() { + select_1f4d93(); + return vec4(0.0f); +} + +void main() { + gl_PointSize = 1.0; + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +void select_1f4d93() { + bvec2 arg_2 = bvec2(true); + ivec2 res = mix(ivec2(1), ivec2(1), arg_2); +} + +void fragment_main() { + select_1f4d93(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +void select_1f4d93() { + bvec2 arg_2 = bvec2(true); + ivec2 res = mix(ivec2(1), ivec2(1), arg_2); +} + +void compute_main() { + select_1f4d93(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +} diff --git a/test/tint/builtins/gen/var/select/1f4d93.wgsl.expected.msl b/test/tint/builtins/gen/var/select/1f4d93.wgsl.expected.msl new file mode 100644 index 0000000000..136969ef8f --- /dev/null +++ b/test/tint/builtins/gen/var/select/1f4d93.wgsl.expected.msl @@ -0,0 +1,34 @@ +#include + +using namespace metal; +void select_1f4d93() { + bool2 arg_2 = bool2(true); + int2 res = select(int2(1), int2(1), arg_2); +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + select_1f4d93(); + return float4(0.0f); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + select_1f4d93(); + return; +} + +kernel void compute_main() { + select_1f4d93(); + return; +} + diff --git a/test/tint/builtins/gen/var/select/1f4d93.wgsl.expected.spvasm b/test/tint/builtins/gen/var/select/1f4d93.wgsl.expected.spvasm new file mode 100644 index 0000000000..d121d9d7be --- /dev/null +++ b/test/tint/builtins/gen/var/select/1f4d93.wgsl.expected.spvasm @@ -0,0 +1,79 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 43 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %select_1f4d93 "select_1f4d93" + OpName %arg_2 "arg_2" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %void = OpTypeVoid + %9 = OpTypeFunction %void + %bool = OpTypeBool + %v2bool = OpTypeVector %bool 2 + %true = OpConstantTrue %bool + %16 = OpConstantComposite %v2bool %true %true +%_ptr_Function_v2bool = OpTypePointer Function %v2bool + %19 = OpConstantNull %v2bool + %int = OpTypeInt 32 1 + %v2int = OpTypeVector %int 2 + %int_1 = OpConstant %int 1 + %25 = OpConstantComposite %v2int %int_1 %int_1 +%_ptr_Function_v2int = OpTypePointer Function %v2int + %28 = OpConstantNull %v2int + %29 = OpTypeFunction %v4float + %float_1 = OpConstant %float 1 +%select_1f4d93 = OpFunction %void None %9 + %12 = OpLabel + %arg_2 = OpVariable %_ptr_Function_v2bool Function %19 + %res = OpVariable %_ptr_Function_v2int Function %28 + OpStore %arg_2 %16 + %23 = OpLoad %v2bool %arg_2 + %20 = OpSelect %v2int %23 %25 %25 + OpStore %res %20 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %29 + %31 = OpLabel + %32 = OpFunctionCall %void %select_1f4d93 + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %9 + %34 = OpLabel + %35 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %35 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %9 + %38 = OpLabel + %39 = OpFunctionCall %void %select_1f4d93 + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 + %41 = OpLabel + %42 = OpFunctionCall %void %select_1f4d93 + OpReturn + OpFunctionEnd diff --git a/test/tint/builtins/gen/var/select/1f4d93.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/1f4d93.wgsl.expected.wgsl new file mode 100644 index 0000000000..eae4ad42e5 --- /dev/null +++ b/test/tint/builtins/gen/var/select/1f4d93.wgsl.expected.wgsl @@ -0,0 +1,22 @@ +fn select_1f4d93() { + const arg_0 = vec2(1); + const arg_1 = vec2(1); + var arg_2 = vec2(true); + var res = select(arg_0, arg_1, arg_2); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_1f4d93(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_1f4d93(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_1f4d93(); +} diff --git a/test/tint/builtins/gen/var/select/2c96d4.wgsl b/test/tint/builtins/gen/var/select/2c96d4.wgsl new file mode 100644 index 0000000000..11cd2341c8 --- /dev/null +++ b/test/tint/builtins/gen/var/select/2c96d4.wgsl @@ -0,0 +1,46 @@ +// Copyright 2022 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//////////////////////////////////////////////////////////////////////////////// +// File generated by tools/src/cmd/gen +// using the template: +// test/tint/builtins/gen/gen.wgsl.tmpl +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn select(vec<3, fa>, vec<3, fa>, vec<3, bool>) -> vec<3, fa> +fn select_2c96d4() { + const arg_0 = vec3(1); + const arg_1 = vec3(1); + var arg_2 = vec3(true); + var res = select(arg_0, arg_1, arg_2); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_2c96d4(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_2c96d4(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_2c96d4(); +} diff --git a/test/tint/builtins/gen/var/select/2c96d4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/2c96d4.wgsl.expected.dxc.hlsl new file mode 100644 index 0000000000..1fefd41b97 --- /dev/null +++ b/test/tint/builtins/gen/var/select/2c96d4.wgsl.expected.dxc.hlsl @@ -0,0 +1,31 @@ +void select_2c96d4() { + bool3 arg_2 = (true).xxx; + int3 res = (arg_2 ? (1).xxx : (1).xxx); +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_2c96d4(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_2c96d4(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_2c96d4(); + return; +} diff --git a/test/tint/builtins/gen/var/select/2c96d4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/2c96d4.wgsl.expected.fxc.hlsl new file mode 100644 index 0000000000..1fefd41b97 --- /dev/null +++ b/test/tint/builtins/gen/var/select/2c96d4.wgsl.expected.fxc.hlsl @@ -0,0 +1,31 @@ +void select_2c96d4() { + bool3 arg_2 = (true).xxx; + int3 res = (arg_2 ? (1).xxx : (1).xxx); +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_2c96d4(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_2c96d4(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_2c96d4(); + return; +} diff --git a/test/tint/builtins/gen/var/select/2c96d4.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/2c96d4.wgsl.expected.glsl new file mode 100644 index 0000000000..fb362d1544 --- /dev/null +++ b/test/tint/builtins/gen/var/select/2c96d4.wgsl.expected.glsl @@ -0,0 +1,52 @@ +#version 310 es + +void select_2c96d4() { + bvec3 arg_2 = bvec3(true); + ivec3 res = mix(ivec3(1), ivec3(1), arg_2); +} + +vec4 vertex_main() { + select_2c96d4(); + return vec4(0.0f); +} + +void main() { + gl_PointSize = 1.0; + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +void select_2c96d4() { + bvec3 arg_2 = bvec3(true); + ivec3 res = mix(ivec3(1), ivec3(1), arg_2); +} + +void fragment_main() { + select_2c96d4(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +void select_2c96d4() { + bvec3 arg_2 = bvec3(true); + ivec3 res = mix(ivec3(1), ivec3(1), arg_2); +} + +void compute_main() { + select_2c96d4(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +} diff --git a/test/tint/builtins/gen/var/select/2c96d4.wgsl.expected.msl b/test/tint/builtins/gen/var/select/2c96d4.wgsl.expected.msl new file mode 100644 index 0000000000..d174ca7dbd --- /dev/null +++ b/test/tint/builtins/gen/var/select/2c96d4.wgsl.expected.msl @@ -0,0 +1,34 @@ +#include + +using namespace metal; +void select_2c96d4() { + bool3 arg_2 = bool3(true); + int3 res = select(int3(1), int3(1), arg_2); +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + select_2c96d4(); + return float4(0.0f); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + select_2c96d4(); + return; +} + +kernel void compute_main() { + select_2c96d4(); + return; +} + diff --git a/test/tint/builtins/gen/var/select/2c96d4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/select/2c96d4.wgsl.expected.spvasm new file mode 100644 index 0000000000..4e3846bf21 --- /dev/null +++ b/test/tint/builtins/gen/var/select/2c96d4.wgsl.expected.spvasm @@ -0,0 +1,79 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 43 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %select_2c96d4 "select_2c96d4" + OpName %arg_2 "arg_2" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %void = OpTypeVoid + %9 = OpTypeFunction %void + %bool = OpTypeBool + %v3bool = OpTypeVector %bool 3 + %true = OpConstantTrue %bool + %16 = OpConstantComposite %v3bool %true %true %true +%_ptr_Function_v3bool = OpTypePointer Function %v3bool + %19 = OpConstantNull %v3bool + %int = OpTypeInt 32 1 + %v3int = OpTypeVector %int 3 + %int_1 = OpConstant %int 1 + %25 = OpConstantComposite %v3int %int_1 %int_1 %int_1 +%_ptr_Function_v3int = OpTypePointer Function %v3int + %28 = OpConstantNull %v3int + %29 = OpTypeFunction %v4float + %float_1 = OpConstant %float 1 +%select_2c96d4 = OpFunction %void None %9 + %12 = OpLabel + %arg_2 = OpVariable %_ptr_Function_v3bool Function %19 + %res = OpVariable %_ptr_Function_v3int Function %28 + OpStore %arg_2 %16 + %23 = OpLoad %v3bool %arg_2 + %20 = OpSelect %v3int %23 %25 %25 + OpStore %res %20 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %29 + %31 = OpLabel + %32 = OpFunctionCall %void %select_2c96d4 + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %9 + %34 = OpLabel + %35 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %35 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %9 + %38 = OpLabel + %39 = OpFunctionCall %void %select_2c96d4 + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 + %41 = OpLabel + %42 = OpFunctionCall %void %select_2c96d4 + OpReturn + OpFunctionEnd diff --git a/test/tint/builtins/gen/var/select/2c96d4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/2c96d4.wgsl.expected.wgsl new file mode 100644 index 0000000000..35bf310bf0 --- /dev/null +++ b/test/tint/builtins/gen/var/select/2c96d4.wgsl.expected.wgsl @@ -0,0 +1,22 @@ +fn select_2c96d4() { + const arg_0 = vec3(1); + const arg_1 = vec3(1); + var arg_2 = vec3(true); + var res = select(arg_0, arg_1, arg_2); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_2c96d4(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_2c96d4(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_2c96d4(); +} diff --git a/test/tint/builtins/gen/var/select/3a14be.wgsl b/test/tint/builtins/gen/var/select/3a14be.wgsl new file mode 100644 index 0000000000..1b017cc8cb --- /dev/null +++ b/test/tint/builtins/gen/var/select/3a14be.wgsl @@ -0,0 +1,46 @@ +// Copyright 2022 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//////////////////////////////////////////////////////////////////////////////// +// File generated by tools/src/cmd/gen +// using the template: +// test/tint/builtins/gen/gen.wgsl.tmpl +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn select(vec<2, ia>, vec<2, ia>, bool) -> vec<2, ia> +fn select_3a14be() { + const arg_0 = vec2(1.0); + const arg_1 = vec2(1.0); + var arg_2 = true; + var res = select(arg_0, arg_1, arg_2); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_3a14be(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_3a14be(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_3a14be(); +} diff --git a/test/tint/builtins/gen/var/select/3a14be.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/3a14be.wgsl.expected.dxc.hlsl new file mode 100644 index 0000000000..a44dede5f4 --- /dev/null +++ b/test/tint/builtins/gen/var/select/3a14be.wgsl.expected.dxc.hlsl @@ -0,0 +1,31 @@ +void select_3a14be() { + bool arg_2 = true; + float2 res = (arg_2 ? (1.0f).xx : (1.0f).xx); +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_3a14be(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_3a14be(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_3a14be(); + return; +} diff --git a/test/tint/builtins/gen/var/select/3a14be.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/3a14be.wgsl.expected.fxc.hlsl new file mode 100644 index 0000000000..a44dede5f4 --- /dev/null +++ b/test/tint/builtins/gen/var/select/3a14be.wgsl.expected.fxc.hlsl @@ -0,0 +1,31 @@ +void select_3a14be() { + bool arg_2 = true; + float2 res = (arg_2 ? (1.0f).xx : (1.0f).xx); +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_3a14be(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_3a14be(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_3a14be(); + return; +} diff --git a/test/tint/builtins/gen/var/select/3a14be.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/3a14be.wgsl.expected.glsl new file mode 100644 index 0000000000..95525f9ccc --- /dev/null +++ b/test/tint/builtins/gen/var/select/3a14be.wgsl.expected.glsl @@ -0,0 +1,52 @@ +#version 310 es + +void select_3a14be() { + bool arg_2 = true; + vec2 res = (arg_2 ? vec2(1.0f) : vec2(1.0f)); +} + +vec4 vertex_main() { + select_3a14be(); + return vec4(0.0f); +} + +void main() { + gl_PointSize = 1.0; + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +void select_3a14be() { + bool arg_2 = true; + vec2 res = (arg_2 ? vec2(1.0f) : vec2(1.0f)); +} + +void fragment_main() { + select_3a14be(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +void select_3a14be() { + bool arg_2 = true; + vec2 res = (arg_2 ? vec2(1.0f) : vec2(1.0f)); +} + +void compute_main() { + select_3a14be(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +} diff --git a/test/tint/builtins/gen/var/select/3a14be.wgsl.expected.msl b/test/tint/builtins/gen/var/select/3a14be.wgsl.expected.msl new file mode 100644 index 0000000000..e420d526d6 --- /dev/null +++ b/test/tint/builtins/gen/var/select/3a14be.wgsl.expected.msl @@ -0,0 +1,34 @@ +#include + +using namespace metal; +void select_3a14be() { + bool arg_2 = true; + float2 res = select(float2(1.0f), float2(1.0f), arg_2); +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + select_3a14be(); + return float4(0.0f); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + select_3a14be(); + return; +} + +kernel void compute_main() { + select_3a14be(); + return; +} + diff --git a/test/tint/builtins/gen/var/select/3a14be.wgsl.expected.spvasm b/test/tint/builtins/gen/var/select/3a14be.wgsl.expected.spvasm new file mode 100644 index 0000000000..1338ae997e --- /dev/null +++ b/test/tint/builtins/gen/var/select/3a14be.wgsl.expected.spvasm @@ -0,0 +1,80 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 44 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %select_3a14be "select_3a14be" + OpName %arg_2 "arg_2" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %void = OpTypeVoid + %9 = OpTypeFunction %void + %bool = OpTypeBool + %true = OpConstantTrue %bool +%_ptr_Function_bool = OpTypePointer Function %bool + %17 = OpConstantNull %bool + %v2float = OpTypeVector %float 2 + %float_1 = OpConstant %float 1 + %22 = OpConstantComposite %v2float %float_1 %float_1 + %v2bool = OpTypeVector %bool 2 +%_ptr_Function_v2bool = OpTypePointer Function %v2bool + %26 = OpConstantNull %v2bool +%_ptr_Function_v2float = OpTypePointer Function %v2float + %30 = OpConstantNull %v2float + %31 = OpTypeFunction %v4float +%select_3a14be = OpFunction %void None %9 + %12 = OpLabel + %arg_2 = OpVariable %_ptr_Function_bool Function %17 + %24 = OpVariable %_ptr_Function_v2bool Function %26 + %res = OpVariable %_ptr_Function_v2float Function %30 + OpStore %arg_2 %true + %20 = OpLoad %bool %arg_2 + %27 = OpCompositeConstruct %v2bool %20 %20 + %18 = OpSelect %v2float %27 %22 %22 + OpStore %res %18 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %31 + %33 = OpLabel + %34 = OpFunctionCall %void %select_3a14be + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %9 + %36 = OpLabel + %37 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %37 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %9 + %39 = OpLabel + %40 = OpFunctionCall %void %select_3a14be + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 + %42 = OpLabel + %43 = OpFunctionCall %void %select_3a14be + OpReturn + OpFunctionEnd diff --git a/test/tint/builtins/gen/var/select/3a14be.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/3a14be.wgsl.expected.wgsl new file mode 100644 index 0000000000..e44f5de4c6 --- /dev/null +++ b/test/tint/builtins/gen/var/select/3a14be.wgsl.expected.wgsl @@ -0,0 +1,22 @@ +fn select_3a14be() { + const arg_0 = vec2(1.0); + const arg_1 = vec2(1.0); + var arg_2 = true; + var res = select(arg_0, arg_1, arg_2); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_3a14be(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_3a14be(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_3a14be(); +} diff --git a/test/tint/builtins/gen/var/select/431dfb.wgsl b/test/tint/builtins/gen/var/select/431dfb.wgsl new file mode 100644 index 0000000000..bf31b88654 --- /dev/null +++ b/test/tint/builtins/gen/var/select/431dfb.wgsl @@ -0,0 +1,46 @@ +// Copyright 2022 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//////////////////////////////////////////////////////////////////////////////// +// File generated by tools/src/cmd/gen +// using the template: +// test/tint/builtins/gen/gen.wgsl.tmpl +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn select(vec<2, ia>, vec<2, ia>, vec<2, bool>) -> vec<2, ia> +fn select_431dfb() { + const arg_0 = vec2(1.0); + const arg_1 = vec2(1.0); + var arg_2 = vec2(true); + var res = select(arg_0, arg_1, arg_2); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_431dfb(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_431dfb(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_431dfb(); +} diff --git a/test/tint/builtins/gen/var/select/431dfb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/431dfb.wgsl.expected.dxc.hlsl new file mode 100644 index 0000000000..f336ee1d23 --- /dev/null +++ b/test/tint/builtins/gen/var/select/431dfb.wgsl.expected.dxc.hlsl @@ -0,0 +1,31 @@ +void select_431dfb() { + bool2 arg_2 = (true).xx; + float2 res = (arg_2 ? (1.0f).xx : (1.0f).xx); +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_431dfb(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_431dfb(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_431dfb(); + return; +} diff --git a/test/tint/builtins/gen/var/select/431dfb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/431dfb.wgsl.expected.fxc.hlsl new file mode 100644 index 0000000000..f336ee1d23 --- /dev/null +++ b/test/tint/builtins/gen/var/select/431dfb.wgsl.expected.fxc.hlsl @@ -0,0 +1,31 @@ +void select_431dfb() { + bool2 arg_2 = (true).xx; + float2 res = (arg_2 ? (1.0f).xx : (1.0f).xx); +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_431dfb(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_431dfb(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_431dfb(); + return; +} diff --git a/test/tint/builtins/gen/var/select/431dfb.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/431dfb.wgsl.expected.glsl new file mode 100644 index 0000000000..65cbd4a73b --- /dev/null +++ b/test/tint/builtins/gen/var/select/431dfb.wgsl.expected.glsl @@ -0,0 +1,52 @@ +#version 310 es + +void select_431dfb() { + bvec2 arg_2 = bvec2(true); + vec2 res = mix(vec2(1.0f), vec2(1.0f), arg_2); +} + +vec4 vertex_main() { + select_431dfb(); + return vec4(0.0f); +} + +void main() { + gl_PointSize = 1.0; + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +void select_431dfb() { + bvec2 arg_2 = bvec2(true); + vec2 res = mix(vec2(1.0f), vec2(1.0f), arg_2); +} + +void fragment_main() { + select_431dfb(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +void select_431dfb() { + bvec2 arg_2 = bvec2(true); + vec2 res = mix(vec2(1.0f), vec2(1.0f), arg_2); +} + +void compute_main() { + select_431dfb(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +} diff --git a/test/tint/builtins/gen/var/select/431dfb.wgsl.expected.msl b/test/tint/builtins/gen/var/select/431dfb.wgsl.expected.msl new file mode 100644 index 0000000000..55cb0e2d39 --- /dev/null +++ b/test/tint/builtins/gen/var/select/431dfb.wgsl.expected.msl @@ -0,0 +1,34 @@ +#include + +using namespace metal; +void select_431dfb() { + bool2 arg_2 = bool2(true); + float2 res = select(float2(1.0f), float2(1.0f), arg_2); +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + select_431dfb(); + return float4(0.0f); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + select_431dfb(); + return; +} + +kernel void compute_main() { + select_431dfb(); + return; +} + diff --git a/test/tint/builtins/gen/var/select/431dfb.wgsl.expected.spvasm b/test/tint/builtins/gen/var/select/431dfb.wgsl.expected.spvasm new file mode 100644 index 0000000000..2f3584ef1a --- /dev/null +++ b/test/tint/builtins/gen/var/select/431dfb.wgsl.expected.spvasm @@ -0,0 +1,77 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 41 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %select_431dfb "select_431dfb" + OpName %arg_2 "arg_2" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %void = OpTypeVoid + %9 = OpTypeFunction %void + %bool = OpTypeBool + %v2bool = OpTypeVector %bool 2 + %true = OpConstantTrue %bool + %16 = OpConstantComposite %v2bool %true %true +%_ptr_Function_v2bool = OpTypePointer Function %v2bool + %19 = OpConstantNull %v2bool + %v2float = OpTypeVector %float 2 + %float_1 = OpConstant %float 1 + %24 = OpConstantComposite %v2float %float_1 %float_1 +%_ptr_Function_v2float = OpTypePointer Function %v2float + %27 = OpConstantNull %v2float + %28 = OpTypeFunction %v4float +%select_431dfb = OpFunction %void None %9 + %12 = OpLabel + %arg_2 = OpVariable %_ptr_Function_v2bool Function %19 + %res = OpVariable %_ptr_Function_v2float Function %27 + OpStore %arg_2 %16 + %22 = OpLoad %v2bool %arg_2 + %20 = OpSelect %v2float %22 %24 %24 + OpStore %res %20 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %28 + %30 = OpLabel + %31 = OpFunctionCall %void %select_431dfb + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %9 + %33 = OpLabel + %34 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %34 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %9 + %36 = OpLabel + %37 = OpFunctionCall %void %select_431dfb + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 + %39 = OpLabel + %40 = OpFunctionCall %void %select_431dfb + OpReturn + OpFunctionEnd diff --git a/test/tint/builtins/gen/var/select/431dfb.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/431dfb.wgsl.expected.wgsl new file mode 100644 index 0000000000..f39ed44253 --- /dev/null +++ b/test/tint/builtins/gen/var/select/431dfb.wgsl.expected.wgsl @@ -0,0 +1,22 @@ +fn select_431dfb() { + const arg_0 = vec2(1.0); + const arg_1 = vec2(1.0); + var arg_2 = vec2(true); + var res = select(arg_0, arg_1, arg_2); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_431dfb(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_431dfb(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_431dfb(); +} diff --git a/test/tint/builtins/gen/var/select/43741e.wgsl b/test/tint/builtins/gen/var/select/43741e.wgsl new file mode 100644 index 0000000000..03e129eee2 --- /dev/null +++ b/test/tint/builtins/gen/var/select/43741e.wgsl @@ -0,0 +1,46 @@ +// Copyright 2022 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//////////////////////////////////////////////////////////////////////////////// +// File generated by tools/src/cmd/gen +// using the template: +// test/tint/builtins/gen/gen.wgsl.tmpl +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn select(vec<4, fa>, vec<4, fa>, vec<4, bool>) -> vec<4, fa> +fn select_43741e() { + const arg_0 = vec4(1); + const arg_1 = vec4(1); + var arg_2 = vec4(true); + var res = select(arg_0, arg_1, arg_2); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_43741e(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_43741e(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_43741e(); +} diff --git a/test/tint/builtins/gen/var/select/43741e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/43741e.wgsl.expected.dxc.hlsl new file mode 100644 index 0000000000..993c08e8e2 --- /dev/null +++ b/test/tint/builtins/gen/var/select/43741e.wgsl.expected.dxc.hlsl @@ -0,0 +1,31 @@ +void select_43741e() { + bool4 arg_2 = (true).xxxx; + int4 res = (arg_2 ? (1).xxxx : (1).xxxx); +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_43741e(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_43741e(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_43741e(); + return; +} diff --git a/test/tint/builtins/gen/var/select/43741e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/43741e.wgsl.expected.fxc.hlsl new file mode 100644 index 0000000000..993c08e8e2 --- /dev/null +++ b/test/tint/builtins/gen/var/select/43741e.wgsl.expected.fxc.hlsl @@ -0,0 +1,31 @@ +void select_43741e() { + bool4 arg_2 = (true).xxxx; + int4 res = (arg_2 ? (1).xxxx : (1).xxxx); +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_43741e(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_43741e(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_43741e(); + return; +} diff --git a/test/tint/builtins/gen/var/select/43741e.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/43741e.wgsl.expected.glsl new file mode 100644 index 0000000000..599a3ef876 --- /dev/null +++ b/test/tint/builtins/gen/var/select/43741e.wgsl.expected.glsl @@ -0,0 +1,52 @@ +#version 310 es + +void select_43741e() { + bvec4 arg_2 = bvec4(true); + ivec4 res = mix(ivec4(1), ivec4(1), arg_2); +} + +vec4 vertex_main() { + select_43741e(); + return vec4(0.0f); +} + +void main() { + gl_PointSize = 1.0; + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +void select_43741e() { + bvec4 arg_2 = bvec4(true); + ivec4 res = mix(ivec4(1), ivec4(1), arg_2); +} + +void fragment_main() { + select_43741e(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +void select_43741e() { + bvec4 arg_2 = bvec4(true); + ivec4 res = mix(ivec4(1), ivec4(1), arg_2); +} + +void compute_main() { + select_43741e(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +} diff --git a/test/tint/builtins/gen/var/select/43741e.wgsl.expected.msl b/test/tint/builtins/gen/var/select/43741e.wgsl.expected.msl new file mode 100644 index 0000000000..051caaef8f --- /dev/null +++ b/test/tint/builtins/gen/var/select/43741e.wgsl.expected.msl @@ -0,0 +1,34 @@ +#include + +using namespace metal; +void select_43741e() { + bool4 arg_2 = bool4(true); + int4 res = select(int4(1), int4(1), arg_2); +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + select_43741e(); + return float4(0.0f); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + select_43741e(); + return; +} + +kernel void compute_main() { + select_43741e(); + return; +} + diff --git a/test/tint/builtins/gen/var/select/43741e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/select/43741e.wgsl.expected.spvasm new file mode 100644 index 0000000000..d13a0eac87 --- /dev/null +++ b/test/tint/builtins/gen/var/select/43741e.wgsl.expected.spvasm @@ -0,0 +1,79 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 43 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %select_43741e "select_43741e" + OpName %arg_2 "arg_2" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %void = OpTypeVoid + %9 = OpTypeFunction %void + %bool = OpTypeBool + %v4bool = OpTypeVector %bool 4 + %true = OpConstantTrue %bool + %16 = OpConstantComposite %v4bool %true %true %true %true +%_ptr_Function_v4bool = OpTypePointer Function %v4bool + %19 = OpConstantNull %v4bool + %int = OpTypeInt 32 1 + %v4int = OpTypeVector %int 4 + %int_1 = OpConstant %int 1 + %25 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1 +%_ptr_Function_v4int = OpTypePointer Function %v4int + %28 = OpConstantNull %v4int + %29 = OpTypeFunction %v4float + %float_1 = OpConstant %float 1 +%select_43741e = OpFunction %void None %9 + %12 = OpLabel + %arg_2 = OpVariable %_ptr_Function_v4bool Function %19 + %res = OpVariable %_ptr_Function_v4int Function %28 + OpStore %arg_2 %16 + %23 = OpLoad %v4bool %arg_2 + %20 = OpSelect %v4int %23 %25 %25 + OpStore %res %20 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %29 + %31 = OpLabel + %32 = OpFunctionCall %void %select_43741e + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %9 + %34 = OpLabel + %35 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %35 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %9 + %38 = OpLabel + %39 = OpFunctionCall %void %select_43741e + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 + %41 = OpLabel + %42 = OpFunctionCall %void %select_43741e + OpReturn + OpFunctionEnd diff --git a/test/tint/builtins/gen/var/select/43741e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/43741e.wgsl.expected.wgsl new file mode 100644 index 0000000000..87daa9694e --- /dev/null +++ b/test/tint/builtins/gen/var/select/43741e.wgsl.expected.wgsl @@ -0,0 +1,22 @@ +fn select_43741e() { + const arg_0 = vec4(1); + const arg_1 = vec4(1); + var arg_2 = vec4(true); + var res = select(arg_0, arg_1, arg_2); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_43741e(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_43741e(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_43741e(); +} diff --git a/test/tint/builtins/gen/var/select/494051.wgsl b/test/tint/builtins/gen/var/select/494051.wgsl new file mode 100644 index 0000000000..2ce1326a0b --- /dev/null +++ b/test/tint/builtins/gen/var/select/494051.wgsl @@ -0,0 +1,46 @@ +// Copyright 2022 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//////////////////////////////////////////////////////////////////////////////// +// File generated by tools/src/cmd/gen +// using the template: +// test/tint/builtins/gen/gen.wgsl.tmpl +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn select(fa, fa, bool) -> fa +fn select_494051() { + const arg_0 = 1; + const arg_1 = 1; + var arg_2 = true; + var res = select(arg_0, arg_1, arg_2); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_494051(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_494051(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_494051(); +} diff --git a/test/tint/builtins/gen/var/select/494051.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/494051.wgsl.expected.dxc.hlsl new file mode 100644 index 0000000000..999750800e --- /dev/null +++ b/test/tint/builtins/gen/var/select/494051.wgsl.expected.dxc.hlsl @@ -0,0 +1,31 @@ +void select_494051() { + bool arg_2 = true; + int res = (arg_2 ? 1 : 1); +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_494051(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_494051(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_494051(); + return; +} diff --git a/test/tint/builtins/gen/var/select/494051.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/494051.wgsl.expected.fxc.hlsl new file mode 100644 index 0000000000..999750800e --- /dev/null +++ b/test/tint/builtins/gen/var/select/494051.wgsl.expected.fxc.hlsl @@ -0,0 +1,31 @@ +void select_494051() { + bool arg_2 = true; + int res = (arg_2 ? 1 : 1); +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_494051(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_494051(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_494051(); + return; +} diff --git a/test/tint/builtins/gen/var/select/494051.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/494051.wgsl.expected.glsl new file mode 100644 index 0000000000..f3cd579911 --- /dev/null +++ b/test/tint/builtins/gen/var/select/494051.wgsl.expected.glsl @@ -0,0 +1,52 @@ +#version 310 es + +void select_494051() { + bool arg_2 = true; + int res = (arg_2 ? 1 : 1); +} + +vec4 vertex_main() { + select_494051(); + return vec4(0.0f); +} + +void main() { + gl_PointSize = 1.0; + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +void select_494051() { + bool arg_2 = true; + int res = (arg_2 ? 1 : 1); +} + +void fragment_main() { + select_494051(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +void select_494051() { + bool arg_2 = true; + int res = (arg_2 ? 1 : 1); +} + +void compute_main() { + select_494051(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +} diff --git a/test/tint/builtins/gen/var/select/494051.wgsl.expected.msl b/test/tint/builtins/gen/var/select/494051.wgsl.expected.msl new file mode 100644 index 0000000000..4fe8a0c927 --- /dev/null +++ b/test/tint/builtins/gen/var/select/494051.wgsl.expected.msl @@ -0,0 +1,34 @@ +#include + +using namespace metal; +void select_494051() { + bool arg_2 = true; + int res = select(1, 1, arg_2); +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + select_494051(); + return float4(0.0f); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + select_494051(); + return; +} + +kernel void compute_main() { + select_494051(); + return; +} + diff --git a/test/tint/builtins/gen/var/select/494051.wgsl.expected.spvasm b/test/tint/builtins/gen/var/select/494051.wgsl.expected.spvasm new file mode 100644 index 0000000000..e2e64aa2b4 --- /dev/null +++ b/test/tint/builtins/gen/var/select/494051.wgsl.expected.spvasm @@ -0,0 +1,75 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 39 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %select_494051 "select_494051" + OpName %arg_2 "arg_2" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %void = OpTypeVoid + %9 = OpTypeFunction %void + %bool = OpTypeBool + %true = OpConstantTrue %bool +%_ptr_Function_bool = OpTypePointer Function %bool + %17 = OpConstantNull %bool + %int = OpTypeInt 32 1 + %int_1 = OpConstant %int 1 +%_ptr_Function_int = OpTypePointer Function %int + %24 = OpConstantNull %int + %25 = OpTypeFunction %v4float + %float_1 = OpConstant %float 1 +%select_494051 = OpFunction %void None %9 + %12 = OpLabel + %arg_2 = OpVariable %_ptr_Function_bool Function %17 + %res = OpVariable %_ptr_Function_int Function %24 + OpStore %arg_2 %true + %20 = OpLoad %bool %arg_2 + %18 = OpSelect %int %20 %int_1 %int_1 + OpStore %res %18 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %25 + %27 = OpLabel + %28 = OpFunctionCall %void %select_494051 + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %9 + %30 = OpLabel + %31 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %31 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %9 + %34 = OpLabel + %35 = OpFunctionCall %void %select_494051 + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 + %37 = OpLabel + %38 = OpFunctionCall %void %select_494051 + OpReturn + OpFunctionEnd diff --git a/test/tint/builtins/gen/var/select/494051.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/494051.wgsl.expected.wgsl new file mode 100644 index 0000000000..29cfaa5b2c --- /dev/null +++ b/test/tint/builtins/gen/var/select/494051.wgsl.expected.wgsl @@ -0,0 +1,22 @@ +fn select_494051() { + const arg_0 = 1; + const arg_1 = 1; + var arg_2 = true; + var res = select(arg_0, arg_1, arg_2); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_494051(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_494051(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_494051(); +} diff --git a/test/tint/builtins/gen/var/select/4c4738.wgsl b/test/tint/builtins/gen/var/select/4c4738.wgsl new file mode 100644 index 0000000000..ea809f7811 --- /dev/null +++ b/test/tint/builtins/gen/var/select/4c4738.wgsl @@ -0,0 +1,46 @@ +// Copyright 2022 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//////////////////////////////////////////////////////////////////////////////// +// File generated by tools/src/cmd/gen +// using the template: +// test/tint/builtins/gen/gen.wgsl.tmpl +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn select(vec<4, ia>, vec<4, ia>, vec<4, bool>) -> vec<4, ia> +fn select_4c4738() { + const arg_0 = vec4(1.0); + const arg_1 = vec4(1.0); + var arg_2 = vec4(true); + var res = select(arg_0, arg_1, arg_2); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_4c4738(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_4c4738(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_4c4738(); +} diff --git a/test/tint/builtins/gen/var/select/4c4738.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/4c4738.wgsl.expected.dxc.hlsl new file mode 100644 index 0000000000..7dd0091568 --- /dev/null +++ b/test/tint/builtins/gen/var/select/4c4738.wgsl.expected.dxc.hlsl @@ -0,0 +1,31 @@ +void select_4c4738() { + bool4 arg_2 = (true).xxxx; + float4 res = (arg_2 ? (1.0f).xxxx : (1.0f).xxxx); +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_4c4738(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_4c4738(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_4c4738(); + return; +} diff --git a/test/tint/builtins/gen/var/select/4c4738.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/4c4738.wgsl.expected.fxc.hlsl new file mode 100644 index 0000000000..7dd0091568 --- /dev/null +++ b/test/tint/builtins/gen/var/select/4c4738.wgsl.expected.fxc.hlsl @@ -0,0 +1,31 @@ +void select_4c4738() { + bool4 arg_2 = (true).xxxx; + float4 res = (arg_2 ? (1.0f).xxxx : (1.0f).xxxx); +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_4c4738(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_4c4738(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_4c4738(); + return; +} diff --git a/test/tint/builtins/gen/var/select/4c4738.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/4c4738.wgsl.expected.glsl new file mode 100644 index 0000000000..a5de0a2449 --- /dev/null +++ b/test/tint/builtins/gen/var/select/4c4738.wgsl.expected.glsl @@ -0,0 +1,52 @@ +#version 310 es + +void select_4c4738() { + bvec4 arg_2 = bvec4(true); + vec4 res = mix(vec4(1.0f), vec4(1.0f), arg_2); +} + +vec4 vertex_main() { + select_4c4738(); + return vec4(0.0f); +} + +void main() { + gl_PointSize = 1.0; + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +void select_4c4738() { + bvec4 arg_2 = bvec4(true); + vec4 res = mix(vec4(1.0f), vec4(1.0f), arg_2); +} + +void fragment_main() { + select_4c4738(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +void select_4c4738() { + bvec4 arg_2 = bvec4(true); + vec4 res = mix(vec4(1.0f), vec4(1.0f), arg_2); +} + +void compute_main() { + select_4c4738(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +} diff --git a/test/tint/builtins/gen/var/select/4c4738.wgsl.expected.msl b/test/tint/builtins/gen/var/select/4c4738.wgsl.expected.msl new file mode 100644 index 0000000000..82821021fa --- /dev/null +++ b/test/tint/builtins/gen/var/select/4c4738.wgsl.expected.msl @@ -0,0 +1,34 @@ +#include + +using namespace metal; +void select_4c4738() { + bool4 arg_2 = bool4(true); + float4 res = select(float4(1.0f), float4(1.0f), arg_2); +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + select_4c4738(); + return float4(0.0f); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + select_4c4738(); + return; +} + +kernel void compute_main() { + select_4c4738(); + return; +} + diff --git a/test/tint/builtins/gen/var/select/4c4738.wgsl.expected.spvasm b/test/tint/builtins/gen/var/select/4c4738.wgsl.expected.spvasm new file mode 100644 index 0000000000..559b2ead90 --- /dev/null +++ b/test/tint/builtins/gen/var/select/4c4738.wgsl.expected.spvasm @@ -0,0 +1,75 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 39 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %select_4c4738 "select_4c4738" + OpName %arg_2 "arg_2" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %void = OpTypeVoid + %9 = OpTypeFunction %void + %bool = OpTypeBool + %v4bool = OpTypeVector %bool 4 + %true = OpConstantTrue %bool + %16 = OpConstantComposite %v4bool %true %true %true %true +%_ptr_Function_v4bool = OpTypePointer Function %v4bool + %19 = OpConstantNull %v4bool + %float_1 = OpConstant %float 1 + %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 +%_ptr_Function_v4float = OpTypePointer Function %v4float + %26 = OpTypeFunction %v4float +%select_4c4738 = OpFunction %void None %9 + %12 = OpLabel + %arg_2 = OpVariable %_ptr_Function_v4bool Function %19 + %res = OpVariable %_ptr_Function_v4float Function %5 + OpStore %arg_2 %16 + %21 = OpLoad %v4bool %arg_2 + %20 = OpSelect %v4float %21 %23 %23 + OpStore %res %20 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %26 + %28 = OpLabel + %29 = OpFunctionCall %void %select_4c4738 + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %9 + %31 = OpLabel + %32 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %32 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %9 + %34 = OpLabel + %35 = OpFunctionCall %void %select_4c4738 + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 + %37 = OpLabel + %38 = OpFunctionCall %void %select_4c4738 + OpReturn + OpFunctionEnd diff --git a/test/tint/builtins/gen/var/select/4c4738.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/4c4738.wgsl.expected.wgsl new file mode 100644 index 0000000000..020011e09a --- /dev/null +++ b/test/tint/builtins/gen/var/select/4c4738.wgsl.expected.wgsl @@ -0,0 +1,22 @@ +fn select_4c4738() { + const arg_0 = vec4(1.0); + const arg_1 = vec4(1.0); + var arg_2 = vec4(true); + var res = select(arg_0, arg_1, arg_2); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_4c4738(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_4c4738(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_4c4738(); +} diff --git a/test/tint/builtins/gen/var/select/4e60da.wgsl b/test/tint/builtins/gen/var/select/4e60da.wgsl new file mode 100644 index 0000000000..94ffa69e37 --- /dev/null +++ b/test/tint/builtins/gen/var/select/4e60da.wgsl @@ -0,0 +1,46 @@ +// Copyright 2022 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//////////////////////////////////////////////////////////////////////////////// +// File generated by tools/src/cmd/gen +// using the template: +// test/tint/builtins/gen/gen.wgsl.tmpl +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn select(vec<2, fa>, vec<2, fa>, bool) -> vec<2, fa> +fn select_4e60da() { + const arg_0 = vec2(1); + const arg_1 = vec2(1); + var arg_2 = true; + var res = select(arg_0, arg_1, arg_2); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_4e60da(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_4e60da(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_4e60da(); +} diff --git a/test/tint/builtins/gen/var/select/4e60da.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/4e60da.wgsl.expected.dxc.hlsl new file mode 100644 index 0000000000..437a3bd5ac --- /dev/null +++ b/test/tint/builtins/gen/var/select/4e60da.wgsl.expected.dxc.hlsl @@ -0,0 +1,31 @@ +void select_4e60da() { + bool arg_2 = true; + int2 res = (arg_2 ? (1).xx : (1).xx); +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_4e60da(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_4e60da(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_4e60da(); + return; +} diff --git a/test/tint/builtins/gen/var/select/4e60da.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/4e60da.wgsl.expected.fxc.hlsl new file mode 100644 index 0000000000..437a3bd5ac --- /dev/null +++ b/test/tint/builtins/gen/var/select/4e60da.wgsl.expected.fxc.hlsl @@ -0,0 +1,31 @@ +void select_4e60da() { + bool arg_2 = true; + int2 res = (arg_2 ? (1).xx : (1).xx); +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_4e60da(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_4e60da(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_4e60da(); + return; +} diff --git a/test/tint/builtins/gen/var/select/4e60da.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/4e60da.wgsl.expected.glsl new file mode 100644 index 0000000000..964d045fe4 --- /dev/null +++ b/test/tint/builtins/gen/var/select/4e60da.wgsl.expected.glsl @@ -0,0 +1,52 @@ +#version 310 es + +void select_4e60da() { + bool arg_2 = true; + ivec2 res = (arg_2 ? ivec2(1) : ivec2(1)); +} + +vec4 vertex_main() { + select_4e60da(); + return vec4(0.0f); +} + +void main() { + gl_PointSize = 1.0; + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +void select_4e60da() { + bool arg_2 = true; + ivec2 res = (arg_2 ? ivec2(1) : ivec2(1)); +} + +void fragment_main() { + select_4e60da(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +void select_4e60da() { + bool arg_2 = true; + ivec2 res = (arg_2 ? ivec2(1) : ivec2(1)); +} + +void compute_main() { + select_4e60da(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +} diff --git a/test/tint/builtins/gen/var/select/4e60da.wgsl.expected.msl b/test/tint/builtins/gen/var/select/4e60da.wgsl.expected.msl new file mode 100644 index 0000000000..de9d7c9a64 --- /dev/null +++ b/test/tint/builtins/gen/var/select/4e60da.wgsl.expected.msl @@ -0,0 +1,34 @@ +#include + +using namespace metal; +void select_4e60da() { + bool arg_2 = true; + int2 res = select(int2(1), int2(1), arg_2); +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + select_4e60da(); + return float4(0.0f); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + select_4e60da(); + return; +} + +kernel void compute_main() { + select_4e60da(); + return; +} + diff --git a/test/tint/builtins/gen/var/select/4e60da.wgsl.expected.spvasm b/test/tint/builtins/gen/var/select/4e60da.wgsl.expected.spvasm new file mode 100644 index 0000000000..4baeec3cdc --- /dev/null +++ b/test/tint/builtins/gen/var/select/4e60da.wgsl.expected.spvasm @@ -0,0 +1,82 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 46 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %select_4e60da "select_4e60da" + OpName %arg_2 "arg_2" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %void = OpTypeVoid + %9 = OpTypeFunction %void + %bool = OpTypeBool + %true = OpConstantTrue %bool +%_ptr_Function_bool = OpTypePointer Function %bool + %17 = OpConstantNull %bool + %int = OpTypeInt 32 1 + %v2int = OpTypeVector %int 2 + %int_1 = OpConstant %int 1 + %23 = OpConstantComposite %v2int %int_1 %int_1 + %v2bool = OpTypeVector %bool 2 +%_ptr_Function_v2bool = OpTypePointer Function %v2bool + %27 = OpConstantNull %v2bool +%_ptr_Function_v2int = OpTypePointer Function %v2int + %31 = OpConstantNull %v2int + %32 = OpTypeFunction %v4float + %float_1 = OpConstant %float 1 +%select_4e60da = OpFunction %void None %9 + %12 = OpLabel + %arg_2 = OpVariable %_ptr_Function_bool Function %17 + %25 = OpVariable %_ptr_Function_v2bool Function %27 + %res = OpVariable %_ptr_Function_v2int Function %31 + OpStore %arg_2 %true + %21 = OpLoad %bool %arg_2 + %28 = OpCompositeConstruct %v2bool %21 %21 + %18 = OpSelect %v2int %28 %23 %23 + OpStore %res %18 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %32 + %34 = OpLabel + %35 = OpFunctionCall %void %select_4e60da + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %9 + %37 = OpLabel + %38 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %38 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %9 + %41 = OpLabel + %42 = OpFunctionCall %void %select_4e60da + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 + %44 = OpLabel + %45 = OpFunctionCall %void %select_4e60da + OpReturn + OpFunctionEnd diff --git a/test/tint/builtins/gen/var/select/4e60da.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/4e60da.wgsl.expected.wgsl new file mode 100644 index 0000000000..aced362ee2 --- /dev/null +++ b/test/tint/builtins/gen/var/select/4e60da.wgsl.expected.wgsl @@ -0,0 +1,22 @@ +fn select_4e60da() { + const arg_0 = vec2(1); + const arg_1 = vec2(1); + var arg_2 = true; + var res = select(arg_0, arg_1, arg_2); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_4e60da(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_4e60da(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_4e60da(); +} diff --git a/test/tint/builtins/gen/var/select/9b478d.wgsl b/test/tint/builtins/gen/var/select/9b478d.wgsl new file mode 100644 index 0000000000..51949fe161 --- /dev/null +++ b/test/tint/builtins/gen/var/select/9b478d.wgsl @@ -0,0 +1,46 @@ +// Copyright 2022 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//////////////////////////////////////////////////////////////////////////////// +// File generated by tools/src/cmd/gen +// using the template: +// test/tint/builtins/gen/gen.wgsl.tmpl +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn select(ia, ia, bool) -> ia +fn select_9b478d() { + const arg_0 = 1.0; + const arg_1 = 1.0; + var arg_2 = true; + var res = select(arg_0, arg_1, arg_2); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_9b478d(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_9b478d(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_9b478d(); +} diff --git a/test/tint/builtins/gen/var/select/9b478d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/9b478d.wgsl.expected.dxc.hlsl new file mode 100644 index 0000000000..a7b93ce6fa --- /dev/null +++ b/test/tint/builtins/gen/var/select/9b478d.wgsl.expected.dxc.hlsl @@ -0,0 +1,31 @@ +void select_9b478d() { + bool arg_2 = true; + float res = (arg_2 ? 1.0f : 1.0f); +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_9b478d(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_9b478d(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_9b478d(); + return; +} diff --git a/test/tint/builtins/gen/var/select/9b478d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/9b478d.wgsl.expected.fxc.hlsl new file mode 100644 index 0000000000..a7b93ce6fa --- /dev/null +++ b/test/tint/builtins/gen/var/select/9b478d.wgsl.expected.fxc.hlsl @@ -0,0 +1,31 @@ +void select_9b478d() { + bool arg_2 = true; + float res = (arg_2 ? 1.0f : 1.0f); +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_9b478d(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_9b478d(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_9b478d(); + return; +} diff --git a/test/tint/builtins/gen/var/select/9b478d.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/9b478d.wgsl.expected.glsl new file mode 100644 index 0000000000..7fc4bda289 --- /dev/null +++ b/test/tint/builtins/gen/var/select/9b478d.wgsl.expected.glsl @@ -0,0 +1,52 @@ +#version 310 es + +void select_9b478d() { + bool arg_2 = true; + float res = (arg_2 ? 1.0f : 1.0f); +} + +vec4 vertex_main() { + select_9b478d(); + return vec4(0.0f); +} + +void main() { + gl_PointSize = 1.0; + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +void select_9b478d() { + bool arg_2 = true; + float res = (arg_2 ? 1.0f : 1.0f); +} + +void fragment_main() { + select_9b478d(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +void select_9b478d() { + bool arg_2 = true; + float res = (arg_2 ? 1.0f : 1.0f); +} + +void compute_main() { + select_9b478d(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +} diff --git a/test/tint/builtins/gen/var/select/9b478d.wgsl.expected.msl b/test/tint/builtins/gen/var/select/9b478d.wgsl.expected.msl new file mode 100644 index 0000000000..930c5f767a --- /dev/null +++ b/test/tint/builtins/gen/var/select/9b478d.wgsl.expected.msl @@ -0,0 +1,34 @@ +#include + +using namespace metal; +void select_9b478d() { + bool arg_2 = true; + float res = select(1.0f, 1.0f, arg_2); +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + select_9b478d(); + return float4(0.0f); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + select_9b478d(); + return; +} + +kernel void compute_main() { + select_9b478d(); + return; +} + diff --git a/test/tint/builtins/gen/var/select/9b478d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/select/9b478d.wgsl.expected.spvasm new file mode 100644 index 0000000000..6eafe79b2d --- /dev/null +++ b/test/tint/builtins/gen/var/select/9b478d.wgsl.expected.spvasm @@ -0,0 +1,72 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 36 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %select_9b478d "select_9b478d" + OpName %arg_2 "arg_2" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %void = OpTypeVoid + %9 = OpTypeFunction %void + %bool = OpTypeBool + %true = OpConstantTrue %bool +%_ptr_Function_bool = OpTypePointer Function %bool + %17 = OpConstantNull %bool + %float_1 = OpConstant %float 1 +%_ptr_Function_float = OpTypePointer Function %float + %23 = OpTypeFunction %v4float +%select_9b478d = OpFunction %void None %9 + %12 = OpLabel + %arg_2 = OpVariable %_ptr_Function_bool Function %17 + %res = OpVariable %_ptr_Function_float Function %8 + OpStore %arg_2 %true + %19 = OpLoad %bool %arg_2 + %18 = OpSelect %float %19 %float_1 %float_1 + OpStore %res %18 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %23 + %25 = OpLabel + %26 = OpFunctionCall %void %select_9b478d + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %9 + %28 = OpLabel + %29 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %29 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %9 + %31 = OpLabel + %32 = OpFunctionCall %void %select_9b478d + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 + %34 = OpLabel + %35 = OpFunctionCall %void %select_9b478d + OpReturn + OpFunctionEnd diff --git a/test/tint/builtins/gen/var/select/9b478d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/9b478d.wgsl.expected.wgsl new file mode 100644 index 0000000000..bede1cea63 --- /dev/null +++ b/test/tint/builtins/gen/var/select/9b478d.wgsl.expected.wgsl @@ -0,0 +1,22 @@ +fn select_9b478d() { + const arg_0 = 1.0; + const arg_1 = 1.0; + var arg_2 = true; + var res = select(arg_0, arg_1, arg_2); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_9b478d(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_9b478d(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_9b478d(); +} diff --git a/test/tint/builtins/gen/var/select/b93806.wgsl b/test/tint/builtins/gen/var/select/b93806.wgsl new file mode 100644 index 0000000000..462821c7ec --- /dev/null +++ b/test/tint/builtins/gen/var/select/b93806.wgsl @@ -0,0 +1,46 @@ +// Copyright 2022 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//////////////////////////////////////////////////////////////////////////////// +// File generated by tools/src/cmd/gen +// using the template: +// test/tint/builtins/gen/gen.wgsl.tmpl +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn select(vec<3, ia>, vec<3, ia>, vec<3, bool>) -> vec<3, ia> +fn select_b93806() { + const arg_0 = vec3(1.0); + const arg_1 = vec3(1.0); + var arg_2 = vec3(true); + var res = select(arg_0, arg_1, arg_2); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_b93806(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_b93806(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_b93806(); +} diff --git a/test/tint/builtins/gen/var/select/b93806.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/b93806.wgsl.expected.dxc.hlsl new file mode 100644 index 0000000000..9edfa544d3 --- /dev/null +++ b/test/tint/builtins/gen/var/select/b93806.wgsl.expected.dxc.hlsl @@ -0,0 +1,31 @@ +void select_b93806() { + bool3 arg_2 = (true).xxx; + float3 res = (arg_2 ? (1.0f).xxx : (1.0f).xxx); +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_b93806(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_b93806(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_b93806(); + return; +} diff --git a/test/tint/builtins/gen/var/select/b93806.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/b93806.wgsl.expected.fxc.hlsl new file mode 100644 index 0000000000..9edfa544d3 --- /dev/null +++ b/test/tint/builtins/gen/var/select/b93806.wgsl.expected.fxc.hlsl @@ -0,0 +1,31 @@ +void select_b93806() { + bool3 arg_2 = (true).xxx; + float3 res = (arg_2 ? (1.0f).xxx : (1.0f).xxx); +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_b93806(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_b93806(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_b93806(); + return; +} diff --git a/test/tint/builtins/gen/var/select/b93806.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/b93806.wgsl.expected.glsl new file mode 100644 index 0000000000..243560202f --- /dev/null +++ b/test/tint/builtins/gen/var/select/b93806.wgsl.expected.glsl @@ -0,0 +1,52 @@ +#version 310 es + +void select_b93806() { + bvec3 arg_2 = bvec3(true); + vec3 res = mix(vec3(1.0f), vec3(1.0f), arg_2); +} + +vec4 vertex_main() { + select_b93806(); + return vec4(0.0f); +} + +void main() { + gl_PointSize = 1.0; + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +void select_b93806() { + bvec3 arg_2 = bvec3(true); + vec3 res = mix(vec3(1.0f), vec3(1.0f), arg_2); +} + +void fragment_main() { + select_b93806(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +void select_b93806() { + bvec3 arg_2 = bvec3(true); + vec3 res = mix(vec3(1.0f), vec3(1.0f), arg_2); +} + +void compute_main() { + select_b93806(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +} diff --git a/test/tint/builtins/gen/var/select/b93806.wgsl.expected.msl b/test/tint/builtins/gen/var/select/b93806.wgsl.expected.msl new file mode 100644 index 0000000000..181a35b95a --- /dev/null +++ b/test/tint/builtins/gen/var/select/b93806.wgsl.expected.msl @@ -0,0 +1,34 @@ +#include + +using namespace metal; +void select_b93806() { + bool3 arg_2 = bool3(true); + float3 res = select(float3(1.0f), float3(1.0f), arg_2); +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + select_b93806(); + return float4(0.0f); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + select_b93806(); + return; +} + +kernel void compute_main() { + select_b93806(); + return; +} + diff --git a/test/tint/builtins/gen/var/select/b93806.wgsl.expected.spvasm b/test/tint/builtins/gen/var/select/b93806.wgsl.expected.spvasm new file mode 100644 index 0000000000..b08f45fa82 --- /dev/null +++ b/test/tint/builtins/gen/var/select/b93806.wgsl.expected.spvasm @@ -0,0 +1,77 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 41 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %select_b93806 "select_b93806" + OpName %arg_2 "arg_2" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %void = OpTypeVoid + %9 = OpTypeFunction %void + %bool = OpTypeBool + %v3bool = OpTypeVector %bool 3 + %true = OpConstantTrue %bool + %16 = OpConstantComposite %v3bool %true %true %true +%_ptr_Function_v3bool = OpTypePointer Function %v3bool + %19 = OpConstantNull %v3bool + %v3float = OpTypeVector %float 3 + %float_1 = OpConstant %float 1 + %24 = OpConstantComposite %v3float %float_1 %float_1 %float_1 +%_ptr_Function_v3float = OpTypePointer Function %v3float + %27 = OpConstantNull %v3float + %28 = OpTypeFunction %v4float +%select_b93806 = OpFunction %void None %9 + %12 = OpLabel + %arg_2 = OpVariable %_ptr_Function_v3bool Function %19 + %res = OpVariable %_ptr_Function_v3float Function %27 + OpStore %arg_2 %16 + %22 = OpLoad %v3bool %arg_2 + %20 = OpSelect %v3float %22 %24 %24 + OpStore %res %20 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %28 + %30 = OpLabel + %31 = OpFunctionCall %void %select_b93806 + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %9 + %33 = OpLabel + %34 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %34 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %9 + %36 = OpLabel + %37 = OpFunctionCall %void %select_b93806 + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 + %39 = OpLabel + %40 = OpFunctionCall %void %select_b93806 + OpReturn + OpFunctionEnd diff --git a/test/tint/builtins/gen/var/select/b93806.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/b93806.wgsl.expected.wgsl new file mode 100644 index 0000000000..56cb234a42 --- /dev/null +++ b/test/tint/builtins/gen/var/select/b93806.wgsl.expected.wgsl @@ -0,0 +1,22 @@ +fn select_b93806() { + const arg_0 = vec3(1.0); + const arg_1 = vec3(1.0); + var arg_2 = vec3(true); + var res = select(arg_0, arg_1, arg_2); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_b93806(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_b93806(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_b93806(); +} diff --git a/test/tint/builtins/gen/var/select/dfab3b.wgsl b/test/tint/builtins/gen/var/select/dfab3b.wgsl new file mode 100644 index 0000000000..1f1bfef408 --- /dev/null +++ b/test/tint/builtins/gen/var/select/dfab3b.wgsl @@ -0,0 +1,46 @@ +// Copyright 2022 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//////////////////////////////////////////////////////////////////////////////// +// File generated by tools/src/cmd/gen +// using the template: +// test/tint/builtins/gen/gen.wgsl.tmpl +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn select(vec<3, ia>, vec<3, ia>, bool) -> vec<3, ia> +fn select_dfab3b() { + const arg_0 = vec3(1.0); + const arg_1 = vec3(1.0); + var arg_2 = true; + var res = select(arg_0, arg_1, arg_2); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_dfab3b(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_dfab3b(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_dfab3b(); +} diff --git a/test/tint/builtins/gen/var/select/dfab3b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/dfab3b.wgsl.expected.dxc.hlsl new file mode 100644 index 0000000000..c87f99d63a --- /dev/null +++ b/test/tint/builtins/gen/var/select/dfab3b.wgsl.expected.dxc.hlsl @@ -0,0 +1,31 @@ +void select_dfab3b() { + bool arg_2 = true; + float3 res = (arg_2 ? (1.0f).xxx : (1.0f).xxx); +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_dfab3b(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_dfab3b(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_dfab3b(); + return; +} diff --git a/test/tint/builtins/gen/var/select/dfab3b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/dfab3b.wgsl.expected.fxc.hlsl new file mode 100644 index 0000000000..c87f99d63a --- /dev/null +++ b/test/tint/builtins/gen/var/select/dfab3b.wgsl.expected.fxc.hlsl @@ -0,0 +1,31 @@ +void select_dfab3b() { + bool arg_2 = true; + float3 res = (arg_2 ? (1.0f).xxx : (1.0f).xxx); +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_dfab3b(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_dfab3b(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_dfab3b(); + return; +} diff --git a/test/tint/builtins/gen/var/select/dfab3b.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/dfab3b.wgsl.expected.glsl new file mode 100644 index 0000000000..ed4de68a97 --- /dev/null +++ b/test/tint/builtins/gen/var/select/dfab3b.wgsl.expected.glsl @@ -0,0 +1,52 @@ +#version 310 es + +void select_dfab3b() { + bool arg_2 = true; + vec3 res = (arg_2 ? vec3(1.0f) : vec3(1.0f)); +} + +vec4 vertex_main() { + select_dfab3b(); + return vec4(0.0f); +} + +void main() { + gl_PointSize = 1.0; + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +void select_dfab3b() { + bool arg_2 = true; + vec3 res = (arg_2 ? vec3(1.0f) : vec3(1.0f)); +} + +void fragment_main() { + select_dfab3b(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +void select_dfab3b() { + bool arg_2 = true; + vec3 res = (arg_2 ? vec3(1.0f) : vec3(1.0f)); +} + +void compute_main() { + select_dfab3b(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +} diff --git a/test/tint/builtins/gen/var/select/dfab3b.wgsl.expected.msl b/test/tint/builtins/gen/var/select/dfab3b.wgsl.expected.msl new file mode 100644 index 0000000000..585329248e --- /dev/null +++ b/test/tint/builtins/gen/var/select/dfab3b.wgsl.expected.msl @@ -0,0 +1,34 @@ +#include + +using namespace metal; +void select_dfab3b() { + bool arg_2 = true; + float3 res = select(float3(1.0f), float3(1.0f), arg_2); +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + select_dfab3b(); + return float4(0.0f); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + select_dfab3b(); + return; +} + +kernel void compute_main() { + select_dfab3b(); + return; +} + diff --git a/test/tint/builtins/gen/var/select/dfab3b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/select/dfab3b.wgsl.expected.spvasm new file mode 100644 index 0000000000..43e0abf1be --- /dev/null +++ b/test/tint/builtins/gen/var/select/dfab3b.wgsl.expected.spvasm @@ -0,0 +1,80 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 44 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %select_dfab3b "select_dfab3b" + OpName %arg_2 "arg_2" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %void = OpTypeVoid + %9 = OpTypeFunction %void + %bool = OpTypeBool + %true = OpConstantTrue %bool +%_ptr_Function_bool = OpTypePointer Function %bool + %17 = OpConstantNull %bool + %v3float = OpTypeVector %float 3 + %float_1 = OpConstant %float 1 + %22 = OpConstantComposite %v3float %float_1 %float_1 %float_1 + %v3bool = OpTypeVector %bool 3 +%_ptr_Function_v3bool = OpTypePointer Function %v3bool + %26 = OpConstantNull %v3bool +%_ptr_Function_v3float = OpTypePointer Function %v3float + %30 = OpConstantNull %v3float + %31 = OpTypeFunction %v4float +%select_dfab3b = OpFunction %void None %9 + %12 = OpLabel + %arg_2 = OpVariable %_ptr_Function_bool Function %17 + %24 = OpVariable %_ptr_Function_v3bool Function %26 + %res = OpVariable %_ptr_Function_v3float Function %30 + OpStore %arg_2 %true + %20 = OpLoad %bool %arg_2 + %27 = OpCompositeConstruct %v3bool %20 %20 %20 + %18 = OpSelect %v3float %27 %22 %22 + OpStore %res %18 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %31 + %33 = OpLabel + %34 = OpFunctionCall %void %select_dfab3b + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %9 + %36 = OpLabel + %37 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %37 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %9 + %39 = OpLabel + %40 = OpFunctionCall %void %select_dfab3b + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 + %42 = OpLabel + %43 = OpFunctionCall %void %select_dfab3b + OpReturn + OpFunctionEnd diff --git a/test/tint/builtins/gen/var/select/dfab3b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/dfab3b.wgsl.expected.wgsl new file mode 100644 index 0000000000..1fc9ba7ada --- /dev/null +++ b/test/tint/builtins/gen/var/select/dfab3b.wgsl.expected.wgsl @@ -0,0 +1,22 @@ +fn select_dfab3b() { + const arg_0 = vec3(1.0); + const arg_1 = vec3(1.0); + var arg_2 = true; + var res = select(arg_0, arg_1, arg_2); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_dfab3b(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_dfab3b(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_dfab3b(); +} diff --git a/test/tint/builtins/gen/var/select/e381c3.wgsl b/test/tint/builtins/gen/var/select/e381c3.wgsl new file mode 100644 index 0000000000..17408f0010 --- /dev/null +++ b/test/tint/builtins/gen/var/select/e381c3.wgsl @@ -0,0 +1,46 @@ +// Copyright 2022 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//////////////////////////////////////////////////////////////////////////////// +// File generated by tools/src/cmd/gen +// using the template: +// test/tint/builtins/gen/gen.wgsl.tmpl +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn select(vec<4, ia>, vec<4, ia>, bool) -> vec<4, ia> +fn select_e381c3() { + const arg_0 = vec4(1.0); + const arg_1 = vec4(1.0); + var arg_2 = true; + var res = select(arg_0, arg_1, arg_2); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_e381c3(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_e381c3(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_e381c3(); +} diff --git a/test/tint/builtins/gen/var/select/e381c3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/e381c3.wgsl.expected.dxc.hlsl new file mode 100644 index 0000000000..cd574f9057 --- /dev/null +++ b/test/tint/builtins/gen/var/select/e381c3.wgsl.expected.dxc.hlsl @@ -0,0 +1,31 @@ +void select_e381c3() { + bool arg_2 = true; + float4 res = (arg_2 ? (1.0f).xxxx : (1.0f).xxxx); +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_e381c3(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_e381c3(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_e381c3(); + return; +} diff --git a/test/tint/builtins/gen/var/select/e381c3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/e381c3.wgsl.expected.fxc.hlsl new file mode 100644 index 0000000000..cd574f9057 --- /dev/null +++ b/test/tint/builtins/gen/var/select/e381c3.wgsl.expected.fxc.hlsl @@ -0,0 +1,31 @@ +void select_e381c3() { + bool arg_2 = true; + float4 res = (arg_2 ? (1.0f).xxxx : (1.0f).xxxx); +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + select_e381c3(); + return (0.0f).xxxx; +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + select_e381c3(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + select_e381c3(); + return; +} diff --git a/test/tint/builtins/gen/var/select/e381c3.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/e381c3.wgsl.expected.glsl new file mode 100644 index 0000000000..d9e07d8e2a --- /dev/null +++ b/test/tint/builtins/gen/var/select/e381c3.wgsl.expected.glsl @@ -0,0 +1,52 @@ +#version 310 es + +void select_e381c3() { + bool arg_2 = true; + vec4 res = (arg_2 ? vec4(1.0f) : vec4(1.0f)); +} + +vec4 vertex_main() { + select_e381c3(); + return vec4(0.0f); +} + +void main() { + gl_PointSize = 1.0; + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +void select_e381c3() { + bool arg_2 = true; + vec4 res = (arg_2 ? vec4(1.0f) : vec4(1.0f)); +} + +void fragment_main() { + select_e381c3(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +void select_e381c3() { + bool arg_2 = true; + vec4 res = (arg_2 ? vec4(1.0f) : vec4(1.0f)); +} + +void compute_main() { + select_e381c3(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +} diff --git a/test/tint/builtins/gen/var/select/e381c3.wgsl.expected.msl b/test/tint/builtins/gen/var/select/e381c3.wgsl.expected.msl new file mode 100644 index 0000000000..7d62032e0d --- /dev/null +++ b/test/tint/builtins/gen/var/select/e381c3.wgsl.expected.msl @@ -0,0 +1,34 @@ +#include + +using namespace metal; +void select_e381c3() { + bool arg_2 = true; + float4 res = select(float4(1.0f), float4(1.0f), arg_2); +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + select_e381c3(); + return float4(0.0f); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + select_e381c3(); + return; +} + +kernel void compute_main() { + select_e381c3(); + return; +} + diff --git a/test/tint/builtins/gen/var/select/e381c3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/select/e381c3.wgsl.expected.spvasm new file mode 100644 index 0000000000..620d206ec2 --- /dev/null +++ b/test/tint/builtins/gen/var/select/e381c3.wgsl.expected.spvasm @@ -0,0 +1,78 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 42 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %select_e381c3 "select_e381c3" + OpName %arg_2 "arg_2" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %void = OpTypeVoid + %9 = OpTypeFunction %void + %bool = OpTypeBool + %true = OpConstantTrue %bool +%_ptr_Function_bool = OpTypePointer Function %bool + %17 = OpConstantNull %bool + %float_1 = OpConstant %float 1 + %21 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 + %v4bool = OpTypeVector %bool 4 +%_ptr_Function_v4bool = OpTypePointer Function %v4bool + %25 = OpConstantNull %v4bool +%_ptr_Function_v4float = OpTypePointer Function %v4float + %29 = OpTypeFunction %v4float +%select_e381c3 = OpFunction %void None %9 + %12 = OpLabel + %arg_2 = OpVariable %_ptr_Function_bool Function %17 + %23 = OpVariable %_ptr_Function_v4bool Function %25 + %res = OpVariable %_ptr_Function_v4float Function %5 + OpStore %arg_2 %true + %19 = OpLoad %bool %arg_2 + %26 = OpCompositeConstruct %v4bool %19 %19 %19 %19 + %18 = OpSelect %v4float %26 %21 %21 + OpStore %res %18 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %29 + %31 = OpLabel + %32 = OpFunctionCall %void %select_e381c3 + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %9 + %34 = OpLabel + %35 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %35 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %9 + %37 = OpLabel + %38 = OpFunctionCall %void %select_e381c3 + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %9 + %40 = OpLabel + %41 = OpFunctionCall %void %select_e381c3 + OpReturn + OpFunctionEnd diff --git a/test/tint/builtins/gen/var/select/e381c3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/e381c3.wgsl.expected.wgsl new file mode 100644 index 0000000000..61e62cda74 --- /dev/null +++ b/test/tint/builtins/gen/var/select/e381c3.wgsl.expected.wgsl @@ -0,0 +1,22 @@ +fn select_e381c3() { + const arg_0 = vec4(1.0); + const arg_1 = vec4(1.0); + var arg_2 = true; + var res = select(arg_0, arg_1, arg_2); +} + +@vertex +fn vertex_main() -> @builtin(position) vec4 { + select_e381c3(); + return vec4(); +} + +@fragment +fn fragment_main() { + select_e381c3(); +} + +@compute @workgroup_size(1) +fn compute_main() { + select_e381c3(); +}