[ir] Shuffle around function e2e tests

This CL groups the function end-to-end tests under the
`test/tint/type/functions` folder and moves the `shader_io` tests into
the function folder as they are, essentially, entry point parameters.

Bug: tint:1718
Change-Id: Id38e80dba2e29cefb37281b4fbd2f4ae8524de25
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/162940
Auto-Submit: dan sinclair <dsinclair@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: dan sinclair <dsinclair@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
diff --git a/test/tint/types/parameters.wgsl b/test/tint/types/functions/parameters.wgsl
similarity index 100%
rename from test/tint/types/parameters.wgsl
rename to test/tint/types/functions/parameters.wgsl
diff --git a/test/tint/types/parameters.wgsl.expected.dxc.hlsl b/test/tint/types/functions/parameters.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/types/parameters.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/parameters.wgsl.expected.dxc.hlsl
diff --git a/test/tint/types/parameters.wgsl.expected.fxc.hlsl b/test/tint/types/functions/parameters.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/types/parameters.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/parameters.wgsl.expected.fxc.hlsl
diff --git a/test/tint/types/parameters.wgsl.expected.glsl b/test/tint/types/functions/parameters.wgsl.expected.glsl
similarity index 100%
rename from test/tint/types/parameters.wgsl.expected.glsl
rename to test/tint/types/functions/parameters.wgsl.expected.glsl
diff --git a/test/tint/types/parameters.wgsl.expected.ir.msl b/test/tint/types/functions/parameters.wgsl.expected.ir.msl
similarity index 93%
rename from test/tint/types/parameters.wgsl.expected.ir.msl
rename to test/tint/types/functions/parameters.wgsl.expected.ir.msl
index 166e30c..875b265 100644
--- a/test/tint/types/parameters.wgsl.expected.ir.msl
+++ b/test/tint/types/functions/parameters.wgsl.expected.ir.msl
@@ -1,3 +1,8 @@
+SKIP: FAILED
+
+### Lost the `const` on the three `param_ptr` variables
+
+
 #include <metal_stdlib>
 using namespace metal;
 template<typename T, size_t N>
diff --git a/test/tint/types/parameters.wgsl.expected.msl b/test/tint/types/functions/parameters.wgsl.expected.msl
similarity index 100%
rename from test/tint/types/parameters.wgsl.expected.msl
rename to test/tint/types/functions/parameters.wgsl.expected.msl
diff --git a/test/tint/types/parameters.wgsl.expected.spvasm b/test/tint/types/functions/parameters.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/types/parameters.wgsl.expected.spvasm
rename to test/tint/types/functions/parameters.wgsl.expected.spvasm
diff --git a/test/tint/types/parameters.wgsl.expected.wgsl b/test/tint/types/functions/parameters.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/types/parameters.wgsl.expected.wgsl
rename to test/tint/types/functions/parameters.wgsl.expected.wgsl
diff --git a/test/tint/types/return_types.wgsl b/test/tint/types/functions/return_types.wgsl
similarity index 100%
rename from test/tint/types/return_types.wgsl
rename to test/tint/types/functions/return_types.wgsl
diff --git a/test/tint/types/return_types.wgsl.expected.dxc.hlsl b/test/tint/types/functions/return_types.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/types/return_types.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/return_types.wgsl.expected.dxc.hlsl
diff --git a/test/tint/types/return_types.wgsl.expected.fxc.hlsl b/test/tint/types/functions/return_types.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/types/return_types.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/return_types.wgsl.expected.fxc.hlsl
diff --git a/test/tint/types/return_types.wgsl.expected.glsl b/test/tint/types/functions/return_types.wgsl.expected.glsl
similarity index 100%
rename from test/tint/types/return_types.wgsl.expected.glsl
rename to test/tint/types/functions/return_types.wgsl.expected.glsl
diff --git a/test/tint/types/return_types.wgsl.expected.ir.msl b/test/tint/types/functions/return_types.wgsl.expected.ir.msl
similarity index 100%
rename from test/tint/types/return_types.wgsl.expected.ir.msl
rename to test/tint/types/functions/return_types.wgsl.expected.ir.msl
diff --git a/test/tint/types/return_types.wgsl.expected.msl b/test/tint/types/functions/return_types.wgsl.expected.msl
similarity index 100%
rename from test/tint/types/return_types.wgsl.expected.msl
rename to test/tint/types/functions/return_types.wgsl.expected.msl
diff --git a/test/tint/types/return_types.wgsl.expected.spvasm b/test/tint/types/functions/return_types.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/types/return_types.wgsl.expected.spvasm
rename to test/tint/types/functions/return_types.wgsl.expected.spvasm
diff --git a/test/tint/types/return_types.wgsl.expected.wgsl b/test/tint/types/functions/return_types.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/types/return_types.wgsl.expected.wgsl
rename to test/tint/types/functions/return_types.wgsl.expected.wgsl
diff --git a/test/tint/shader_io/compute_input_builtins.wgsl b/test/tint/types/functions/shader_io/compute_input_builtins.wgsl
similarity index 100%
rename from test/tint/shader_io/compute_input_builtins.wgsl
rename to test/tint/types/functions/shader_io/compute_input_builtins.wgsl
diff --git a/test/tint/shader_io/compute_input_builtins.wgsl.expected.dxc.hlsl b/test/tint/types/functions/shader_io/compute_input_builtins.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/shader_io/compute_input_builtins.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/shader_io/compute_input_builtins.wgsl.expected.dxc.hlsl
diff --git a/test/tint/shader_io/compute_input_builtins.wgsl.expected.fxc.hlsl b/test/tint/types/functions/shader_io/compute_input_builtins.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/shader_io/compute_input_builtins.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/shader_io/compute_input_builtins.wgsl.expected.fxc.hlsl
diff --git a/test/tint/shader_io/compute_input_builtins.wgsl.expected.glsl b/test/tint/types/functions/shader_io/compute_input_builtins.wgsl.expected.glsl
similarity index 100%
rename from test/tint/shader_io/compute_input_builtins.wgsl.expected.glsl
rename to test/tint/types/functions/shader_io/compute_input_builtins.wgsl.expected.glsl
diff --git a/test/tint/shader_io/compute_input_builtins.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/compute_input_builtins.wgsl.expected.ir.msl
similarity index 100%
rename from test/tint/shader_io/compute_input_builtins.wgsl.expected.ir.msl
rename to test/tint/types/functions/shader_io/compute_input_builtins.wgsl.expected.ir.msl
diff --git a/test/tint/shader_io/compute_input_builtins.wgsl.expected.msl b/test/tint/types/functions/shader_io/compute_input_builtins.wgsl.expected.msl
similarity index 100%
rename from test/tint/shader_io/compute_input_builtins.wgsl.expected.msl
rename to test/tint/types/functions/shader_io/compute_input_builtins.wgsl.expected.msl
diff --git a/test/tint/shader_io/compute_input_builtins.wgsl.expected.spvasm b/test/tint/types/functions/shader_io/compute_input_builtins.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/shader_io/compute_input_builtins.wgsl.expected.spvasm
rename to test/tint/types/functions/shader_io/compute_input_builtins.wgsl.expected.spvasm
diff --git a/test/tint/shader_io/compute_input_builtins.wgsl.expected.wgsl b/test/tint/types/functions/shader_io/compute_input_builtins.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/shader_io/compute_input_builtins.wgsl.expected.wgsl
rename to test/tint/types/functions/shader_io/compute_input_builtins.wgsl.expected.wgsl
diff --git a/test/tint/shader_io/compute_input_builtins_struct.wgsl b/test/tint/types/functions/shader_io/compute_input_builtins_struct.wgsl
similarity index 100%
rename from test/tint/shader_io/compute_input_builtins_struct.wgsl
rename to test/tint/types/functions/shader_io/compute_input_builtins_struct.wgsl
diff --git a/test/tint/shader_io/compute_input_builtins_struct.wgsl.expected.dxc.hlsl b/test/tint/types/functions/shader_io/compute_input_builtins_struct.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/shader_io/compute_input_builtins_struct.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/shader_io/compute_input_builtins_struct.wgsl.expected.dxc.hlsl
diff --git a/test/tint/shader_io/compute_input_builtins_struct.wgsl.expected.fxc.hlsl b/test/tint/types/functions/shader_io/compute_input_builtins_struct.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/shader_io/compute_input_builtins_struct.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/shader_io/compute_input_builtins_struct.wgsl.expected.fxc.hlsl
diff --git a/test/tint/shader_io/compute_input_builtins_struct.wgsl.expected.glsl b/test/tint/types/functions/shader_io/compute_input_builtins_struct.wgsl.expected.glsl
similarity index 100%
rename from test/tint/shader_io/compute_input_builtins_struct.wgsl.expected.glsl
rename to test/tint/types/functions/shader_io/compute_input_builtins_struct.wgsl.expected.glsl
diff --git a/test/tint/shader_io/compute_input_builtins_struct.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/compute_input_builtins_struct.wgsl.expected.ir.msl
similarity index 100%
rename from test/tint/shader_io/compute_input_builtins_struct.wgsl.expected.ir.msl
rename to test/tint/types/functions/shader_io/compute_input_builtins_struct.wgsl.expected.ir.msl
diff --git a/test/tint/shader_io/compute_input_builtins_struct.wgsl.expected.msl b/test/tint/types/functions/shader_io/compute_input_builtins_struct.wgsl.expected.msl
similarity index 100%
rename from test/tint/shader_io/compute_input_builtins_struct.wgsl.expected.msl
rename to test/tint/types/functions/shader_io/compute_input_builtins_struct.wgsl.expected.msl
diff --git a/test/tint/shader_io/compute_input_builtins_struct.wgsl.expected.spvasm b/test/tint/types/functions/shader_io/compute_input_builtins_struct.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/shader_io/compute_input_builtins_struct.wgsl.expected.spvasm
rename to test/tint/types/functions/shader_io/compute_input_builtins_struct.wgsl.expected.spvasm
diff --git a/test/tint/shader_io/compute_input_builtins_struct.wgsl.expected.wgsl b/test/tint/types/functions/shader_io/compute_input_builtins_struct.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/shader_io/compute_input_builtins_struct.wgsl.expected.wgsl
rename to test/tint/types/functions/shader_io/compute_input_builtins_struct.wgsl.expected.wgsl
diff --git a/test/tint/shader_io/compute_input_mixed.wgsl b/test/tint/types/functions/shader_io/compute_input_mixed.wgsl
similarity index 100%
rename from test/tint/shader_io/compute_input_mixed.wgsl
rename to test/tint/types/functions/shader_io/compute_input_mixed.wgsl
diff --git a/test/tint/shader_io/compute_input_mixed.wgsl.expected.dxc.hlsl b/test/tint/types/functions/shader_io/compute_input_mixed.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/shader_io/compute_input_mixed.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/shader_io/compute_input_mixed.wgsl.expected.dxc.hlsl
diff --git a/test/tint/shader_io/compute_input_mixed.wgsl.expected.fxc.hlsl b/test/tint/types/functions/shader_io/compute_input_mixed.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/shader_io/compute_input_mixed.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/shader_io/compute_input_mixed.wgsl.expected.fxc.hlsl
diff --git a/test/tint/shader_io/compute_input_mixed.wgsl.expected.glsl b/test/tint/types/functions/shader_io/compute_input_mixed.wgsl.expected.glsl
similarity index 100%
rename from test/tint/shader_io/compute_input_mixed.wgsl.expected.glsl
rename to test/tint/types/functions/shader_io/compute_input_mixed.wgsl.expected.glsl
diff --git a/test/tint/shader_io/compute_input_mixed.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/compute_input_mixed.wgsl.expected.ir.msl
similarity index 100%
rename from test/tint/shader_io/compute_input_mixed.wgsl.expected.ir.msl
rename to test/tint/types/functions/shader_io/compute_input_mixed.wgsl.expected.ir.msl
diff --git a/test/tint/shader_io/compute_input_mixed.wgsl.expected.msl b/test/tint/types/functions/shader_io/compute_input_mixed.wgsl.expected.msl
similarity index 100%
rename from test/tint/shader_io/compute_input_mixed.wgsl.expected.msl
rename to test/tint/types/functions/shader_io/compute_input_mixed.wgsl.expected.msl
diff --git a/test/tint/shader_io/compute_input_mixed.wgsl.expected.spvasm b/test/tint/types/functions/shader_io/compute_input_mixed.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/shader_io/compute_input_mixed.wgsl.expected.spvasm
rename to test/tint/types/functions/shader_io/compute_input_mixed.wgsl.expected.spvasm
diff --git a/test/tint/shader_io/compute_input_mixed.wgsl.expected.wgsl b/test/tint/types/functions/shader_io/compute_input_mixed.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/shader_io/compute_input_mixed.wgsl.expected.wgsl
rename to test/tint/types/functions/shader_io/compute_input_mixed.wgsl.expected.wgsl
diff --git a/test/tint/shader_io/compute_subgroup_builtins.wgsl b/test/tint/types/functions/shader_io/compute_subgroup_builtins.wgsl
similarity index 100%
rename from test/tint/shader_io/compute_subgroup_builtins.wgsl
rename to test/tint/types/functions/shader_io/compute_subgroup_builtins.wgsl
diff --git a/test/tint/shader_io/compute_subgroup_builtins.wgsl.expected.dxc.hlsl b/test/tint/types/functions/shader_io/compute_subgroup_builtins.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/shader_io/compute_subgroup_builtins.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/shader_io/compute_subgroup_builtins.wgsl.expected.dxc.hlsl
diff --git a/test/tint/shader_io/compute_subgroup_builtins.wgsl.expected.fxc.hlsl b/test/tint/types/functions/shader_io/compute_subgroup_builtins.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/shader_io/compute_subgroup_builtins.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/shader_io/compute_subgroup_builtins.wgsl.expected.fxc.hlsl
diff --git a/test/tint/shader_io/compute_subgroup_builtins.wgsl.expected.glsl b/test/tint/types/functions/shader_io/compute_subgroup_builtins.wgsl.expected.glsl
similarity index 100%
rename from test/tint/shader_io/compute_subgroup_builtins.wgsl.expected.glsl
rename to test/tint/types/functions/shader_io/compute_subgroup_builtins.wgsl.expected.glsl
diff --git a/test/tint/shader_io/compute_subgroup_builtins.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/compute_subgroup_builtins.wgsl.expected.ir.msl
similarity index 100%
rename from test/tint/shader_io/compute_subgroup_builtins.wgsl.expected.ir.msl
rename to test/tint/types/functions/shader_io/compute_subgroup_builtins.wgsl.expected.ir.msl
diff --git a/test/tint/shader_io/compute_subgroup_builtins.wgsl.expected.msl b/test/tint/types/functions/shader_io/compute_subgroup_builtins.wgsl.expected.msl
similarity index 100%
rename from test/tint/shader_io/compute_subgroup_builtins.wgsl.expected.msl
rename to test/tint/types/functions/shader_io/compute_subgroup_builtins.wgsl.expected.msl
diff --git a/test/tint/shader_io/compute_subgroup_builtins.wgsl.expected.spvasm b/test/tint/types/functions/shader_io/compute_subgroup_builtins.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/shader_io/compute_subgroup_builtins.wgsl.expected.spvasm
rename to test/tint/types/functions/shader_io/compute_subgroup_builtins.wgsl.expected.spvasm
diff --git a/test/tint/shader_io/compute_subgroup_builtins.wgsl.expected.wgsl b/test/tint/types/functions/shader_io/compute_subgroup_builtins.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/shader_io/compute_subgroup_builtins.wgsl.expected.wgsl
rename to test/tint/types/functions/shader_io/compute_subgroup_builtins.wgsl.expected.wgsl
diff --git a/test/tint/shader_io/compute_subgroup_builtins_struct.wgsl b/test/tint/types/functions/shader_io/compute_subgroup_builtins_struct.wgsl
similarity index 100%
rename from test/tint/shader_io/compute_subgroup_builtins_struct.wgsl
rename to test/tint/types/functions/shader_io/compute_subgroup_builtins_struct.wgsl
diff --git a/test/tint/shader_io/compute_subgroup_builtins_struct.wgsl.expected.dxc.hlsl b/test/tint/types/functions/shader_io/compute_subgroup_builtins_struct.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/shader_io/compute_subgroup_builtins_struct.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/shader_io/compute_subgroup_builtins_struct.wgsl.expected.dxc.hlsl
diff --git a/test/tint/shader_io/compute_subgroup_builtins_struct.wgsl.expected.fxc.hlsl b/test/tint/types/functions/shader_io/compute_subgroup_builtins_struct.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/shader_io/compute_subgroup_builtins_struct.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/shader_io/compute_subgroup_builtins_struct.wgsl.expected.fxc.hlsl
diff --git a/test/tint/shader_io/compute_subgroup_builtins_struct.wgsl.expected.glsl b/test/tint/types/functions/shader_io/compute_subgroup_builtins_struct.wgsl.expected.glsl
similarity index 100%
rename from test/tint/shader_io/compute_subgroup_builtins_struct.wgsl.expected.glsl
rename to test/tint/types/functions/shader_io/compute_subgroup_builtins_struct.wgsl.expected.glsl
diff --git a/test/tint/shader_io/compute_subgroup_builtins_struct.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/compute_subgroup_builtins_struct.wgsl.expected.ir.msl
similarity index 100%
rename from test/tint/shader_io/compute_subgroup_builtins_struct.wgsl.expected.ir.msl
rename to test/tint/types/functions/shader_io/compute_subgroup_builtins_struct.wgsl.expected.ir.msl
diff --git a/test/tint/shader_io/compute_subgroup_builtins_struct.wgsl.expected.msl b/test/tint/types/functions/shader_io/compute_subgroup_builtins_struct.wgsl.expected.msl
similarity index 100%
rename from test/tint/shader_io/compute_subgroup_builtins_struct.wgsl.expected.msl
rename to test/tint/types/functions/shader_io/compute_subgroup_builtins_struct.wgsl.expected.msl
diff --git a/test/tint/shader_io/compute_subgroup_builtins_struct.wgsl.expected.spvasm b/test/tint/types/functions/shader_io/compute_subgroup_builtins_struct.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/shader_io/compute_subgroup_builtins_struct.wgsl.expected.spvasm
rename to test/tint/types/functions/shader_io/compute_subgroup_builtins_struct.wgsl.expected.spvasm
diff --git a/test/tint/shader_io/compute_subgroup_builtins_struct.wgsl.expected.wgsl b/test/tint/types/functions/shader_io/compute_subgroup_builtins_struct.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/shader_io/compute_subgroup_builtins_struct.wgsl.expected.wgsl
rename to test/tint/types/functions/shader_io/compute_subgroup_builtins_struct.wgsl.expected.wgsl
diff --git a/test/tint/shader_io/compute_workgroup_expression.wgsl b/test/tint/types/functions/shader_io/compute_workgroup_expression.wgsl
similarity index 100%
rename from test/tint/shader_io/compute_workgroup_expression.wgsl
rename to test/tint/types/functions/shader_io/compute_workgroup_expression.wgsl
diff --git a/test/tint/shader_io/compute_workgroup_expression.wgsl.expected.dxc.hlsl b/test/tint/types/functions/shader_io/compute_workgroup_expression.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/shader_io/compute_workgroup_expression.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/shader_io/compute_workgroup_expression.wgsl.expected.dxc.hlsl
diff --git a/test/tint/shader_io/compute_workgroup_expression.wgsl.expected.fxc.hlsl b/test/tint/types/functions/shader_io/compute_workgroup_expression.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/shader_io/compute_workgroup_expression.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/shader_io/compute_workgroup_expression.wgsl.expected.fxc.hlsl
diff --git a/test/tint/shader_io/compute_workgroup_expression.wgsl.expected.glsl b/test/tint/types/functions/shader_io/compute_workgroup_expression.wgsl.expected.glsl
similarity index 100%
rename from test/tint/shader_io/compute_workgroup_expression.wgsl.expected.glsl
rename to test/tint/types/functions/shader_io/compute_workgroup_expression.wgsl.expected.glsl
diff --git a/test/tint/shader_io/compute_workgroup_expression.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/compute_workgroup_expression.wgsl.expected.ir.msl
similarity index 100%
rename from test/tint/shader_io/compute_workgroup_expression.wgsl.expected.ir.msl
rename to test/tint/types/functions/shader_io/compute_workgroup_expression.wgsl.expected.ir.msl
diff --git a/test/tint/shader_io/compute_workgroup_expression.wgsl.expected.msl b/test/tint/types/functions/shader_io/compute_workgroup_expression.wgsl.expected.msl
similarity index 100%
rename from test/tint/shader_io/compute_workgroup_expression.wgsl.expected.msl
rename to test/tint/types/functions/shader_io/compute_workgroup_expression.wgsl.expected.msl
diff --git a/test/tint/shader_io/compute_workgroup_expression.wgsl.expected.spvasm b/test/tint/types/functions/shader_io/compute_workgroup_expression.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/shader_io/compute_workgroup_expression.wgsl.expected.spvasm
rename to test/tint/types/functions/shader_io/compute_workgroup_expression.wgsl.expected.spvasm
diff --git a/test/tint/shader_io/compute_workgroup_expression.wgsl.expected.wgsl b/test/tint/types/functions/shader_io/compute_workgroup_expression.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/shader_io/compute_workgroup_expression.wgsl.expected.wgsl
rename to test/tint/types/functions/shader_io/compute_workgroup_expression.wgsl.expected.wgsl
diff --git a/test/tint/shader_io/fragment_input_builtins.wgsl b/test/tint/types/functions/shader_io/fragment_input_builtins.wgsl
similarity index 100%
rename from test/tint/shader_io/fragment_input_builtins.wgsl
rename to test/tint/types/functions/shader_io/fragment_input_builtins.wgsl
diff --git a/test/tint/shader_io/fragment_input_builtins.wgsl.expected.dxc.hlsl b/test/tint/types/functions/shader_io/fragment_input_builtins.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/shader_io/fragment_input_builtins.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/shader_io/fragment_input_builtins.wgsl.expected.dxc.hlsl
diff --git a/test/tint/shader_io/fragment_input_builtins.wgsl.expected.fxc.hlsl b/test/tint/types/functions/shader_io/fragment_input_builtins.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/shader_io/fragment_input_builtins.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/shader_io/fragment_input_builtins.wgsl.expected.fxc.hlsl
diff --git a/test/tint/shader_io/fragment_input_builtins.wgsl.expected.glsl b/test/tint/types/functions/shader_io/fragment_input_builtins.wgsl.expected.glsl
similarity index 100%
rename from test/tint/shader_io/fragment_input_builtins.wgsl.expected.glsl
rename to test/tint/types/functions/shader_io/fragment_input_builtins.wgsl.expected.glsl
diff --git a/test/tint/shader_io/fragment_input_builtins.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/fragment_input_builtins.wgsl.expected.ir.msl
similarity index 100%
rename from test/tint/shader_io/fragment_input_builtins.wgsl.expected.ir.msl
rename to test/tint/types/functions/shader_io/fragment_input_builtins.wgsl.expected.ir.msl
diff --git a/test/tint/shader_io/fragment_input_builtins.wgsl.expected.msl b/test/tint/types/functions/shader_io/fragment_input_builtins.wgsl.expected.msl
similarity index 100%
rename from test/tint/shader_io/fragment_input_builtins.wgsl.expected.msl
rename to test/tint/types/functions/shader_io/fragment_input_builtins.wgsl.expected.msl
diff --git a/test/tint/shader_io/fragment_input_builtins.wgsl.expected.spvasm b/test/tint/types/functions/shader_io/fragment_input_builtins.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/shader_io/fragment_input_builtins.wgsl.expected.spvasm
rename to test/tint/types/functions/shader_io/fragment_input_builtins.wgsl.expected.spvasm
diff --git a/test/tint/shader_io/fragment_input_builtins.wgsl.expected.wgsl b/test/tint/types/functions/shader_io/fragment_input_builtins.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/shader_io/fragment_input_builtins.wgsl.expected.wgsl
rename to test/tint/types/functions/shader_io/fragment_input_builtins.wgsl.expected.wgsl
diff --git a/test/tint/shader_io/fragment_input_builtins_struct.wgsl b/test/tint/types/functions/shader_io/fragment_input_builtins_struct.wgsl
similarity index 100%
rename from test/tint/shader_io/fragment_input_builtins_struct.wgsl
rename to test/tint/types/functions/shader_io/fragment_input_builtins_struct.wgsl
diff --git a/test/tint/shader_io/fragment_input_builtins_struct.wgsl.expected.dxc.hlsl b/test/tint/types/functions/shader_io/fragment_input_builtins_struct.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/shader_io/fragment_input_builtins_struct.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/shader_io/fragment_input_builtins_struct.wgsl.expected.dxc.hlsl
diff --git a/test/tint/shader_io/fragment_input_builtins_struct.wgsl.expected.fxc.hlsl b/test/tint/types/functions/shader_io/fragment_input_builtins_struct.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/shader_io/fragment_input_builtins_struct.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/shader_io/fragment_input_builtins_struct.wgsl.expected.fxc.hlsl
diff --git a/test/tint/shader_io/fragment_input_builtins_struct.wgsl.expected.glsl b/test/tint/types/functions/shader_io/fragment_input_builtins_struct.wgsl.expected.glsl
similarity index 100%
rename from test/tint/shader_io/fragment_input_builtins_struct.wgsl.expected.glsl
rename to test/tint/types/functions/shader_io/fragment_input_builtins_struct.wgsl.expected.glsl
diff --git a/test/tint/shader_io/fragment_input_builtins_struct.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/fragment_input_builtins_struct.wgsl.expected.ir.msl
similarity index 100%
rename from test/tint/shader_io/fragment_input_builtins_struct.wgsl.expected.ir.msl
rename to test/tint/types/functions/shader_io/fragment_input_builtins_struct.wgsl.expected.ir.msl
diff --git a/test/tint/shader_io/fragment_input_builtins_struct.wgsl.expected.msl b/test/tint/types/functions/shader_io/fragment_input_builtins_struct.wgsl.expected.msl
similarity index 100%
rename from test/tint/shader_io/fragment_input_builtins_struct.wgsl.expected.msl
rename to test/tint/types/functions/shader_io/fragment_input_builtins_struct.wgsl.expected.msl
diff --git a/test/tint/shader_io/fragment_input_builtins_struct.wgsl.expected.spvasm b/test/tint/types/functions/shader_io/fragment_input_builtins_struct.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/shader_io/fragment_input_builtins_struct.wgsl.expected.spvasm
rename to test/tint/types/functions/shader_io/fragment_input_builtins_struct.wgsl.expected.spvasm
diff --git a/test/tint/shader_io/fragment_input_builtins_struct.wgsl.expected.wgsl b/test/tint/types/functions/shader_io/fragment_input_builtins_struct.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/shader_io/fragment_input_builtins_struct.wgsl.expected.wgsl
rename to test/tint/types/functions/shader_io/fragment_input_builtins_struct.wgsl.expected.wgsl
diff --git a/test/tint/shader_io/fragment_input_locations.wgsl b/test/tint/types/functions/shader_io/fragment_input_locations.wgsl
similarity index 100%
rename from test/tint/shader_io/fragment_input_locations.wgsl
rename to test/tint/types/functions/shader_io/fragment_input_locations.wgsl
diff --git a/test/tint/shader_io/fragment_input_locations.wgsl.expected.dxc.hlsl b/test/tint/types/functions/shader_io/fragment_input_locations.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/shader_io/fragment_input_locations.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/shader_io/fragment_input_locations.wgsl.expected.dxc.hlsl
diff --git a/test/tint/shader_io/fragment_input_locations.wgsl.expected.fxc.hlsl b/test/tint/types/functions/shader_io/fragment_input_locations.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/shader_io/fragment_input_locations.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/shader_io/fragment_input_locations.wgsl.expected.fxc.hlsl
diff --git a/test/tint/shader_io/fragment_input_locations.wgsl.expected.glsl b/test/tint/types/functions/shader_io/fragment_input_locations.wgsl.expected.glsl
similarity index 100%
rename from test/tint/shader_io/fragment_input_locations.wgsl.expected.glsl
rename to test/tint/types/functions/shader_io/fragment_input_locations.wgsl.expected.glsl
diff --git a/test/tint/shader_io/fragment_input_locations.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/fragment_input_locations.wgsl.expected.ir.msl
similarity index 100%
rename from test/tint/shader_io/fragment_input_locations.wgsl.expected.ir.msl
rename to test/tint/types/functions/shader_io/fragment_input_locations.wgsl.expected.ir.msl
diff --git a/test/tint/shader_io/fragment_input_locations.wgsl.expected.msl b/test/tint/types/functions/shader_io/fragment_input_locations.wgsl.expected.msl
similarity index 100%
rename from test/tint/shader_io/fragment_input_locations.wgsl.expected.msl
rename to test/tint/types/functions/shader_io/fragment_input_locations.wgsl.expected.msl
diff --git a/test/tint/shader_io/fragment_input_locations.wgsl.expected.spvasm b/test/tint/types/functions/shader_io/fragment_input_locations.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/shader_io/fragment_input_locations.wgsl.expected.spvasm
rename to test/tint/types/functions/shader_io/fragment_input_locations.wgsl.expected.spvasm
diff --git a/test/tint/shader_io/fragment_input_locations.wgsl.expected.wgsl b/test/tint/types/functions/shader_io/fragment_input_locations.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/shader_io/fragment_input_locations.wgsl.expected.wgsl
rename to test/tint/types/functions/shader_io/fragment_input_locations.wgsl.expected.wgsl
diff --git a/test/tint/shader_io/fragment_input_locations_f16.wgsl b/test/tint/types/functions/shader_io/fragment_input_locations_f16.wgsl
similarity index 100%
rename from test/tint/shader_io/fragment_input_locations_f16.wgsl
rename to test/tint/types/functions/shader_io/fragment_input_locations_f16.wgsl
diff --git a/test/tint/shader_io/fragment_input_locations_f16.wgsl.expected.dxc.hlsl b/test/tint/types/functions/shader_io/fragment_input_locations_f16.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/shader_io/fragment_input_locations_f16.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/shader_io/fragment_input_locations_f16.wgsl.expected.dxc.hlsl
diff --git a/test/tint/shader_io/fragment_input_locations_f16.wgsl.expected.fxc.hlsl b/test/tint/types/functions/shader_io/fragment_input_locations_f16.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/shader_io/fragment_input_locations_f16.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/shader_io/fragment_input_locations_f16.wgsl.expected.fxc.hlsl
diff --git a/test/tint/shader_io/fragment_input_locations_f16.wgsl.expected.glsl b/test/tint/types/functions/shader_io/fragment_input_locations_f16.wgsl.expected.glsl
similarity index 100%
rename from test/tint/shader_io/fragment_input_locations_f16.wgsl.expected.glsl
rename to test/tint/types/functions/shader_io/fragment_input_locations_f16.wgsl.expected.glsl
diff --git a/test/tint/shader_io/fragment_input_locations_f16.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/fragment_input_locations_f16.wgsl.expected.ir.msl
similarity index 100%
rename from test/tint/shader_io/fragment_input_locations_f16.wgsl.expected.ir.msl
rename to test/tint/types/functions/shader_io/fragment_input_locations_f16.wgsl.expected.ir.msl
diff --git a/test/tint/shader_io/fragment_input_locations_f16.wgsl.expected.msl b/test/tint/types/functions/shader_io/fragment_input_locations_f16.wgsl.expected.msl
similarity index 100%
rename from test/tint/shader_io/fragment_input_locations_f16.wgsl.expected.msl
rename to test/tint/types/functions/shader_io/fragment_input_locations_f16.wgsl.expected.msl
diff --git a/test/tint/shader_io/fragment_input_locations_f16.wgsl.expected.spvasm b/test/tint/types/functions/shader_io/fragment_input_locations_f16.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/shader_io/fragment_input_locations_f16.wgsl.expected.spvasm
rename to test/tint/types/functions/shader_io/fragment_input_locations_f16.wgsl.expected.spvasm
diff --git a/test/tint/shader_io/fragment_input_locations_f16.wgsl.expected.wgsl b/test/tint/types/functions/shader_io/fragment_input_locations_f16.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/shader_io/fragment_input_locations_f16.wgsl.expected.wgsl
rename to test/tint/types/functions/shader_io/fragment_input_locations_f16.wgsl.expected.wgsl
diff --git a/test/tint/shader_io/fragment_input_locations_struct.wgsl b/test/tint/types/functions/shader_io/fragment_input_locations_struct.wgsl
similarity index 100%
rename from test/tint/shader_io/fragment_input_locations_struct.wgsl
rename to test/tint/types/functions/shader_io/fragment_input_locations_struct.wgsl
diff --git a/test/tint/shader_io/fragment_input_locations_struct.wgsl.expected.dxc.hlsl b/test/tint/types/functions/shader_io/fragment_input_locations_struct.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/shader_io/fragment_input_locations_struct.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/shader_io/fragment_input_locations_struct.wgsl.expected.dxc.hlsl
diff --git a/test/tint/shader_io/fragment_input_locations_struct.wgsl.expected.fxc.hlsl b/test/tint/types/functions/shader_io/fragment_input_locations_struct.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/shader_io/fragment_input_locations_struct.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/shader_io/fragment_input_locations_struct.wgsl.expected.fxc.hlsl
diff --git a/test/tint/shader_io/fragment_input_locations_struct.wgsl.expected.glsl b/test/tint/types/functions/shader_io/fragment_input_locations_struct.wgsl.expected.glsl
similarity index 100%
rename from test/tint/shader_io/fragment_input_locations_struct.wgsl.expected.glsl
rename to test/tint/types/functions/shader_io/fragment_input_locations_struct.wgsl.expected.glsl
diff --git a/test/tint/shader_io/fragment_input_locations_struct.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/fragment_input_locations_struct.wgsl.expected.ir.msl
similarity index 100%
rename from test/tint/shader_io/fragment_input_locations_struct.wgsl.expected.ir.msl
rename to test/tint/types/functions/shader_io/fragment_input_locations_struct.wgsl.expected.ir.msl
diff --git a/test/tint/shader_io/fragment_input_locations_struct.wgsl.expected.msl b/test/tint/types/functions/shader_io/fragment_input_locations_struct.wgsl.expected.msl
similarity index 100%
rename from test/tint/shader_io/fragment_input_locations_struct.wgsl.expected.msl
rename to test/tint/types/functions/shader_io/fragment_input_locations_struct.wgsl.expected.msl
diff --git a/test/tint/shader_io/fragment_input_locations_struct.wgsl.expected.spvasm b/test/tint/types/functions/shader_io/fragment_input_locations_struct.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/shader_io/fragment_input_locations_struct.wgsl.expected.spvasm
rename to test/tint/types/functions/shader_io/fragment_input_locations_struct.wgsl.expected.spvasm
diff --git a/test/tint/shader_io/fragment_input_locations_struct.wgsl.expected.wgsl b/test/tint/types/functions/shader_io/fragment_input_locations_struct.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/shader_io/fragment_input_locations_struct.wgsl.expected.wgsl
rename to test/tint/types/functions/shader_io/fragment_input_locations_struct.wgsl.expected.wgsl
diff --git a/test/tint/shader_io/fragment_input_locations_struct_f16.wgsl b/test/tint/types/functions/shader_io/fragment_input_locations_struct_f16.wgsl
similarity index 100%
rename from test/tint/shader_io/fragment_input_locations_struct_f16.wgsl
rename to test/tint/types/functions/shader_io/fragment_input_locations_struct_f16.wgsl
diff --git a/test/tint/shader_io/fragment_input_locations_struct_f16.wgsl.expected.dxc.hlsl b/test/tint/types/functions/shader_io/fragment_input_locations_struct_f16.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/shader_io/fragment_input_locations_struct_f16.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/shader_io/fragment_input_locations_struct_f16.wgsl.expected.dxc.hlsl
diff --git a/test/tint/shader_io/fragment_input_locations_struct_f16.wgsl.expected.fxc.hlsl b/test/tint/types/functions/shader_io/fragment_input_locations_struct_f16.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/shader_io/fragment_input_locations_struct_f16.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/shader_io/fragment_input_locations_struct_f16.wgsl.expected.fxc.hlsl
diff --git a/test/tint/shader_io/fragment_input_locations_struct_f16.wgsl.expected.glsl b/test/tint/types/functions/shader_io/fragment_input_locations_struct_f16.wgsl.expected.glsl
similarity index 100%
rename from test/tint/shader_io/fragment_input_locations_struct_f16.wgsl.expected.glsl
rename to test/tint/types/functions/shader_io/fragment_input_locations_struct_f16.wgsl.expected.glsl
diff --git a/test/tint/shader_io/fragment_input_locations_struct_f16.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/fragment_input_locations_struct_f16.wgsl.expected.ir.msl
similarity index 100%
rename from test/tint/shader_io/fragment_input_locations_struct_f16.wgsl.expected.ir.msl
rename to test/tint/types/functions/shader_io/fragment_input_locations_struct_f16.wgsl.expected.ir.msl
diff --git a/test/tint/shader_io/fragment_input_locations_struct_f16.wgsl.expected.msl b/test/tint/types/functions/shader_io/fragment_input_locations_struct_f16.wgsl.expected.msl
similarity index 100%
rename from test/tint/shader_io/fragment_input_locations_struct_f16.wgsl.expected.msl
rename to test/tint/types/functions/shader_io/fragment_input_locations_struct_f16.wgsl.expected.msl
diff --git a/test/tint/shader_io/fragment_input_locations_struct_f16.wgsl.expected.spvasm b/test/tint/types/functions/shader_io/fragment_input_locations_struct_f16.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/shader_io/fragment_input_locations_struct_f16.wgsl.expected.spvasm
rename to test/tint/types/functions/shader_io/fragment_input_locations_struct_f16.wgsl.expected.spvasm
diff --git a/test/tint/shader_io/fragment_input_locations_struct_f16.wgsl.expected.wgsl b/test/tint/types/functions/shader_io/fragment_input_locations_struct_f16.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/shader_io/fragment_input_locations_struct_f16.wgsl.expected.wgsl
rename to test/tint/types/functions/shader_io/fragment_input_locations_struct_f16.wgsl.expected.wgsl
diff --git a/test/tint/shader_io/fragment_input_mixed.wgsl b/test/tint/types/functions/shader_io/fragment_input_mixed.wgsl
similarity index 100%
rename from test/tint/shader_io/fragment_input_mixed.wgsl
rename to test/tint/types/functions/shader_io/fragment_input_mixed.wgsl
diff --git a/test/tint/shader_io/fragment_input_mixed.wgsl.expected.dxc.hlsl b/test/tint/types/functions/shader_io/fragment_input_mixed.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/shader_io/fragment_input_mixed.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/shader_io/fragment_input_mixed.wgsl.expected.dxc.hlsl
diff --git a/test/tint/shader_io/fragment_input_mixed.wgsl.expected.fxc.hlsl b/test/tint/types/functions/shader_io/fragment_input_mixed.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/shader_io/fragment_input_mixed.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/shader_io/fragment_input_mixed.wgsl.expected.fxc.hlsl
diff --git a/test/tint/shader_io/fragment_input_mixed.wgsl.expected.glsl b/test/tint/types/functions/shader_io/fragment_input_mixed.wgsl.expected.glsl
similarity index 100%
rename from test/tint/shader_io/fragment_input_mixed.wgsl.expected.glsl
rename to test/tint/types/functions/shader_io/fragment_input_mixed.wgsl.expected.glsl
diff --git a/test/tint/shader_io/fragment_input_mixed.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/fragment_input_mixed.wgsl.expected.ir.msl
similarity index 100%
rename from test/tint/shader_io/fragment_input_mixed.wgsl.expected.ir.msl
rename to test/tint/types/functions/shader_io/fragment_input_mixed.wgsl.expected.ir.msl
diff --git a/test/tint/shader_io/fragment_input_mixed.wgsl.expected.msl b/test/tint/types/functions/shader_io/fragment_input_mixed.wgsl.expected.msl
similarity index 100%
rename from test/tint/shader_io/fragment_input_mixed.wgsl.expected.msl
rename to test/tint/types/functions/shader_io/fragment_input_mixed.wgsl.expected.msl
diff --git a/test/tint/shader_io/fragment_input_mixed.wgsl.expected.spvasm b/test/tint/types/functions/shader_io/fragment_input_mixed.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/shader_io/fragment_input_mixed.wgsl.expected.spvasm
rename to test/tint/types/functions/shader_io/fragment_input_mixed.wgsl.expected.spvasm
diff --git a/test/tint/shader_io/fragment_input_mixed.wgsl.expected.wgsl b/test/tint/types/functions/shader_io/fragment_input_mixed.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/shader_io/fragment_input_mixed.wgsl.expected.wgsl
rename to test/tint/types/functions/shader_io/fragment_input_mixed.wgsl.expected.wgsl
diff --git a/test/tint/shader_io/fragment_input_mixed_f16.wgsl b/test/tint/types/functions/shader_io/fragment_input_mixed_f16.wgsl
similarity index 100%
rename from test/tint/shader_io/fragment_input_mixed_f16.wgsl
rename to test/tint/types/functions/shader_io/fragment_input_mixed_f16.wgsl
diff --git a/test/tint/shader_io/fragment_input_mixed_f16.wgsl.expected.dxc.hlsl b/test/tint/types/functions/shader_io/fragment_input_mixed_f16.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/shader_io/fragment_input_mixed_f16.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/shader_io/fragment_input_mixed_f16.wgsl.expected.dxc.hlsl
diff --git a/test/tint/shader_io/fragment_input_mixed_f16.wgsl.expected.fxc.hlsl b/test/tint/types/functions/shader_io/fragment_input_mixed_f16.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/shader_io/fragment_input_mixed_f16.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/shader_io/fragment_input_mixed_f16.wgsl.expected.fxc.hlsl
diff --git a/test/tint/shader_io/fragment_input_mixed_f16.wgsl.expected.glsl b/test/tint/types/functions/shader_io/fragment_input_mixed_f16.wgsl.expected.glsl
similarity index 100%
rename from test/tint/shader_io/fragment_input_mixed_f16.wgsl.expected.glsl
rename to test/tint/types/functions/shader_io/fragment_input_mixed_f16.wgsl.expected.glsl
diff --git a/test/tint/shader_io/fragment_input_mixed_f16.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/fragment_input_mixed_f16.wgsl.expected.ir.msl
similarity index 100%
rename from test/tint/shader_io/fragment_input_mixed_f16.wgsl.expected.ir.msl
rename to test/tint/types/functions/shader_io/fragment_input_mixed_f16.wgsl.expected.ir.msl
diff --git a/test/tint/shader_io/fragment_input_mixed_f16.wgsl.expected.msl b/test/tint/types/functions/shader_io/fragment_input_mixed_f16.wgsl.expected.msl
similarity index 100%
rename from test/tint/shader_io/fragment_input_mixed_f16.wgsl.expected.msl
rename to test/tint/types/functions/shader_io/fragment_input_mixed_f16.wgsl.expected.msl
diff --git a/test/tint/shader_io/fragment_input_mixed_f16.wgsl.expected.spvasm b/test/tint/types/functions/shader_io/fragment_input_mixed_f16.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/shader_io/fragment_input_mixed_f16.wgsl.expected.spvasm
rename to test/tint/types/functions/shader_io/fragment_input_mixed_f16.wgsl.expected.spvasm
diff --git a/test/tint/shader_io/fragment_input_mixed_f16.wgsl.expected.wgsl b/test/tint/types/functions/shader_io/fragment_input_mixed_f16.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/shader_io/fragment_input_mixed_f16.wgsl.expected.wgsl
rename to test/tint/types/functions/shader_io/fragment_input_mixed_f16.wgsl.expected.wgsl
diff --git a/test/tint/shader_io/fragment_output_builtins.wgsl b/test/tint/types/functions/shader_io/fragment_output_builtins.wgsl
similarity index 100%
rename from test/tint/shader_io/fragment_output_builtins.wgsl
rename to test/tint/types/functions/shader_io/fragment_output_builtins.wgsl
diff --git a/test/tint/shader_io/fragment_output_builtins.wgsl.expected.dxc.hlsl b/test/tint/types/functions/shader_io/fragment_output_builtins.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/shader_io/fragment_output_builtins.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/shader_io/fragment_output_builtins.wgsl.expected.dxc.hlsl
diff --git a/test/tint/shader_io/fragment_output_builtins.wgsl.expected.fxc.hlsl b/test/tint/types/functions/shader_io/fragment_output_builtins.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/shader_io/fragment_output_builtins.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/shader_io/fragment_output_builtins.wgsl.expected.fxc.hlsl
diff --git a/test/tint/shader_io/fragment_output_builtins.wgsl.expected.glsl b/test/tint/types/functions/shader_io/fragment_output_builtins.wgsl.expected.glsl
similarity index 100%
rename from test/tint/shader_io/fragment_output_builtins.wgsl.expected.glsl
rename to test/tint/types/functions/shader_io/fragment_output_builtins.wgsl.expected.glsl
diff --git a/test/tint/shader_io/fragment_output_builtins.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/fragment_output_builtins.wgsl.expected.ir.msl
similarity index 76%
rename from test/tint/shader_io/fragment_output_builtins.wgsl.expected.ir.msl
rename to test/tint/types/functions/shader_io/fragment_output_builtins.wgsl.expected.ir.msl
index f289cfb..30e0bd9 100644
--- a/test/tint/shader_io/fragment_output_builtins.wgsl.expected.ir.msl
+++ b/test/tint/types/functions/shader_io/fragment_output_builtins.wgsl.expected.ir.msl
@@ -1,3 +1,7 @@
+SKIP: FAILED
+
+### Missing output value
+
 #include <metal_stdlib>
 using namespace metal;
 
diff --git a/test/tint/shader_io/fragment_output_builtins.wgsl.expected.msl b/test/tint/types/functions/shader_io/fragment_output_builtins.wgsl.expected.msl
similarity index 100%
rename from test/tint/shader_io/fragment_output_builtins.wgsl.expected.msl
rename to test/tint/types/functions/shader_io/fragment_output_builtins.wgsl.expected.msl
diff --git a/test/tint/shader_io/fragment_output_builtins.wgsl.expected.spvasm b/test/tint/types/functions/shader_io/fragment_output_builtins.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/shader_io/fragment_output_builtins.wgsl.expected.spvasm
rename to test/tint/types/functions/shader_io/fragment_output_builtins.wgsl.expected.spvasm
diff --git a/test/tint/shader_io/fragment_output_builtins.wgsl.expected.wgsl b/test/tint/types/functions/shader_io/fragment_output_builtins.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/shader_io/fragment_output_builtins.wgsl.expected.wgsl
rename to test/tint/types/functions/shader_io/fragment_output_builtins.wgsl.expected.wgsl
diff --git a/test/tint/shader_io/fragment_output_builtins_struct.wgsl b/test/tint/types/functions/shader_io/fragment_output_builtins_struct.wgsl
similarity index 100%
rename from test/tint/shader_io/fragment_output_builtins_struct.wgsl
rename to test/tint/types/functions/shader_io/fragment_output_builtins_struct.wgsl
diff --git a/test/tint/shader_io/fragment_output_builtins_struct.wgsl.expected.dxc.hlsl b/test/tint/types/functions/shader_io/fragment_output_builtins_struct.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/shader_io/fragment_output_builtins_struct.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/shader_io/fragment_output_builtins_struct.wgsl.expected.dxc.hlsl
diff --git a/test/tint/shader_io/fragment_output_builtins_struct.wgsl.expected.fxc.hlsl b/test/tint/types/functions/shader_io/fragment_output_builtins_struct.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/shader_io/fragment_output_builtins_struct.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/shader_io/fragment_output_builtins_struct.wgsl.expected.fxc.hlsl
diff --git a/test/tint/shader_io/fragment_output_builtins_struct.wgsl.expected.glsl b/test/tint/types/functions/shader_io/fragment_output_builtins_struct.wgsl.expected.glsl
similarity index 100%
rename from test/tint/shader_io/fragment_output_builtins_struct.wgsl.expected.glsl
rename to test/tint/types/functions/shader_io/fragment_output_builtins_struct.wgsl.expected.glsl
diff --git a/test/tint/shader_io/fragment_output_builtins_struct.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/fragment_output_builtins_struct.wgsl.expected.ir.msl
similarity index 100%
rename from test/tint/shader_io/fragment_output_builtins_struct.wgsl.expected.ir.msl
rename to test/tint/types/functions/shader_io/fragment_output_builtins_struct.wgsl.expected.ir.msl
diff --git a/test/tint/shader_io/fragment_output_builtins_struct.wgsl.expected.msl b/test/tint/types/functions/shader_io/fragment_output_builtins_struct.wgsl.expected.msl
similarity index 100%
rename from test/tint/shader_io/fragment_output_builtins_struct.wgsl.expected.msl
rename to test/tint/types/functions/shader_io/fragment_output_builtins_struct.wgsl.expected.msl
diff --git a/test/tint/shader_io/fragment_output_builtins_struct.wgsl.expected.spvasm b/test/tint/types/functions/shader_io/fragment_output_builtins_struct.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/shader_io/fragment_output_builtins_struct.wgsl.expected.spvasm
rename to test/tint/types/functions/shader_io/fragment_output_builtins_struct.wgsl.expected.spvasm
diff --git a/test/tint/shader_io/fragment_output_builtins_struct.wgsl.expected.wgsl b/test/tint/types/functions/shader_io/fragment_output_builtins_struct.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/shader_io/fragment_output_builtins_struct.wgsl.expected.wgsl
rename to test/tint/types/functions/shader_io/fragment_output_builtins_struct.wgsl.expected.wgsl
diff --git a/test/tint/shader_io/fragment_output_locations.wgsl b/test/tint/types/functions/shader_io/fragment_output_locations.wgsl
similarity index 100%
rename from test/tint/shader_io/fragment_output_locations.wgsl
rename to test/tint/types/functions/shader_io/fragment_output_locations.wgsl
diff --git a/test/tint/shader_io/fragment_output_locations.wgsl.expected.dxc.hlsl b/test/tint/types/functions/shader_io/fragment_output_locations.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/shader_io/fragment_output_locations.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/shader_io/fragment_output_locations.wgsl.expected.dxc.hlsl
diff --git a/test/tint/shader_io/fragment_output_locations.wgsl.expected.fxc.hlsl b/test/tint/types/functions/shader_io/fragment_output_locations.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/shader_io/fragment_output_locations.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/shader_io/fragment_output_locations.wgsl.expected.fxc.hlsl
diff --git a/test/tint/shader_io/fragment_output_locations.wgsl.expected.glsl b/test/tint/types/functions/shader_io/fragment_output_locations.wgsl.expected.glsl
similarity index 100%
rename from test/tint/shader_io/fragment_output_locations.wgsl.expected.glsl
rename to test/tint/types/functions/shader_io/fragment_output_locations.wgsl.expected.glsl
diff --git a/test/tint/shader_io/fragment_output_locations.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/fragment_output_locations.wgsl.expected.ir.msl
similarity index 86%
rename from test/tint/shader_io/fragment_output_locations.wgsl.expected.ir.msl
rename to test/tint/types/functions/shader_io/fragment_output_locations.wgsl.expected.ir.msl
index 6d20c629..c26064f 100644
--- a/test/tint/shader_io/fragment_output_locations.wgsl.expected.ir.msl
+++ b/test/tint/types/functions/shader_io/fragment_output_locations.wgsl.expected.ir.msl
@@ -1,3 +1,7 @@
+SKIP FAILED
+
+### Missing locations
+
 #include <metal_stdlib>
 using namespace metal;
 
diff --git a/test/tint/shader_io/fragment_output_locations.wgsl.expected.msl b/test/tint/types/functions/shader_io/fragment_output_locations.wgsl.expected.msl
similarity index 100%
rename from test/tint/shader_io/fragment_output_locations.wgsl.expected.msl
rename to test/tint/types/functions/shader_io/fragment_output_locations.wgsl.expected.msl
diff --git a/test/tint/shader_io/fragment_output_locations.wgsl.expected.spvasm b/test/tint/types/functions/shader_io/fragment_output_locations.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/shader_io/fragment_output_locations.wgsl.expected.spvasm
rename to test/tint/types/functions/shader_io/fragment_output_locations.wgsl.expected.spvasm
diff --git a/test/tint/shader_io/fragment_output_locations.wgsl.expected.wgsl b/test/tint/types/functions/shader_io/fragment_output_locations.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/shader_io/fragment_output_locations.wgsl.expected.wgsl
rename to test/tint/types/functions/shader_io/fragment_output_locations.wgsl.expected.wgsl
diff --git a/test/tint/shader_io/fragment_output_locations_f16.wgsl b/test/tint/types/functions/shader_io/fragment_output_locations_f16.wgsl
similarity index 100%
rename from test/tint/shader_io/fragment_output_locations_f16.wgsl
rename to test/tint/types/functions/shader_io/fragment_output_locations_f16.wgsl
diff --git a/test/tint/shader_io/fragment_output_locations_f16.wgsl.expected.dxc.hlsl b/test/tint/types/functions/shader_io/fragment_output_locations_f16.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/shader_io/fragment_output_locations_f16.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/shader_io/fragment_output_locations_f16.wgsl.expected.dxc.hlsl
diff --git a/test/tint/shader_io/fragment_output_locations_f16.wgsl.expected.fxc.hlsl b/test/tint/types/functions/shader_io/fragment_output_locations_f16.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/shader_io/fragment_output_locations_f16.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/shader_io/fragment_output_locations_f16.wgsl.expected.fxc.hlsl
diff --git a/test/tint/shader_io/fragment_output_locations_f16.wgsl.expected.glsl b/test/tint/types/functions/shader_io/fragment_output_locations_f16.wgsl.expected.glsl
similarity index 100%
rename from test/tint/shader_io/fragment_output_locations_f16.wgsl.expected.glsl
rename to test/tint/types/functions/shader_io/fragment_output_locations_f16.wgsl.expected.glsl
diff --git a/test/tint/shader_io/fragment_output_locations_f16.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/fragment_output_locations_f16.wgsl.expected.ir.msl
similarity index 89%
rename from test/tint/shader_io/fragment_output_locations_f16.wgsl.expected.ir.msl
rename to test/tint/types/functions/shader_io/fragment_output_locations_f16.wgsl.expected.ir.msl
index 148a978..1e9c88b 100644
--- a/test/tint/shader_io/fragment_output_locations_f16.wgsl.expected.ir.msl
+++ b/test/tint/types/functions/shader_io/fragment_output_locations_f16.wgsl.expected.ir.msl
@@ -1,3 +1,7 @@
+SKIP: FAILED
+
+### Missing locations
+
 #include <metal_stdlib>
 using namespace metal;
 
diff --git a/test/tint/shader_io/fragment_output_locations_f16.wgsl.expected.msl b/test/tint/types/functions/shader_io/fragment_output_locations_f16.wgsl.expected.msl
similarity index 100%
rename from test/tint/shader_io/fragment_output_locations_f16.wgsl.expected.msl
rename to test/tint/types/functions/shader_io/fragment_output_locations_f16.wgsl.expected.msl
diff --git a/test/tint/shader_io/fragment_output_locations_f16.wgsl.expected.spvasm b/test/tint/types/functions/shader_io/fragment_output_locations_f16.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/shader_io/fragment_output_locations_f16.wgsl.expected.spvasm
rename to test/tint/types/functions/shader_io/fragment_output_locations_f16.wgsl.expected.spvasm
diff --git a/test/tint/shader_io/fragment_output_locations_f16.wgsl.expected.wgsl b/test/tint/types/functions/shader_io/fragment_output_locations_f16.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/shader_io/fragment_output_locations_f16.wgsl.expected.wgsl
rename to test/tint/types/functions/shader_io/fragment_output_locations_f16.wgsl.expected.wgsl
diff --git a/test/tint/shader_io/fragment_output_locations_struct.wgsl b/test/tint/types/functions/shader_io/fragment_output_locations_struct.wgsl
similarity index 100%
rename from test/tint/shader_io/fragment_output_locations_struct.wgsl
rename to test/tint/types/functions/shader_io/fragment_output_locations_struct.wgsl
diff --git a/test/tint/shader_io/fragment_output_locations_struct.wgsl.expected.dxc.hlsl b/test/tint/types/functions/shader_io/fragment_output_locations_struct.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/shader_io/fragment_output_locations_struct.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/shader_io/fragment_output_locations_struct.wgsl.expected.dxc.hlsl
diff --git a/test/tint/shader_io/fragment_output_locations_struct.wgsl.expected.fxc.hlsl b/test/tint/types/functions/shader_io/fragment_output_locations_struct.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/shader_io/fragment_output_locations_struct.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/shader_io/fragment_output_locations_struct.wgsl.expected.fxc.hlsl
diff --git a/test/tint/shader_io/fragment_output_locations_struct.wgsl.expected.glsl b/test/tint/types/functions/shader_io/fragment_output_locations_struct.wgsl.expected.glsl
similarity index 100%
rename from test/tint/shader_io/fragment_output_locations_struct.wgsl.expected.glsl
rename to test/tint/types/functions/shader_io/fragment_output_locations_struct.wgsl.expected.glsl
diff --git a/test/tint/shader_io/fragment_output_locations_struct.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/fragment_output_locations_struct.wgsl.expected.ir.msl
similarity index 100%
rename from test/tint/shader_io/fragment_output_locations_struct.wgsl.expected.ir.msl
rename to test/tint/types/functions/shader_io/fragment_output_locations_struct.wgsl.expected.ir.msl
diff --git a/test/tint/shader_io/fragment_output_locations_struct.wgsl.expected.msl b/test/tint/types/functions/shader_io/fragment_output_locations_struct.wgsl.expected.msl
similarity index 100%
rename from test/tint/shader_io/fragment_output_locations_struct.wgsl.expected.msl
rename to test/tint/types/functions/shader_io/fragment_output_locations_struct.wgsl.expected.msl
diff --git a/test/tint/shader_io/fragment_output_locations_struct.wgsl.expected.spvasm b/test/tint/types/functions/shader_io/fragment_output_locations_struct.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/shader_io/fragment_output_locations_struct.wgsl.expected.spvasm
rename to test/tint/types/functions/shader_io/fragment_output_locations_struct.wgsl.expected.spvasm
diff --git a/test/tint/shader_io/fragment_output_locations_struct.wgsl.expected.wgsl b/test/tint/types/functions/shader_io/fragment_output_locations_struct.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/shader_io/fragment_output_locations_struct.wgsl.expected.wgsl
rename to test/tint/types/functions/shader_io/fragment_output_locations_struct.wgsl.expected.wgsl
diff --git a/test/tint/shader_io/fragment_output_locations_struct_f16.wgsl b/test/tint/types/functions/shader_io/fragment_output_locations_struct_f16.wgsl
similarity index 100%
rename from test/tint/shader_io/fragment_output_locations_struct_f16.wgsl
rename to test/tint/types/functions/shader_io/fragment_output_locations_struct_f16.wgsl
diff --git a/test/tint/shader_io/fragment_output_locations_struct_f16.wgsl.expected.dxc.hlsl b/test/tint/types/functions/shader_io/fragment_output_locations_struct_f16.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/shader_io/fragment_output_locations_struct_f16.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/shader_io/fragment_output_locations_struct_f16.wgsl.expected.dxc.hlsl
diff --git a/test/tint/shader_io/fragment_output_locations_struct_f16.wgsl.expected.fxc.hlsl b/test/tint/types/functions/shader_io/fragment_output_locations_struct_f16.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/shader_io/fragment_output_locations_struct_f16.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/shader_io/fragment_output_locations_struct_f16.wgsl.expected.fxc.hlsl
diff --git a/test/tint/shader_io/fragment_output_locations_struct_f16.wgsl.expected.glsl b/test/tint/types/functions/shader_io/fragment_output_locations_struct_f16.wgsl.expected.glsl
similarity index 100%
rename from test/tint/shader_io/fragment_output_locations_struct_f16.wgsl.expected.glsl
rename to test/tint/types/functions/shader_io/fragment_output_locations_struct_f16.wgsl.expected.glsl
diff --git a/test/tint/shader_io/fragment_output_locations_struct_f16.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/fragment_output_locations_struct_f16.wgsl.expected.ir.msl
similarity index 100%
rename from test/tint/shader_io/fragment_output_locations_struct_f16.wgsl.expected.ir.msl
rename to test/tint/types/functions/shader_io/fragment_output_locations_struct_f16.wgsl.expected.ir.msl
diff --git a/test/tint/shader_io/fragment_output_locations_struct_f16.wgsl.expected.msl b/test/tint/types/functions/shader_io/fragment_output_locations_struct_f16.wgsl.expected.msl
similarity index 100%
rename from test/tint/shader_io/fragment_output_locations_struct_f16.wgsl.expected.msl
rename to test/tint/types/functions/shader_io/fragment_output_locations_struct_f16.wgsl.expected.msl
diff --git a/test/tint/shader_io/fragment_output_locations_struct_f16.wgsl.expected.spvasm b/test/tint/types/functions/shader_io/fragment_output_locations_struct_f16.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/shader_io/fragment_output_locations_struct_f16.wgsl.expected.spvasm
rename to test/tint/types/functions/shader_io/fragment_output_locations_struct_f16.wgsl.expected.spvasm
diff --git a/test/tint/shader_io/fragment_output_locations_struct_f16.wgsl.expected.wgsl b/test/tint/types/functions/shader_io/fragment_output_locations_struct_f16.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/shader_io/fragment_output_locations_struct_f16.wgsl.expected.wgsl
rename to test/tint/types/functions/shader_io/fragment_output_locations_struct_f16.wgsl.expected.wgsl
diff --git a/test/tint/shader_io/fragment_output_mixed.wgsl b/test/tint/types/functions/shader_io/fragment_output_mixed.wgsl
similarity index 100%
rename from test/tint/shader_io/fragment_output_mixed.wgsl
rename to test/tint/types/functions/shader_io/fragment_output_mixed.wgsl
diff --git a/test/tint/shader_io/fragment_output_mixed.wgsl.expected.dxc.hlsl b/test/tint/types/functions/shader_io/fragment_output_mixed.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/shader_io/fragment_output_mixed.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/shader_io/fragment_output_mixed.wgsl.expected.dxc.hlsl
diff --git a/test/tint/shader_io/fragment_output_mixed.wgsl.expected.fxc.hlsl b/test/tint/types/functions/shader_io/fragment_output_mixed.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/shader_io/fragment_output_mixed.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/shader_io/fragment_output_mixed.wgsl.expected.fxc.hlsl
diff --git a/test/tint/shader_io/fragment_output_mixed.wgsl.expected.glsl b/test/tint/types/functions/shader_io/fragment_output_mixed.wgsl.expected.glsl
similarity index 100%
rename from test/tint/shader_io/fragment_output_mixed.wgsl.expected.glsl
rename to test/tint/types/functions/shader_io/fragment_output_mixed.wgsl.expected.glsl
diff --git a/test/tint/shader_io/fragment_output_mixed.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/fragment_output_mixed.wgsl.expected.ir.msl
similarity index 100%
rename from test/tint/shader_io/fragment_output_mixed.wgsl.expected.ir.msl
rename to test/tint/types/functions/shader_io/fragment_output_mixed.wgsl.expected.ir.msl
diff --git a/test/tint/shader_io/fragment_output_mixed.wgsl.expected.msl b/test/tint/types/functions/shader_io/fragment_output_mixed.wgsl.expected.msl
similarity index 100%
rename from test/tint/shader_io/fragment_output_mixed.wgsl.expected.msl
rename to test/tint/types/functions/shader_io/fragment_output_mixed.wgsl.expected.msl
diff --git a/test/tint/shader_io/fragment_output_mixed.wgsl.expected.spvasm b/test/tint/types/functions/shader_io/fragment_output_mixed.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/shader_io/fragment_output_mixed.wgsl.expected.spvasm
rename to test/tint/types/functions/shader_io/fragment_output_mixed.wgsl.expected.spvasm
diff --git a/test/tint/shader_io/fragment_output_mixed.wgsl.expected.wgsl b/test/tint/types/functions/shader_io/fragment_output_mixed.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/shader_io/fragment_output_mixed.wgsl.expected.wgsl
rename to test/tint/types/functions/shader_io/fragment_output_mixed.wgsl.expected.wgsl
diff --git a/test/tint/shader_io/fragment_output_mixed_f16.wgsl b/test/tint/types/functions/shader_io/fragment_output_mixed_f16.wgsl
similarity index 100%
rename from test/tint/shader_io/fragment_output_mixed_f16.wgsl
rename to test/tint/types/functions/shader_io/fragment_output_mixed_f16.wgsl
diff --git a/test/tint/shader_io/fragment_output_mixed_f16.wgsl.expected.dxc.hlsl b/test/tint/types/functions/shader_io/fragment_output_mixed_f16.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/shader_io/fragment_output_mixed_f16.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/shader_io/fragment_output_mixed_f16.wgsl.expected.dxc.hlsl
diff --git a/test/tint/shader_io/fragment_output_mixed_f16.wgsl.expected.fxc.hlsl b/test/tint/types/functions/shader_io/fragment_output_mixed_f16.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/shader_io/fragment_output_mixed_f16.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/shader_io/fragment_output_mixed_f16.wgsl.expected.fxc.hlsl
diff --git a/test/tint/shader_io/fragment_output_mixed_f16.wgsl.expected.glsl b/test/tint/types/functions/shader_io/fragment_output_mixed_f16.wgsl.expected.glsl
similarity index 100%
rename from test/tint/shader_io/fragment_output_mixed_f16.wgsl.expected.glsl
rename to test/tint/types/functions/shader_io/fragment_output_mixed_f16.wgsl.expected.glsl
diff --git a/test/tint/shader_io/fragment_output_mixed_f16.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/fragment_output_mixed_f16.wgsl.expected.ir.msl
similarity index 100%
rename from test/tint/shader_io/fragment_output_mixed_f16.wgsl.expected.ir.msl
rename to test/tint/types/functions/shader_io/fragment_output_mixed_f16.wgsl.expected.ir.msl
diff --git a/test/tint/shader_io/fragment_output_mixed_f16.wgsl.expected.msl b/test/tint/types/functions/shader_io/fragment_output_mixed_f16.wgsl.expected.msl
similarity index 100%
rename from test/tint/shader_io/fragment_output_mixed_f16.wgsl.expected.msl
rename to test/tint/types/functions/shader_io/fragment_output_mixed_f16.wgsl.expected.msl
diff --git a/test/tint/shader_io/fragment_output_mixed_f16.wgsl.expected.spvasm b/test/tint/types/functions/shader_io/fragment_output_mixed_f16.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/shader_io/fragment_output_mixed_f16.wgsl.expected.spvasm
rename to test/tint/types/functions/shader_io/fragment_output_mixed_f16.wgsl.expected.spvasm
diff --git a/test/tint/shader_io/fragment_output_mixed_f16.wgsl.expected.wgsl b/test/tint/types/functions/shader_io/fragment_output_mixed_f16.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/shader_io/fragment_output_mixed_f16.wgsl.expected.wgsl
rename to test/tint/types/functions/shader_io/fragment_output_mixed_f16.wgsl.expected.wgsl
diff --git a/test/tint/shader_io/interpolate_input_parameters.wgsl b/test/tint/types/functions/shader_io/interpolate_input_parameters.wgsl
similarity index 100%
rename from test/tint/shader_io/interpolate_input_parameters.wgsl
rename to test/tint/types/functions/shader_io/interpolate_input_parameters.wgsl
diff --git a/test/tint/shader_io/interpolate_input_parameters.wgsl.expected.dxc.hlsl b/test/tint/types/functions/shader_io/interpolate_input_parameters.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/shader_io/interpolate_input_parameters.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/shader_io/interpolate_input_parameters.wgsl.expected.dxc.hlsl
diff --git a/test/tint/shader_io/interpolate_input_parameters.wgsl.expected.fxc.hlsl b/test/tint/types/functions/shader_io/interpolate_input_parameters.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/shader_io/interpolate_input_parameters.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/shader_io/interpolate_input_parameters.wgsl.expected.fxc.hlsl
diff --git a/test/tint/shader_io/interpolate_input_parameters.wgsl.expected.glsl b/test/tint/types/functions/shader_io/interpolate_input_parameters.wgsl.expected.glsl
similarity index 100%
rename from test/tint/shader_io/interpolate_input_parameters.wgsl.expected.glsl
rename to test/tint/types/functions/shader_io/interpolate_input_parameters.wgsl.expected.glsl
diff --git a/test/tint/shader_io/interpolate_input_parameters.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/interpolate_input_parameters.wgsl.expected.ir.msl
similarity index 100%
rename from test/tint/shader_io/interpolate_input_parameters.wgsl.expected.ir.msl
rename to test/tint/types/functions/shader_io/interpolate_input_parameters.wgsl.expected.ir.msl
diff --git a/test/tint/shader_io/interpolate_input_parameters.wgsl.expected.msl b/test/tint/types/functions/shader_io/interpolate_input_parameters.wgsl.expected.msl
similarity index 100%
rename from test/tint/shader_io/interpolate_input_parameters.wgsl.expected.msl
rename to test/tint/types/functions/shader_io/interpolate_input_parameters.wgsl.expected.msl
diff --git a/test/tint/shader_io/interpolate_input_parameters.wgsl.expected.spvasm b/test/tint/types/functions/shader_io/interpolate_input_parameters.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/shader_io/interpolate_input_parameters.wgsl.expected.spvasm
rename to test/tint/types/functions/shader_io/interpolate_input_parameters.wgsl.expected.spvasm
diff --git a/test/tint/shader_io/interpolate_input_parameters.wgsl.expected.wgsl b/test/tint/types/functions/shader_io/interpolate_input_parameters.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/shader_io/interpolate_input_parameters.wgsl.expected.wgsl
rename to test/tint/types/functions/shader_io/interpolate_input_parameters.wgsl.expected.wgsl
diff --git a/test/tint/shader_io/interpolate_input_struct.wgsl b/test/tint/types/functions/shader_io/interpolate_input_struct.wgsl
similarity index 100%
rename from test/tint/shader_io/interpolate_input_struct.wgsl
rename to test/tint/types/functions/shader_io/interpolate_input_struct.wgsl
diff --git a/test/tint/shader_io/interpolate_input_struct.wgsl.expected.dxc.hlsl b/test/tint/types/functions/shader_io/interpolate_input_struct.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/shader_io/interpolate_input_struct.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/shader_io/interpolate_input_struct.wgsl.expected.dxc.hlsl
diff --git a/test/tint/shader_io/interpolate_input_struct.wgsl.expected.fxc.hlsl b/test/tint/types/functions/shader_io/interpolate_input_struct.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/shader_io/interpolate_input_struct.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/shader_io/interpolate_input_struct.wgsl.expected.fxc.hlsl
diff --git a/test/tint/shader_io/interpolate_input_struct.wgsl.expected.glsl b/test/tint/types/functions/shader_io/interpolate_input_struct.wgsl.expected.glsl
similarity index 100%
rename from test/tint/shader_io/interpolate_input_struct.wgsl.expected.glsl
rename to test/tint/types/functions/shader_io/interpolate_input_struct.wgsl.expected.glsl
diff --git a/test/tint/shader_io/interpolate_input_struct.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/interpolate_input_struct.wgsl.expected.ir.msl
similarity index 100%
rename from test/tint/shader_io/interpolate_input_struct.wgsl.expected.ir.msl
rename to test/tint/types/functions/shader_io/interpolate_input_struct.wgsl.expected.ir.msl
diff --git a/test/tint/shader_io/interpolate_input_struct.wgsl.expected.msl b/test/tint/types/functions/shader_io/interpolate_input_struct.wgsl.expected.msl
similarity index 100%
rename from test/tint/shader_io/interpolate_input_struct.wgsl.expected.msl
rename to test/tint/types/functions/shader_io/interpolate_input_struct.wgsl.expected.msl
diff --git a/test/tint/shader_io/interpolate_input_struct.wgsl.expected.spvasm b/test/tint/types/functions/shader_io/interpolate_input_struct.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/shader_io/interpolate_input_struct.wgsl.expected.spvasm
rename to test/tint/types/functions/shader_io/interpolate_input_struct.wgsl.expected.spvasm
diff --git a/test/tint/shader_io/interpolate_input_struct.wgsl.expected.wgsl b/test/tint/types/functions/shader_io/interpolate_input_struct.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/shader_io/interpolate_input_struct.wgsl.expected.wgsl
rename to test/tint/types/functions/shader_io/interpolate_input_struct.wgsl.expected.wgsl
diff --git a/test/tint/shader_io/interpolate_integers.wgsl b/test/tint/types/functions/shader_io/interpolate_integers.wgsl
similarity index 100%
rename from test/tint/shader_io/interpolate_integers.wgsl
rename to test/tint/types/functions/shader_io/interpolate_integers.wgsl
diff --git a/test/tint/shader_io/interpolate_integers.wgsl.expected.dxc.hlsl b/test/tint/types/functions/shader_io/interpolate_integers.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/shader_io/interpolate_integers.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/shader_io/interpolate_integers.wgsl.expected.dxc.hlsl
diff --git a/test/tint/shader_io/interpolate_integers.wgsl.expected.fxc.hlsl b/test/tint/types/functions/shader_io/interpolate_integers.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/shader_io/interpolate_integers.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/shader_io/interpolate_integers.wgsl.expected.fxc.hlsl
diff --git a/test/tint/shader_io/interpolate_integers.wgsl.expected.glsl b/test/tint/types/functions/shader_io/interpolate_integers.wgsl.expected.glsl
similarity index 100%
rename from test/tint/shader_io/interpolate_integers.wgsl.expected.glsl
rename to test/tint/types/functions/shader_io/interpolate_integers.wgsl.expected.glsl
diff --git a/test/tint/shader_io/interpolate_integers.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/interpolate_integers.wgsl.expected.ir.msl
similarity index 100%
rename from test/tint/shader_io/interpolate_integers.wgsl.expected.ir.msl
rename to test/tint/types/functions/shader_io/interpolate_integers.wgsl.expected.ir.msl
diff --git a/test/tint/shader_io/interpolate_integers.wgsl.expected.msl b/test/tint/types/functions/shader_io/interpolate_integers.wgsl.expected.msl
similarity index 100%
rename from test/tint/shader_io/interpolate_integers.wgsl.expected.msl
rename to test/tint/types/functions/shader_io/interpolate_integers.wgsl.expected.msl
diff --git a/test/tint/shader_io/interpolate_integers.wgsl.expected.spvasm b/test/tint/types/functions/shader_io/interpolate_integers.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/shader_io/interpolate_integers.wgsl.expected.spvasm
rename to test/tint/types/functions/shader_io/interpolate_integers.wgsl.expected.spvasm
diff --git a/test/tint/shader_io/interpolate_integers.wgsl.expected.wgsl b/test/tint/types/functions/shader_io/interpolate_integers.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/shader_io/interpolate_integers.wgsl.expected.wgsl
rename to test/tint/types/functions/shader_io/interpolate_integers.wgsl.expected.wgsl
diff --git a/test/tint/shader_io/interpolate_return_struct.wgsl b/test/tint/types/functions/shader_io/interpolate_return_struct.wgsl
similarity index 100%
rename from test/tint/shader_io/interpolate_return_struct.wgsl
rename to test/tint/types/functions/shader_io/interpolate_return_struct.wgsl
diff --git a/test/tint/shader_io/interpolate_return_struct.wgsl.expected.dxc.hlsl b/test/tint/types/functions/shader_io/interpolate_return_struct.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/shader_io/interpolate_return_struct.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/shader_io/interpolate_return_struct.wgsl.expected.dxc.hlsl
diff --git a/test/tint/shader_io/interpolate_return_struct.wgsl.expected.fxc.hlsl b/test/tint/types/functions/shader_io/interpolate_return_struct.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/shader_io/interpolate_return_struct.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/shader_io/interpolate_return_struct.wgsl.expected.fxc.hlsl
diff --git a/test/tint/shader_io/interpolate_return_struct.wgsl.expected.glsl b/test/tint/types/functions/shader_io/interpolate_return_struct.wgsl.expected.glsl
similarity index 100%
rename from test/tint/shader_io/interpolate_return_struct.wgsl.expected.glsl
rename to test/tint/types/functions/shader_io/interpolate_return_struct.wgsl.expected.glsl
diff --git a/test/tint/shader_io/interpolate_return_struct.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/interpolate_return_struct.wgsl.expected.ir.msl
similarity index 100%
rename from test/tint/shader_io/interpolate_return_struct.wgsl.expected.ir.msl
rename to test/tint/types/functions/shader_io/interpolate_return_struct.wgsl.expected.ir.msl
diff --git a/test/tint/shader_io/interpolate_return_struct.wgsl.expected.msl b/test/tint/types/functions/shader_io/interpolate_return_struct.wgsl.expected.msl
similarity index 100%
rename from test/tint/shader_io/interpolate_return_struct.wgsl.expected.msl
rename to test/tint/types/functions/shader_io/interpolate_return_struct.wgsl.expected.msl
diff --git a/test/tint/shader_io/interpolate_return_struct.wgsl.expected.spvasm b/test/tint/types/functions/shader_io/interpolate_return_struct.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/shader_io/interpolate_return_struct.wgsl.expected.spvasm
rename to test/tint/types/functions/shader_io/interpolate_return_struct.wgsl.expected.spvasm
diff --git a/test/tint/shader_io/interpolate_return_struct.wgsl.expected.wgsl b/test/tint/types/functions/shader_io/interpolate_return_struct.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/shader_io/interpolate_return_struct.wgsl.expected.wgsl
rename to test/tint/types/functions/shader_io/interpolate_return_struct.wgsl.expected.wgsl
diff --git a/test/tint/shader_io/invariant.wgsl b/test/tint/types/functions/shader_io/invariant.wgsl
similarity index 100%
rename from test/tint/shader_io/invariant.wgsl
rename to test/tint/types/functions/shader_io/invariant.wgsl
diff --git a/test/tint/shader_io/invariant.wgsl.expected.dxc.hlsl b/test/tint/types/functions/shader_io/invariant.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/shader_io/invariant.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/shader_io/invariant.wgsl.expected.dxc.hlsl
diff --git a/test/tint/shader_io/invariant.wgsl.expected.fxc.hlsl b/test/tint/types/functions/shader_io/invariant.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/shader_io/invariant.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/shader_io/invariant.wgsl.expected.fxc.hlsl
diff --git a/test/tint/shader_io/invariant.wgsl.expected.glsl b/test/tint/types/functions/shader_io/invariant.wgsl.expected.glsl
similarity index 100%
rename from test/tint/shader_io/invariant.wgsl.expected.glsl
rename to test/tint/types/functions/shader_io/invariant.wgsl.expected.glsl
diff --git a/test/tint/shader_io/invariant.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/invariant.wgsl.expected.ir.msl
similarity index 73%
rename from test/tint/shader_io/invariant.wgsl.expected.ir.msl
rename to test/tint/types/functions/shader_io/invariant.wgsl.expected.ir.msl
index 453e2ef..6cea9ca 100644
--- a/test/tint/shader_io/invariant.wgsl.expected.ir.msl
+++ b/test/tint/types/functions/shader_io/invariant.wgsl.expected.ir.msl
@@ -1,3 +1,7 @@
+SKIP: FAILED
+
+### Missing invariant
+
 #include <metal_stdlib>
 using namespace metal;
 
diff --git a/test/tint/shader_io/invariant.wgsl.expected.msl b/test/tint/types/functions/shader_io/invariant.wgsl.expected.msl
similarity index 100%
rename from test/tint/shader_io/invariant.wgsl.expected.msl
rename to test/tint/types/functions/shader_io/invariant.wgsl.expected.msl
diff --git a/test/tint/shader_io/invariant.wgsl.expected.spvasm b/test/tint/types/functions/shader_io/invariant.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/shader_io/invariant.wgsl.expected.spvasm
rename to test/tint/types/functions/shader_io/invariant.wgsl.expected.spvasm
diff --git a/test/tint/shader_io/invariant.wgsl.expected.wgsl b/test/tint/types/functions/shader_io/invariant.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/shader_io/invariant.wgsl.expected.wgsl
rename to test/tint/types/functions/shader_io/invariant.wgsl.expected.wgsl
diff --git a/test/tint/shader_io/invariant_struct_member.wgsl b/test/tint/types/functions/shader_io/invariant_struct_member.wgsl
similarity index 100%
rename from test/tint/shader_io/invariant_struct_member.wgsl
rename to test/tint/types/functions/shader_io/invariant_struct_member.wgsl
diff --git a/test/tint/shader_io/invariant_struct_member.wgsl.expected.dxc.hlsl b/test/tint/types/functions/shader_io/invariant_struct_member.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/shader_io/invariant_struct_member.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/shader_io/invariant_struct_member.wgsl.expected.dxc.hlsl
diff --git a/test/tint/shader_io/invariant_struct_member.wgsl.expected.fxc.hlsl b/test/tint/types/functions/shader_io/invariant_struct_member.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/shader_io/invariant_struct_member.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/shader_io/invariant_struct_member.wgsl.expected.fxc.hlsl
diff --git a/test/tint/shader_io/invariant_struct_member.wgsl.expected.glsl b/test/tint/types/functions/shader_io/invariant_struct_member.wgsl.expected.glsl
similarity index 100%
rename from test/tint/shader_io/invariant_struct_member.wgsl.expected.glsl
rename to test/tint/types/functions/shader_io/invariant_struct_member.wgsl.expected.glsl
diff --git a/test/tint/shader_io/invariant_struct_member.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/invariant_struct_member.wgsl.expected.ir.msl
similarity index 100%
rename from test/tint/shader_io/invariant_struct_member.wgsl.expected.ir.msl
rename to test/tint/types/functions/shader_io/invariant_struct_member.wgsl.expected.ir.msl
diff --git a/test/tint/shader_io/invariant_struct_member.wgsl.expected.msl b/test/tint/types/functions/shader_io/invariant_struct_member.wgsl.expected.msl
similarity index 100%
rename from test/tint/shader_io/invariant_struct_member.wgsl.expected.msl
rename to test/tint/types/functions/shader_io/invariant_struct_member.wgsl.expected.msl
diff --git a/test/tint/shader_io/invariant_struct_member.wgsl.expected.spvasm b/test/tint/types/functions/shader_io/invariant_struct_member.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/shader_io/invariant_struct_member.wgsl.expected.spvasm
rename to test/tint/types/functions/shader_io/invariant_struct_member.wgsl.expected.spvasm
diff --git a/test/tint/shader_io/invariant_struct_member.wgsl.expected.wgsl b/test/tint/types/functions/shader_io/invariant_struct_member.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/shader_io/invariant_struct_member.wgsl.expected.wgsl
rename to test/tint/types/functions/shader_io/invariant_struct_member.wgsl.expected.wgsl
diff --git a/test/tint/shader_io/shared_struct_different_stages.wgsl b/test/tint/types/functions/shader_io/shared_struct_different_stages.wgsl
similarity index 100%
rename from test/tint/shader_io/shared_struct_different_stages.wgsl
rename to test/tint/types/functions/shader_io/shared_struct_different_stages.wgsl
diff --git a/test/tint/shader_io/shared_struct_different_stages.wgsl.expected.dxc.hlsl b/test/tint/types/functions/shader_io/shared_struct_different_stages.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/shader_io/shared_struct_different_stages.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/shader_io/shared_struct_different_stages.wgsl.expected.dxc.hlsl
diff --git a/test/tint/shader_io/shared_struct_different_stages.wgsl.expected.fxc.hlsl b/test/tint/types/functions/shader_io/shared_struct_different_stages.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/shader_io/shared_struct_different_stages.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/shader_io/shared_struct_different_stages.wgsl.expected.fxc.hlsl
diff --git a/test/tint/shader_io/shared_struct_different_stages.wgsl.expected.glsl b/test/tint/types/functions/shader_io/shared_struct_different_stages.wgsl.expected.glsl
similarity index 100%
rename from test/tint/shader_io/shared_struct_different_stages.wgsl.expected.glsl
rename to test/tint/types/functions/shader_io/shared_struct_different_stages.wgsl.expected.glsl
diff --git a/test/tint/shader_io/shared_struct_different_stages.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/shared_struct_different_stages.wgsl.expected.ir.msl
similarity index 100%
rename from test/tint/shader_io/shared_struct_different_stages.wgsl.expected.ir.msl
rename to test/tint/types/functions/shader_io/shared_struct_different_stages.wgsl.expected.ir.msl
diff --git a/test/tint/shader_io/shared_struct_different_stages.wgsl.expected.msl b/test/tint/types/functions/shader_io/shared_struct_different_stages.wgsl.expected.msl
similarity index 100%
rename from test/tint/shader_io/shared_struct_different_stages.wgsl.expected.msl
rename to test/tint/types/functions/shader_io/shared_struct_different_stages.wgsl.expected.msl
diff --git a/test/tint/shader_io/shared_struct_different_stages.wgsl.expected.spvasm b/test/tint/types/functions/shader_io/shared_struct_different_stages.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/shader_io/shared_struct_different_stages.wgsl.expected.spvasm
rename to test/tint/types/functions/shader_io/shared_struct_different_stages.wgsl.expected.spvasm
diff --git a/test/tint/shader_io/shared_struct_different_stages.wgsl.expected.wgsl b/test/tint/types/functions/shader_io/shared_struct_different_stages.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/shader_io/shared_struct_different_stages.wgsl.expected.wgsl
rename to test/tint/types/functions/shader_io/shared_struct_different_stages.wgsl.expected.wgsl
diff --git a/test/tint/shader_io/shared_struct_different_stages_f16.wgsl b/test/tint/types/functions/shader_io/shared_struct_different_stages_f16.wgsl
similarity index 100%
rename from test/tint/shader_io/shared_struct_different_stages_f16.wgsl
rename to test/tint/types/functions/shader_io/shared_struct_different_stages_f16.wgsl
diff --git a/test/tint/shader_io/shared_struct_different_stages_f16.wgsl.expected.dxc.hlsl b/test/tint/types/functions/shader_io/shared_struct_different_stages_f16.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/shader_io/shared_struct_different_stages_f16.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/shader_io/shared_struct_different_stages_f16.wgsl.expected.dxc.hlsl
diff --git a/test/tint/shader_io/shared_struct_different_stages_f16.wgsl.expected.fxc.hlsl b/test/tint/types/functions/shader_io/shared_struct_different_stages_f16.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/shader_io/shared_struct_different_stages_f16.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/shader_io/shared_struct_different_stages_f16.wgsl.expected.fxc.hlsl
diff --git a/test/tint/shader_io/shared_struct_different_stages_f16.wgsl.expected.glsl b/test/tint/types/functions/shader_io/shared_struct_different_stages_f16.wgsl.expected.glsl
similarity index 100%
rename from test/tint/shader_io/shared_struct_different_stages_f16.wgsl.expected.glsl
rename to test/tint/types/functions/shader_io/shared_struct_different_stages_f16.wgsl.expected.glsl
diff --git a/test/tint/shader_io/shared_struct_different_stages_f16.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/shared_struct_different_stages_f16.wgsl.expected.ir.msl
similarity index 100%
rename from test/tint/shader_io/shared_struct_different_stages_f16.wgsl.expected.ir.msl
rename to test/tint/types/functions/shader_io/shared_struct_different_stages_f16.wgsl.expected.ir.msl
diff --git a/test/tint/shader_io/shared_struct_different_stages_f16.wgsl.expected.msl b/test/tint/types/functions/shader_io/shared_struct_different_stages_f16.wgsl.expected.msl
similarity index 100%
rename from test/tint/shader_io/shared_struct_different_stages_f16.wgsl.expected.msl
rename to test/tint/types/functions/shader_io/shared_struct_different_stages_f16.wgsl.expected.msl
diff --git a/test/tint/shader_io/shared_struct_different_stages_f16.wgsl.expected.spvasm b/test/tint/types/functions/shader_io/shared_struct_different_stages_f16.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/shader_io/shared_struct_different_stages_f16.wgsl.expected.spvasm
rename to test/tint/types/functions/shader_io/shared_struct_different_stages_f16.wgsl.expected.spvasm
diff --git a/test/tint/shader_io/shared_struct_different_stages_f16.wgsl.expected.wgsl b/test/tint/types/functions/shader_io/shared_struct_different_stages_f16.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/shader_io/shared_struct_different_stages_f16.wgsl.expected.wgsl
rename to test/tint/types/functions/shader_io/shared_struct_different_stages_f16.wgsl.expected.wgsl
diff --git a/test/tint/shader_io/shared_struct_helper_function.wgsl b/test/tint/types/functions/shader_io/shared_struct_helper_function.wgsl
similarity index 100%
rename from test/tint/shader_io/shared_struct_helper_function.wgsl
rename to test/tint/types/functions/shader_io/shared_struct_helper_function.wgsl
diff --git a/test/tint/shader_io/shared_struct_helper_function.wgsl.expected.dxc.hlsl b/test/tint/types/functions/shader_io/shared_struct_helper_function.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/shader_io/shared_struct_helper_function.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/shader_io/shared_struct_helper_function.wgsl.expected.dxc.hlsl
diff --git a/test/tint/shader_io/shared_struct_helper_function.wgsl.expected.fxc.hlsl b/test/tint/types/functions/shader_io/shared_struct_helper_function.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/shader_io/shared_struct_helper_function.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/shader_io/shared_struct_helper_function.wgsl.expected.fxc.hlsl
diff --git a/test/tint/shader_io/shared_struct_helper_function.wgsl.expected.glsl b/test/tint/types/functions/shader_io/shared_struct_helper_function.wgsl.expected.glsl
similarity index 100%
rename from test/tint/shader_io/shared_struct_helper_function.wgsl.expected.glsl
rename to test/tint/types/functions/shader_io/shared_struct_helper_function.wgsl.expected.glsl
diff --git a/test/tint/shader_io/shared_struct_helper_function.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/shared_struct_helper_function.wgsl.expected.ir.msl
similarity index 100%
rename from test/tint/shader_io/shared_struct_helper_function.wgsl.expected.ir.msl
rename to test/tint/types/functions/shader_io/shared_struct_helper_function.wgsl.expected.ir.msl
diff --git a/test/tint/shader_io/shared_struct_helper_function.wgsl.expected.msl b/test/tint/types/functions/shader_io/shared_struct_helper_function.wgsl.expected.msl
similarity index 100%
rename from test/tint/shader_io/shared_struct_helper_function.wgsl.expected.msl
rename to test/tint/types/functions/shader_io/shared_struct_helper_function.wgsl.expected.msl
diff --git a/test/tint/shader_io/shared_struct_helper_function.wgsl.expected.spvasm b/test/tint/types/functions/shader_io/shared_struct_helper_function.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/shader_io/shared_struct_helper_function.wgsl.expected.spvasm
rename to test/tint/types/functions/shader_io/shared_struct_helper_function.wgsl.expected.spvasm
diff --git a/test/tint/shader_io/shared_struct_helper_function.wgsl.expected.wgsl b/test/tint/types/functions/shader_io/shared_struct_helper_function.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/shader_io/shared_struct_helper_function.wgsl.expected.wgsl
rename to test/tint/types/functions/shader_io/shared_struct_helper_function.wgsl.expected.wgsl
diff --git a/test/tint/shader_io/shared_struct_storage_buffer.wgsl b/test/tint/types/functions/shader_io/shared_struct_storage_buffer.wgsl
similarity index 100%
rename from test/tint/shader_io/shared_struct_storage_buffer.wgsl
rename to test/tint/types/functions/shader_io/shared_struct_storage_buffer.wgsl
diff --git a/test/tint/shader_io/shared_struct_storage_buffer.wgsl.expected.dxc.hlsl b/test/tint/types/functions/shader_io/shared_struct_storage_buffer.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/shader_io/shared_struct_storage_buffer.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/shader_io/shared_struct_storage_buffer.wgsl.expected.dxc.hlsl
diff --git a/test/tint/shader_io/shared_struct_storage_buffer.wgsl.expected.fxc.hlsl b/test/tint/types/functions/shader_io/shared_struct_storage_buffer.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/shader_io/shared_struct_storage_buffer.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/shader_io/shared_struct_storage_buffer.wgsl.expected.fxc.hlsl
diff --git a/test/tint/shader_io/shared_struct_storage_buffer.wgsl.expected.glsl b/test/tint/types/functions/shader_io/shared_struct_storage_buffer.wgsl.expected.glsl
similarity index 100%
rename from test/tint/shader_io/shared_struct_storage_buffer.wgsl.expected.glsl
rename to test/tint/types/functions/shader_io/shared_struct_storage_buffer.wgsl.expected.glsl
diff --git a/test/tint/shader_io/shared_struct_storage_buffer.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/shared_struct_storage_buffer.wgsl.expected.ir.msl
similarity index 100%
rename from test/tint/shader_io/shared_struct_storage_buffer.wgsl.expected.ir.msl
rename to test/tint/types/functions/shader_io/shared_struct_storage_buffer.wgsl.expected.ir.msl
diff --git a/test/tint/shader_io/shared_struct_storage_buffer.wgsl.expected.msl b/test/tint/types/functions/shader_io/shared_struct_storage_buffer.wgsl.expected.msl
similarity index 100%
rename from test/tint/shader_io/shared_struct_storage_buffer.wgsl.expected.msl
rename to test/tint/types/functions/shader_io/shared_struct_storage_buffer.wgsl.expected.msl
diff --git a/test/tint/shader_io/shared_struct_storage_buffer.wgsl.expected.spvasm b/test/tint/types/functions/shader_io/shared_struct_storage_buffer.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/shader_io/shared_struct_storage_buffer.wgsl.expected.spvasm
rename to test/tint/types/functions/shader_io/shared_struct_storage_buffer.wgsl.expected.spvasm
diff --git a/test/tint/shader_io/shared_struct_storage_buffer.wgsl.expected.wgsl b/test/tint/types/functions/shader_io/shared_struct_storage_buffer.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/shader_io/shared_struct_storage_buffer.wgsl.expected.wgsl
rename to test/tint/types/functions/shader_io/shared_struct_storage_buffer.wgsl.expected.wgsl
diff --git a/test/tint/shader_io/shared_struct_storage_buffer_f16.wgsl b/test/tint/types/functions/shader_io/shared_struct_storage_buffer_f16.wgsl
similarity index 100%
rename from test/tint/shader_io/shared_struct_storage_buffer_f16.wgsl
rename to test/tint/types/functions/shader_io/shared_struct_storage_buffer_f16.wgsl
diff --git a/test/tint/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.dxc.hlsl b/test/tint/types/functions/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.dxc.hlsl
diff --git a/test/tint/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.fxc.hlsl b/test/tint/types/functions/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.fxc.hlsl
diff --git a/test/tint/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.glsl b/test/tint/types/functions/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.glsl
similarity index 100%
rename from test/tint/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.glsl
rename to test/tint/types/functions/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.glsl
diff --git a/test/tint/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.ir.msl
similarity index 100%
rename from test/tint/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.ir.msl
rename to test/tint/types/functions/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.ir.msl
diff --git a/test/tint/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.msl b/test/tint/types/functions/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.msl
similarity index 100%
rename from test/tint/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.msl
rename to test/tint/types/functions/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.msl
diff --git a/test/tint/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.spvasm b/test/tint/types/functions/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.spvasm
rename to test/tint/types/functions/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.spvasm
diff --git a/test/tint/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.wgsl b/test/tint/types/functions/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.wgsl
rename to test/tint/types/functions/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.wgsl
diff --git a/test/tint/shader_io/vertex_input_builtins.wgsl b/test/tint/types/functions/shader_io/vertex_input_builtins.wgsl
similarity index 100%
rename from test/tint/shader_io/vertex_input_builtins.wgsl
rename to test/tint/types/functions/shader_io/vertex_input_builtins.wgsl
diff --git a/test/tint/shader_io/vertex_input_builtins.wgsl.expected.dxc.hlsl b/test/tint/types/functions/shader_io/vertex_input_builtins.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/shader_io/vertex_input_builtins.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/shader_io/vertex_input_builtins.wgsl.expected.dxc.hlsl
diff --git a/test/tint/shader_io/vertex_input_builtins.wgsl.expected.fxc.hlsl b/test/tint/types/functions/shader_io/vertex_input_builtins.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/shader_io/vertex_input_builtins.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/shader_io/vertex_input_builtins.wgsl.expected.fxc.hlsl
diff --git a/test/tint/shader_io/vertex_input_builtins.wgsl.expected.glsl b/test/tint/types/functions/shader_io/vertex_input_builtins.wgsl.expected.glsl
similarity index 100%
rename from test/tint/shader_io/vertex_input_builtins.wgsl.expected.glsl
rename to test/tint/types/functions/shader_io/vertex_input_builtins.wgsl.expected.glsl
diff --git a/test/tint/shader_io/vertex_input_builtins.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/vertex_input_builtins.wgsl.expected.ir.msl
similarity index 100%
rename from test/tint/shader_io/vertex_input_builtins.wgsl.expected.ir.msl
rename to test/tint/types/functions/shader_io/vertex_input_builtins.wgsl.expected.ir.msl
diff --git a/test/tint/shader_io/vertex_input_builtins.wgsl.expected.msl b/test/tint/types/functions/shader_io/vertex_input_builtins.wgsl.expected.msl
similarity index 100%
rename from test/tint/shader_io/vertex_input_builtins.wgsl.expected.msl
rename to test/tint/types/functions/shader_io/vertex_input_builtins.wgsl.expected.msl
diff --git a/test/tint/shader_io/vertex_input_builtins.wgsl.expected.spvasm b/test/tint/types/functions/shader_io/vertex_input_builtins.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/shader_io/vertex_input_builtins.wgsl.expected.spvasm
rename to test/tint/types/functions/shader_io/vertex_input_builtins.wgsl.expected.spvasm
diff --git a/test/tint/shader_io/vertex_input_builtins.wgsl.expected.wgsl b/test/tint/types/functions/shader_io/vertex_input_builtins.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/shader_io/vertex_input_builtins.wgsl.expected.wgsl
rename to test/tint/types/functions/shader_io/vertex_input_builtins.wgsl.expected.wgsl
diff --git a/test/tint/shader_io/vertex_input_builtins_struct.wgsl b/test/tint/types/functions/shader_io/vertex_input_builtins_struct.wgsl
similarity index 100%
rename from test/tint/shader_io/vertex_input_builtins_struct.wgsl
rename to test/tint/types/functions/shader_io/vertex_input_builtins_struct.wgsl
diff --git a/test/tint/shader_io/vertex_input_builtins_struct.wgsl.expected.dxc.hlsl b/test/tint/types/functions/shader_io/vertex_input_builtins_struct.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/shader_io/vertex_input_builtins_struct.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/shader_io/vertex_input_builtins_struct.wgsl.expected.dxc.hlsl
diff --git a/test/tint/shader_io/vertex_input_builtins_struct.wgsl.expected.fxc.hlsl b/test/tint/types/functions/shader_io/vertex_input_builtins_struct.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/shader_io/vertex_input_builtins_struct.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/shader_io/vertex_input_builtins_struct.wgsl.expected.fxc.hlsl
diff --git a/test/tint/shader_io/vertex_input_builtins_struct.wgsl.expected.glsl b/test/tint/types/functions/shader_io/vertex_input_builtins_struct.wgsl.expected.glsl
similarity index 100%
rename from test/tint/shader_io/vertex_input_builtins_struct.wgsl.expected.glsl
rename to test/tint/types/functions/shader_io/vertex_input_builtins_struct.wgsl.expected.glsl
diff --git a/test/tint/shader_io/vertex_input_builtins_struct.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/vertex_input_builtins_struct.wgsl.expected.ir.msl
similarity index 100%
rename from test/tint/shader_io/vertex_input_builtins_struct.wgsl.expected.ir.msl
rename to test/tint/types/functions/shader_io/vertex_input_builtins_struct.wgsl.expected.ir.msl
diff --git a/test/tint/shader_io/vertex_input_builtins_struct.wgsl.expected.msl b/test/tint/types/functions/shader_io/vertex_input_builtins_struct.wgsl.expected.msl
similarity index 100%
rename from test/tint/shader_io/vertex_input_builtins_struct.wgsl.expected.msl
rename to test/tint/types/functions/shader_io/vertex_input_builtins_struct.wgsl.expected.msl
diff --git a/test/tint/shader_io/vertex_input_builtins_struct.wgsl.expected.spvasm b/test/tint/types/functions/shader_io/vertex_input_builtins_struct.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/shader_io/vertex_input_builtins_struct.wgsl.expected.spvasm
rename to test/tint/types/functions/shader_io/vertex_input_builtins_struct.wgsl.expected.spvasm
diff --git a/test/tint/shader_io/vertex_input_builtins_struct.wgsl.expected.wgsl b/test/tint/types/functions/shader_io/vertex_input_builtins_struct.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/shader_io/vertex_input_builtins_struct.wgsl.expected.wgsl
rename to test/tint/types/functions/shader_io/vertex_input_builtins_struct.wgsl.expected.wgsl
diff --git a/test/tint/shader_io/vertex_input_locations.wgsl b/test/tint/types/functions/shader_io/vertex_input_locations.wgsl
similarity index 100%
rename from test/tint/shader_io/vertex_input_locations.wgsl
rename to test/tint/types/functions/shader_io/vertex_input_locations.wgsl
diff --git a/test/tint/shader_io/vertex_input_locations.wgsl.expected.dxc.hlsl b/test/tint/types/functions/shader_io/vertex_input_locations.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/shader_io/vertex_input_locations.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/shader_io/vertex_input_locations.wgsl.expected.dxc.hlsl
diff --git a/test/tint/shader_io/vertex_input_locations.wgsl.expected.fxc.hlsl b/test/tint/types/functions/shader_io/vertex_input_locations.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/shader_io/vertex_input_locations.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/shader_io/vertex_input_locations.wgsl.expected.fxc.hlsl
diff --git a/test/tint/shader_io/vertex_input_locations.wgsl.expected.glsl b/test/tint/types/functions/shader_io/vertex_input_locations.wgsl.expected.glsl
similarity index 100%
rename from test/tint/shader_io/vertex_input_locations.wgsl.expected.glsl
rename to test/tint/types/functions/shader_io/vertex_input_locations.wgsl.expected.glsl
diff --git a/test/tint/shader_io/vertex_input_locations.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/vertex_input_locations.wgsl.expected.ir.msl
similarity index 100%
rename from test/tint/shader_io/vertex_input_locations.wgsl.expected.ir.msl
rename to test/tint/types/functions/shader_io/vertex_input_locations.wgsl.expected.ir.msl
diff --git a/test/tint/shader_io/vertex_input_locations.wgsl.expected.msl b/test/tint/types/functions/shader_io/vertex_input_locations.wgsl.expected.msl
similarity index 100%
rename from test/tint/shader_io/vertex_input_locations.wgsl.expected.msl
rename to test/tint/types/functions/shader_io/vertex_input_locations.wgsl.expected.msl
diff --git a/test/tint/shader_io/vertex_input_locations.wgsl.expected.spvasm b/test/tint/types/functions/shader_io/vertex_input_locations.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/shader_io/vertex_input_locations.wgsl.expected.spvasm
rename to test/tint/types/functions/shader_io/vertex_input_locations.wgsl.expected.spvasm
diff --git a/test/tint/shader_io/vertex_input_locations.wgsl.expected.wgsl b/test/tint/types/functions/shader_io/vertex_input_locations.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/shader_io/vertex_input_locations.wgsl.expected.wgsl
rename to test/tint/types/functions/shader_io/vertex_input_locations.wgsl.expected.wgsl
diff --git a/test/tint/shader_io/vertex_input_locations_f16.wgsl b/test/tint/types/functions/shader_io/vertex_input_locations_f16.wgsl
similarity index 100%
rename from test/tint/shader_io/vertex_input_locations_f16.wgsl
rename to test/tint/types/functions/shader_io/vertex_input_locations_f16.wgsl
diff --git a/test/tint/shader_io/vertex_input_locations_f16.wgsl.expected.dxc.hlsl b/test/tint/types/functions/shader_io/vertex_input_locations_f16.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/shader_io/vertex_input_locations_f16.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/shader_io/vertex_input_locations_f16.wgsl.expected.dxc.hlsl
diff --git a/test/tint/shader_io/vertex_input_locations_f16.wgsl.expected.fxc.hlsl b/test/tint/types/functions/shader_io/vertex_input_locations_f16.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/shader_io/vertex_input_locations_f16.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/shader_io/vertex_input_locations_f16.wgsl.expected.fxc.hlsl
diff --git a/test/tint/shader_io/vertex_input_locations_f16.wgsl.expected.glsl b/test/tint/types/functions/shader_io/vertex_input_locations_f16.wgsl.expected.glsl
similarity index 100%
rename from test/tint/shader_io/vertex_input_locations_f16.wgsl.expected.glsl
rename to test/tint/types/functions/shader_io/vertex_input_locations_f16.wgsl.expected.glsl
diff --git a/test/tint/shader_io/vertex_input_locations_f16.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/vertex_input_locations_f16.wgsl.expected.ir.msl
similarity index 100%
rename from test/tint/shader_io/vertex_input_locations_f16.wgsl.expected.ir.msl
rename to test/tint/types/functions/shader_io/vertex_input_locations_f16.wgsl.expected.ir.msl
diff --git a/test/tint/shader_io/vertex_input_locations_f16.wgsl.expected.msl b/test/tint/types/functions/shader_io/vertex_input_locations_f16.wgsl.expected.msl
similarity index 100%
rename from test/tint/shader_io/vertex_input_locations_f16.wgsl.expected.msl
rename to test/tint/types/functions/shader_io/vertex_input_locations_f16.wgsl.expected.msl
diff --git a/test/tint/shader_io/vertex_input_locations_f16.wgsl.expected.spvasm b/test/tint/types/functions/shader_io/vertex_input_locations_f16.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/shader_io/vertex_input_locations_f16.wgsl.expected.spvasm
rename to test/tint/types/functions/shader_io/vertex_input_locations_f16.wgsl.expected.spvasm
diff --git a/test/tint/shader_io/vertex_input_locations_f16.wgsl.expected.wgsl b/test/tint/types/functions/shader_io/vertex_input_locations_f16.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/shader_io/vertex_input_locations_f16.wgsl.expected.wgsl
rename to test/tint/types/functions/shader_io/vertex_input_locations_f16.wgsl.expected.wgsl
diff --git a/test/tint/shader_io/vertex_input_locations_struct.wgsl b/test/tint/types/functions/shader_io/vertex_input_locations_struct.wgsl
similarity index 100%
rename from test/tint/shader_io/vertex_input_locations_struct.wgsl
rename to test/tint/types/functions/shader_io/vertex_input_locations_struct.wgsl
diff --git a/test/tint/shader_io/vertex_input_locations_struct.wgsl.expected.dxc.hlsl b/test/tint/types/functions/shader_io/vertex_input_locations_struct.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/shader_io/vertex_input_locations_struct.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/shader_io/vertex_input_locations_struct.wgsl.expected.dxc.hlsl
diff --git a/test/tint/shader_io/vertex_input_locations_struct.wgsl.expected.fxc.hlsl b/test/tint/types/functions/shader_io/vertex_input_locations_struct.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/shader_io/vertex_input_locations_struct.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/shader_io/vertex_input_locations_struct.wgsl.expected.fxc.hlsl
diff --git a/test/tint/shader_io/vertex_input_locations_struct.wgsl.expected.glsl b/test/tint/types/functions/shader_io/vertex_input_locations_struct.wgsl.expected.glsl
similarity index 100%
rename from test/tint/shader_io/vertex_input_locations_struct.wgsl.expected.glsl
rename to test/tint/types/functions/shader_io/vertex_input_locations_struct.wgsl.expected.glsl
diff --git a/test/tint/shader_io/vertex_input_locations_struct.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/vertex_input_locations_struct.wgsl.expected.ir.msl
similarity index 100%
rename from test/tint/shader_io/vertex_input_locations_struct.wgsl.expected.ir.msl
rename to test/tint/types/functions/shader_io/vertex_input_locations_struct.wgsl.expected.ir.msl
diff --git a/test/tint/shader_io/vertex_input_locations_struct.wgsl.expected.msl b/test/tint/types/functions/shader_io/vertex_input_locations_struct.wgsl.expected.msl
similarity index 100%
rename from test/tint/shader_io/vertex_input_locations_struct.wgsl.expected.msl
rename to test/tint/types/functions/shader_io/vertex_input_locations_struct.wgsl.expected.msl
diff --git a/test/tint/shader_io/vertex_input_locations_struct.wgsl.expected.spvasm b/test/tint/types/functions/shader_io/vertex_input_locations_struct.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/shader_io/vertex_input_locations_struct.wgsl.expected.spvasm
rename to test/tint/types/functions/shader_io/vertex_input_locations_struct.wgsl.expected.spvasm
diff --git a/test/tint/shader_io/vertex_input_locations_struct.wgsl.expected.wgsl b/test/tint/types/functions/shader_io/vertex_input_locations_struct.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/shader_io/vertex_input_locations_struct.wgsl.expected.wgsl
rename to test/tint/types/functions/shader_io/vertex_input_locations_struct.wgsl.expected.wgsl
diff --git a/test/tint/shader_io/vertex_input_locations_struct_f16.wgsl b/test/tint/types/functions/shader_io/vertex_input_locations_struct_f16.wgsl
similarity index 100%
rename from test/tint/shader_io/vertex_input_locations_struct_f16.wgsl
rename to test/tint/types/functions/shader_io/vertex_input_locations_struct_f16.wgsl
diff --git a/test/tint/shader_io/vertex_input_locations_struct_f16.wgsl.expected.dxc.hlsl b/test/tint/types/functions/shader_io/vertex_input_locations_struct_f16.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/shader_io/vertex_input_locations_struct_f16.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/shader_io/vertex_input_locations_struct_f16.wgsl.expected.dxc.hlsl
diff --git a/test/tint/shader_io/vertex_input_locations_struct_f16.wgsl.expected.fxc.hlsl b/test/tint/types/functions/shader_io/vertex_input_locations_struct_f16.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/shader_io/vertex_input_locations_struct_f16.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/shader_io/vertex_input_locations_struct_f16.wgsl.expected.fxc.hlsl
diff --git a/test/tint/shader_io/vertex_input_locations_struct_f16.wgsl.expected.glsl b/test/tint/types/functions/shader_io/vertex_input_locations_struct_f16.wgsl.expected.glsl
similarity index 100%
rename from test/tint/shader_io/vertex_input_locations_struct_f16.wgsl.expected.glsl
rename to test/tint/types/functions/shader_io/vertex_input_locations_struct_f16.wgsl.expected.glsl
diff --git a/test/tint/shader_io/vertex_input_locations_struct_f16.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/vertex_input_locations_struct_f16.wgsl.expected.ir.msl
similarity index 100%
rename from test/tint/shader_io/vertex_input_locations_struct_f16.wgsl.expected.ir.msl
rename to test/tint/types/functions/shader_io/vertex_input_locations_struct_f16.wgsl.expected.ir.msl
diff --git a/test/tint/shader_io/vertex_input_locations_struct_f16.wgsl.expected.msl b/test/tint/types/functions/shader_io/vertex_input_locations_struct_f16.wgsl.expected.msl
similarity index 100%
rename from test/tint/shader_io/vertex_input_locations_struct_f16.wgsl.expected.msl
rename to test/tint/types/functions/shader_io/vertex_input_locations_struct_f16.wgsl.expected.msl
diff --git a/test/tint/shader_io/vertex_input_locations_struct_f16.wgsl.expected.spvasm b/test/tint/types/functions/shader_io/vertex_input_locations_struct_f16.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/shader_io/vertex_input_locations_struct_f16.wgsl.expected.spvasm
rename to test/tint/types/functions/shader_io/vertex_input_locations_struct_f16.wgsl.expected.spvasm
diff --git a/test/tint/shader_io/vertex_input_locations_struct_f16.wgsl.expected.wgsl b/test/tint/types/functions/shader_io/vertex_input_locations_struct_f16.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/shader_io/vertex_input_locations_struct_f16.wgsl.expected.wgsl
rename to test/tint/types/functions/shader_io/vertex_input_locations_struct_f16.wgsl.expected.wgsl
diff --git a/test/tint/shader_io/vertex_input_mixed.wgsl b/test/tint/types/functions/shader_io/vertex_input_mixed.wgsl
similarity index 100%
rename from test/tint/shader_io/vertex_input_mixed.wgsl
rename to test/tint/types/functions/shader_io/vertex_input_mixed.wgsl
diff --git a/test/tint/shader_io/vertex_input_mixed.wgsl.expected.dxc.hlsl b/test/tint/types/functions/shader_io/vertex_input_mixed.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/shader_io/vertex_input_mixed.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/shader_io/vertex_input_mixed.wgsl.expected.dxc.hlsl
diff --git a/test/tint/shader_io/vertex_input_mixed.wgsl.expected.fxc.hlsl b/test/tint/types/functions/shader_io/vertex_input_mixed.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/shader_io/vertex_input_mixed.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/shader_io/vertex_input_mixed.wgsl.expected.fxc.hlsl
diff --git a/test/tint/shader_io/vertex_input_mixed.wgsl.expected.glsl b/test/tint/types/functions/shader_io/vertex_input_mixed.wgsl.expected.glsl
similarity index 100%
rename from test/tint/shader_io/vertex_input_mixed.wgsl.expected.glsl
rename to test/tint/types/functions/shader_io/vertex_input_mixed.wgsl.expected.glsl
diff --git a/test/tint/shader_io/vertex_input_mixed.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/vertex_input_mixed.wgsl.expected.ir.msl
similarity index 100%
rename from test/tint/shader_io/vertex_input_mixed.wgsl.expected.ir.msl
rename to test/tint/types/functions/shader_io/vertex_input_mixed.wgsl.expected.ir.msl
diff --git a/test/tint/shader_io/vertex_input_mixed.wgsl.expected.msl b/test/tint/types/functions/shader_io/vertex_input_mixed.wgsl.expected.msl
similarity index 100%
rename from test/tint/shader_io/vertex_input_mixed.wgsl.expected.msl
rename to test/tint/types/functions/shader_io/vertex_input_mixed.wgsl.expected.msl
diff --git a/test/tint/shader_io/vertex_input_mixed.wgsl.expected.spvasm b/test/tint/types/functions/shader_io/vertex_input_mixed.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/shader_io/vertex_input_mixed.wgsl.expected.spvasm
rename to test/tint/types/functions/shader_io/vertex_input_mixed.wgsl.expected.spvasm
diff --git a/test/tint/shader_io/vertex_input_mixed.wgsl.expected.wgsl b/test/tint/types/functions/shader_io/vertex_input_mixed.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/shader_io/vertex_input_mixed.wgsl.expected.wgsl
rename to test/tint/types/functions/shader_io/vertex_input_mixed.wgsl.expected.wgsl
diff --git a/test/tint/shader_io/vertex_input_mixed_f16.wgsl b/test/tint/types/functions/shader_io/vertex_input_mixed_f16.wgsl
similarity index 100%
rename from test/tint/shader_io/vertex_input_mixed_f16.wgsl
rename to test/tint/types/functions/shader_io/vertex_input_mixed_f16.wgsl
diff --git a/test/tint/shader_io/vertex_input_mixed_f16.wgsl.expected.dxc.hlsl b/test/tint/types/functions/shader_io/vertex_input_mixed_f16.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/shader_io/vertex_input_mixed_f16.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/shader_io/vertex_input_mixed_f16.wgsl.expected.dxc.hlsl
diff --git a/test/tint/shader_io/vertex_input_mixed_f16.wgsl.expected.fxc.hlsl b/test/tint/types/functions/shader_io/vertex_input_mixed_f16.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/shader_io/vertex_input_mixed_f16.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/shader_io/vertex_input_mixed_f16.wgsl.expected.fxc.hlsl
diff --git a/test/tint/shader_io/vertex_input_mixed_f16.wgsl.expected.glsl b/test/tint/types/functions/shader_io/vertex_input_mixed_f16.wgsl.expected.glsl
similarity index 100%
rename from test/tint/shader_io/vertex_input_mixed_f16.wgsl.expected.glsl
rename to test/tint/types/functions/shader_io/vertex_input_mixed_f16.wgsl.expected.glsl
diff --git a/test/tint/shader_io/vertex_input_mixed_f16.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/vertex_input_mixed_f16.wgsl.expected.ir.msl
similarity index 100%
rename from test/tint/shader_io/vertex_input_mixed_f16.wgsl.expected.ir.msl
rename to test/tint/types/functions/shader_io/vertex_input_mixed_f16.wgsl.expected.ir.msl
diff --git a/test/tint/shader_io/vertex_input_mixed_f16.wgsl.expected.msl b/test/tint/types/functions/shader_io/vertex_input_mixed_f16.wgsl.expected.msl
similarity index 100%
rename from test/tint/shader_io/vertex_input_mixed_f16.wgsl.expected.msl
rename to test/tint/types/functions/shader_io/vertex_input_mixed_f16.wgsl.expected.msl
diff --git a/test/tint/shader_io/vertex_input_mixed_f16.wgsl.expected.spvasm b/test/tint/types/functions/shader_io/vertex_input_mixed_f16.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/shader_io/vertex_input_mixed_f16.wgsl.expected.spvasm
rename to test/tint/types/functions/shader_io/vertex_input_mixed_f16.wgsl.expected.spvasm
diff --git a/test/tint/shader_io/vertex_input_mixed_f16.wgsl.expected.wgsl b/test/tint/types/functions/shader_io/vertex_input_mixed_f16.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/shader_io/vertex_input_mixed_f16.wgsl.expected.wgsl
rename to test/tint/types/functions/shader_io/vertex_input_mixed_f16.wgsl.expected.wgsl
diff --git a/test/tint/shader_io/vertex_output_builtins.wgsl b/test/tint/types/functions/shader_io/vertex_output_builtins.wgsl
similarity index 100%
rename from test/tint/shader_io/vertex_output_builtins.wgsl
rename to test/tint/types/functions/shader_io/vertex_output_builtins.wgsl
diff --git a/test/tint/shader_io/vertex_output_builtins.wgsl.expected.dxc.hlsl b/test/tint/types/functions/shader_io/vertex_output_builtins.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/shader_io/vertex_output_builtins.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/shader_io/vertex_output_builtins.wgsl.expected.dxc.hlsl
diff --git a/test/tint/shader_io/vertex_output_builtins.wgsl.expected.fxc.hlsl b/test/tint/types/functions/shader_io/vertex_output_builtins.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/shader_io/vertex_output_builtins.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/shader_io/vertex_output_builtins.wgsl.expected.fxc.hlsl
diff --git a/test/tint/shader_io/vertex_output_builtins.wgsl.expected.glsl b/test/tint/types/functions/shader_io/vertex_output_builtins.wgsl.expected.glsl
similarity index 100%
rename from test/tint/shader_io/vertex_output_builtins.wgsl.expected.glsl
rename to test/tint/types/functions/shader_io/vertex_output_builtins.wgsl.expected.glsl
diff --git a/test/tint/shader_io/vertex_output_builtins.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/vertex_output_builtins.wgsl.expected.ir.msl
similarity index 76%
rename from test/tint/shader_io/vertex_output_builtins.wgsl.expected.ir.msl
rename to test/tint/types/functions/shader_io/vertex_output_builtins.wgsl.expected.ir.msl
index 8fa24ea..7db3005 100644
--- a/test/tint/shader_io/vertex_output_builtins.wgsl.expected.ir.msl
+++ b/test/tint/types/functions/shader_io/vertex_output_builtins.wgsl.expected.ir.msl
@@ -1,3 +1,7 @@
+SKIP: FAILED
+
+### Missing builtins
+
 #include <metal_stdlib>
 using namespace metal;
 
diff --git a/test/tint/shader_io/vertex_output_builtins.wgsl.expected.msl b/test/tint/types/functions/shader_io/vertex_output_builtins.wgsl.expected.msl
similarity index 100%
rename from test/tint/shader_io/vertex_output_builtins.wgsl.expected.msl
rename to test/tint/types/functions/shader_io/vertex_output_builtins.wgsl.expected.msl
diff --git a/test/tint/shader_io/vertex_output_builtins.wgsl.expected.spvasm b/test/tint/types/functions/shader_io/vertex_output_builtins.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/shader_io/vertex_output_builtins.wgsl.expected.spvasm
rename to test/tint/types/functions/shader_io/vertex_output_builtins.wgsl.expected.spvasm
diff --git a/test/tint/shader_io/vertex_output_builtins.wgsl.expected.wgsl b/test/tint/types/functions/shader_io/vertex_output_builtins.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/shader_io/vertex_output_builtins.wgsl.expected.wgsl
rename to test/tint/types/functions/shader_io/vertex_output_builtins.wgsl.expected.wgsl
diff --git a/test/tint/shader_io/vertex_output_builtins_struct.wgsl b/test/tint/types/functions/shader_io/vertex_output_builtins_struct.wgsl
similarity index 100%
rename from test/tint/shader_io/vertex_output_builtins_struct.wgsl
rename to test/tint/types/functions/shader_io/vertex_output_builtins_struct.wgsl
diff --git a/test/tint/shader_io/vertex_output_builtins_struct.wgsl.expected.dxc.hlsl b/test/tint/types/functions/shader_io/vertex_output_builtins_struct.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/shader_io/vertex_output_builtins_struct.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/shader_io/vertex_output_builtins_struct.wgsl.expected.dxc.hlsl
diff --git a/test/tint/shader_io/vertex_output_builtins_struct.wgsl.expected.fxc.hlsl b/test/tint/types/functions/shader_io/vertex_output_builtins_struct.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/shader_io/vertex_output_builtins_struct.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/shader_io/vertex_output_builtins_struct.wgsl.expected.fxc.hlsl
diff --git a/test/tint/shader_io/vertex_output_builtins_struct.wgsl.expected.glsl b/test/tint/types/functions/shader_io/vertex_output_builtins_struct.wgsl.expected.glsl
similarity index 100%
rename from test/tint/shader_io/vertex_output_builtins_struct.wgsl.expected.glsl
rename to test/tint/types/functions/shader_io/vertex_output_builtins_struct.wgsl.expected.glsl
diff --git a/test/tint/shader_io/vertex_output_builtins_struct.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/vertex_output_builtins_struct.wgsl.expected.ir.msl
similarity index 100%
rename from test/tint/shader_io/vertex_output_builtins_struct.wgsl.expected.ir.msl
rename to test/tint/types/functions/shader_io/vertex_output_builtins_struct.wgsl.expected.ir.msl
diff --git a/test/tint/shader_io/vertex_output_builtins_struct.wgsl.expected.msl b/test/tint/types/functions/shader_io/vertex_output_builtins_struct.wgsl.expected.msl
similarity index 100%
rename from test/tint/shader_io/vertex_output_builtins_struct.wgsl.expected.msl
rename to test/tint/types/functions/shader_io/vertex_output_builtins_struct.wgsl.expected.msl
diff --git a/test/tint/shader_io/vertex_output_builtins_struct.wgsl.expected.spvasm b/test/tint/types/functions/shader_io/vertex_output_builtins_struct.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/shader_io/vertex_output_builtins_struct.wgsl.expected.spvasm
rename to test/tint/types/functions/shader_io/vertex_output_builtins_struct.wgsl.expected.spvasm
diff --git a/test/tint/shader_io/vertex_output_builtins_struct.wgsl.expected.wgsl b/test/tint/types/functions/shader_io/vertex_output_builtins_struct.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/shader_io/vertex_output_builtins_struct.wgsl.expected.wgsl
rename to test/tint/types/functions/shader_io/vertex_output_builtins_struct.wgsl.expected.wgsl
diff --git a/test/tint/shader_io/vertex_output_locations_struct.wgsl b/test/tint/types/functions/shader_io/vertex_output_locations_struct.wgsl
similarity index 100%
rename from test/tint/shader_io/vertex_output_locations_struct.wgsl
rename to test/tint/types/functions/shader_io/vertex_output_locations_struct.wgsl
diff --git a/test/tint/shader_io/vertex_output_locations_struct.wgsl.expected.dxc.hlsl b/test/tint/types/functions/shader_io/vertex_output_locations_struct.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/shader_io/vertex_output_locations_struct.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/shader_io/vertex_output_locations_struct.wgsl.expected.dxc.hlsl
diff --git a/test/tint/shader_io/vertex_output_locations_struct.wgsl.expected.fxc.hlsl b/test/tint/types/functions/shader_io/vertex_output_locations_struct.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/shader_io/vertex_output_locations_struct.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/shader_io/vertex_output_locations_struct.wgsl.expected.fxc.hlsl
diff --git a/test/tint/shader_io/vertex_output_locations_struct.wgsl.expected.glsl b/test/tint/types/functions/shader_io/vertex_output_locations_struct.wgsl.expected.glsl
similarity index 100%
rename from test/tint/shader_io/vertex_output_locations_struct.wgsl.expected.glsl
rename to test/tint/types/functions/shader_io/vertex_output_locations_struct.wgsl.expected.glsl
diff --git a/test/tint/shader_io/vertex_output_locations_struct.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/vertex_output_locations_struct.wgsl.expected.ir.msl
similarity index 100%
rename from test/tint/shader_io/vertex_output_locations_struct.wgsl.expected.ir.msl
rename to test/tint/types/functions/shader_io/vertex_output_locations_struct.wgsl.expected.ir.msl
diff --git a/test/tint/shader_io/vertex_output_locations_struct.wgsl.expected.msl b/test/tint/types/functions/shader_io/vertex_output_locations_struct.wgsl.expected.msl
similarity index 100%
rename from test/tint/shader_io/vertex_output_locations_struct.wgsl.expected.msl
rename to test/tint/types/functions/shader_io/vertex_output_locations_struct.wgsl.expected.msl
diff --git a/test/tint/shader_io/vertex_output_locations_struct.wgsl.expected.spvasm b/test/tint/types/functions/shader_io/vertex_output_locations_struct.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/shader_io/vertex_output_locations_struct.wgsl.expected.spvasm
rename to test/tint/types/functions/shader_io/vertex_output_locations_struct.wgsl.expected.spvasm
diff --git a/test/tint/shader_io/vertex_output_locations_struct.wgsl.expected.wgsl b/test/tint/types/functions/shader_io/vertex_output_locations_struct.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/shader_io/vertex_output_locations_struct.wgsl.expected.wgsl
rename to test/tint/types/functions/shader_io/vertex_output_locations_struct.wgsl.expected.wgsl
diff --git a/test/tint/shader_io/vertex_output_locations_struct_f16.wgsl b/test/tint/types/functions/shader_io/vertex_output_locations_struct_f16.wgsl
similarity index 100%
rename from test/tint/shader_io/vertex_output_locations_struct_f16.wgsl
rename to test/tint/types/functions/shader_io/vertex_output_locations_struct_f16.wgsl
diff --git a/test/tint/shader_io/vertex_output_locations_struct_f16.wgsl.expected.dxc.hlsl b/test/tint/types/functions/shader_io/vertex_output_locations_struct_f16.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/shader_io/vertex_output_locations_struct_f16.wgsl.expected.dxc.hlsl
rename to test/tint/types/functions/shader_io/vertex_output_locations_struct_f16.wgsl.expected.dxc.hlsl
diff --git a/test/tint/shader_io/vertex_output_locations_struct_f16.wgsl.expected.fxc.hlsl b/test/tint/types/functions/shader_io/vertex_output_locations_struct_f16.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/shader_io/vertex_output_locations_struct_f16.wgsl.expected.fxc.hlsl
rename to test/tint/types/functions/shader_io/vertex_output_locations_struct_f16.wgsl.expected.fxc.hlsl
diff --git a/test/tint/shader_io/vertex_output_locations_struct_f16.wgsl.expected.glsl b/test/tint/types/functions/shader_io/vertex_output_locations_struct_f16.wgsl.expected.glsl
similarity index 100%
rename from test/tint/shader_io/vertex_output_locations_struct_f16.wgsl.expected.glsl
rename to test/tint/types/functions/shader_io/vertex_output_locations_struct_f16.wgsl.expected.glsl
diff --git a/test/tint/shader_io/vertex_output_locations_struct_f16.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/vertex_output_locations_struct_f16.wgsl.expected.ir.msl
similarity index 100%
rename from test/tint/shader_io/vertex_output_locations_struct_f16.wgsl.expected.ir.msl
rename to test/tint/types/functions/shader_io/vertex_output_locations_struct_f16.wgsl.expected.ir.msl
diff --git a/test/tint/shader_io/vertex_output_locations_struct_f16.wgsl.expected.msl b/test/tint/types/functions/shader_io/vertex_output_locations_struct_f16.wgsl.expected.msl
similarity index 100%
rename from test/tint/shader_io/vertex_output_locations_struct_f16.wgsl.expected.msl
rename to test/tint/types/functions/shader_io/vertex_output_locations_struct_f16.wgsl.expected.msl
diff --git a/test/tint/shader_io/vertex_output_locations_struct_f16.wgsl.expected.spvasm b/test/tint/types/functions/shader_io/vertex_output_locations_struct_f16.wgsl.expected.spvasm
similarity index 100%
rename from test/tint/shader_io/vertex_output_locations_struct_f16.wgsl.expected.spvasm
rename to test/tint/types/functions/shader_io/vertex_output_locations_struct_f16.wgsl.expected.spvasm
diff --git a/test/tint/shader_io/vertex_output_locations_struct_f16.wgsl.expected.wgsl b/test/tint/types/functions/shader_io/vertex_output_locations_struct_f16.wgsl.expected.wgsl
similarity index 100%
rename from test/tint/shader_io/vertex_output_locations_struct_f16.wgsl.expected.wgsl
rename to test/tint/types/functions/shader_io/vertex_output_locations_struct_f16.wgsl.expected.wgsl